使用Regex在Netbeans中进行XML验证

时间:2013-01-23 08:05:50

标签: xml regex xsd

我有一个看起来像这样的字符串......

 1-Jan-1970 01:00:00

这可以从一个空格开始(就像这个一样),如果数据是两位数,则可以是一个数字。

我在XSD文件中构建了一个Regex来创建一个简单的Timestamp类型,如下所示;

<xs:simpleType name="Timestamp">
    <xs:restriction base="xs:token">
        <xs:pattern value="( [1-9]|[1-3][0-9])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[1-2][0-9][0-9][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9]"/>
    </xs:restriction>
</xs:simpleType>

如果我使用此正则表达式,并提供示例字符串,并在http://www.regextester.com/中进行测试,则可以正常工作。

但是,如果我尝试用它来验证某些XML,它适用于所有带有两位数字的日期,但不适用于带有空格的日期(如上所示)

请问有人能引导我这个吗?

1 个答案:

答案 0 :(得分:1)

token数据类型从其词法空间中排除带有前导和尾随空格的字符串。

将xs:string(或一些字符串派生的类型,其中没有空格构面设置为collapse),而不是xs:token作为基本类型。