XSD验证错误,同时使用
问题描述:
<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个字母的长度..要么我的货币代码可以有长度= 0或长度= 3XSD验证错误,同时使用
当我使用上述代码时,有一个空的字段
所以我怎样才能处理该验证器返回一个错误?
答
没有尝试这样做(没有合适的env设置这台机器上),但根据规范,你可以做如下:
<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})
。
你可以发布示例XML吗?您是否试图使`CurrencyCode` *元素*可选,或*值*可选(例如,有一个空元素)。它们是有区别的。 – 2011-02-18 12:13:29