我的XSD如下
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="AttNode">
<xs:complexType>
<xs:sequence>
<xs:element ref="AttNodeChild"/>
</xs:sequence>
<xs:attributeGroup ref="AttNodeGroup"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="AttNodeGroup">
<xs:attribute ref="att" use="required"/>
</xs:attributeGroup>
<xs:attribute name="att" type="patternAtt" />
<xs:simpleType name="patternAtt">
<xs:restriction base="xs:normalizedString">
<xs:pattern value="(|[TT]|YY|UU)(,(|[TT]|YY|UU))"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
当在属性值中低于模式时,XSD验证工作正常,但我不会将值属性为null
<AttNode>
<AttNodeChild att="YY,UU"/>
</AttNode>
我尝试在Pattern中使用特殊字符给出Null检查和字符串值但是失败了,请发布您的建议
验证失败
案例01:
<AttNode>
<AttNodeChild att="[TT],UU"/>
</AttNode>
案例02:
<AttNode>
<AttNodeChild att=""/>
</AttNode>
答案 0 :(得分:0)
您可以通过将正则表达式中的[
和]
转发到\[
和\]
(它们是特殊字符)来验证案例01以进行验证。
您可以通过在结束时在右括号后面添加?
来验证案例02,即接受空字符串。