<xsd:element name="CurrencyCode" minOccurs="0" type="xsd:string">
<xsd:simpleType>
<xsd:restriction>
<xsd:length value="3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
我希望我的Currencycode是一个可选值,如果有一个值,它应该有3个字母的长度..要么我的CurrencyCode可以有Length = 0或length = 3
当我使用上面的代码时,验证器会在有空字段时返回错误
那我怎么处理这个?
答案 0 :(得分:1)
没试过(在这台机器上没有设置合适的环境),但根据规格你可以这样做:
<xsd:element name="CurrencyCode" minOccurs="0" type="xsd:string">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="(?:^$|\w{3})"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
正则表达式(?:^$|\w{3})
匹配空字符串或正好三个字符。如果您只想以大写字母接受货币代码,则可以使用(?:^$|[A-Z]{3})
。