[英]Restrict Element Values Based on Attribute
我想基于Attribute的值来限制Element的类型,如下所示:
<Data type =“ decimal”> 44.00 </ Data>
<Data type =“ date”> 2008-02-01 </ Data>
可以定义一个这样做的架构吗?
众所周知,XML-Schema无法做到这一点,
基于另一个元素的元素验证被视为模棱两可,因此不可能。 但是,如果需要,您可以忽略条件验证来验证两种类型的数据类型,如下所示:
使用自定义名称定义新的数据类型,然后复制粘贴下面编写的模式。
<xs:simpleType name="new_type">
<xs:restriction base="xs:string">
<xs:pattern value="(([0-9]+)[.]([0-9]+))|(([0][1-9]|[1][0-2])/([0][1-9]|[1-2][0-9]|[3][0-1])/[1-2][0-9][0-9][0-9])"/>
</xs:restriction>
</xs:simpleType>
这将接受十进制或日期类型的数据,但是您无法使用属性值进行验证,
另一种解决方案是使用Schematron,但是如果您使用的是XSD和XSLT,您将不会得到那么方便和用户友好的工具。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.