XML模式验证:检查是否存在特殊字符

时间:2013-10-30 05:14:49

标签: xml validation xsd

我想使用XSD架构验证我的XML文件。在那里,我想检查特定属性值是否包含某些字符(例如:$ character)。如何使用我的XSD进行检查。我的XML看起来像这样。

<parent name="abc">
..........
..........
</parent>

<parent name="ef$">
........
........
</parent>

我想检查属性值中“$”字符的强大并解析错误。你能建议我这个

的XSD架构吗?

1 个答案:

答案 0 :(得分:3)

有了这个,你希望你的attribute拥有特定的数据类型。所以你不是检查值是什么,更多声明它可能是什么。

在这里,我们基于字符串定义受限数据类型。在这里,xs:模式中的regular expression[^$]*,其转换为“为'$'的0个或多个字符”:

<xs:simpleType name="myAttribute">
    <xs:restriction base="xs:string">
        <xs:pattern value="[^$]*"/>
    </xs:restriction>
</xs:simpleType>

然后,在parent元素的声明中,该属性具有该受限数据类型。

<xs:element name="parent">
    <xs:complexType>
        <xs:attribute name="name" type="myAttribute"/>
    </xs:complexType>
</xs:element>