Xml XSD复杂类型为空,但can';不要是空的
我正在寻找确保在出现以下情况时不会抛出错误的最佳方法: 我有一个由XSD通过以下方式验证的简单类型电话号码:Xml XSD复杂类型为空,但can';不要是空的,xml,validation,xsd,null,is-empty,Xml,Validation,Xsd,Null,Is Empty,我正在寻找确保在出现以下情况时不会抛出错误的最佳方法: 我有一个由XSD通过以下方式验证的简单类型电话号码: <xs: simpleType name="phone-number"> <xs:restriction Base="xs:token"> <xs:pattern value="\d{9}"/> </xs:restriction> <xs:SimpleType> 该模式不允许空值,仅允许9位值 现在我有一个complexT
<xs: simpleType name="phone-number">
<xs:restriction Base="xs:token">
<xs:pattern value="\d{9}"/>
</xs:restriction>
<xs:SimpleType>
该模式不允许空值,仅允许9位值
现在我有一个complexType person数据,里面有一个phone number类型的元素
<xs:complexType name="person-data">
<xs:all>
<xs:element name="phone-number" type="phone-number" minOccurs="0"/>
确保验证以空值通过(或根本不验证)的最佳方法是什么
当XML文件不包含person数据标记(假定为空)时,问题就会出现,然后验证电话号码类型的更改失败
<xs:pattern value="\d{9}"/>
上述定义在语法上是正确的,允许由9位数字或无字符组成的标记
最后注意:
xs:token
将允许前导和尾随空格;如果您不想要这些,请使用xs:string
。作为一个有趣的问题,世界上哪里使用了9位数的电话号码?不清楚您在问什么。“确保验证以空值通过(或根本不验证)的最佳方法是什么?”。如果缺少person数据元素,那么您向我们展示的模式位是不相关的,因为它们只影响存在时发生的事情。您是说希望允许person数据元素包含包含空内容的phone number元素吗?
<xs:pattern value="\d{9}|"/>
<xs:simpleType name="phone-number">
<xs:restriction base="xs:token">
<xs:pattern value="\d{9}|"/>
</xs:restriction>
</xs:simpleType>