下面是我的xml
<root>
<word>
<string ID="S1" CONTENT="50 00"/>
</word>
</root>
我需要验证内部空间中的 CONTENT 不应该来,如果它来了它应该通过错误。
我们可以在XSD中使用任何模式匹配。请参考。
这是XSD
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element ref="word"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="word">
<xs:complexType>
<xs:sequence>
<xs:element ref="string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="string">
<xs:complexType>
<xs:attribute name="CONTENT" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="^\s*\S+\s*"></xs:pattern>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ID" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
</xs:schema>
谢谢提前...... Umesh制作
答案 0 :(得分:0)
\S*
,[^\s]*
模式中的任何一种都可以为您做好。您不需要,也不应提供^
和$
来锚定正则表达式; XSD正则表达式始终是锚定的,也就是说它们必须始终描述整个字符串。如果要允许前导和尾随空格,可以使用空白构面在模式匹配之前折叠空间,或者可以使用模式\s*\S*\s*
。