我想为以下xml创建架构定义:
价格节点可以有简单的数值:
<price>1000000</price>
或价格节点可以有一个且唯一的子daily
:
<price>
<daily>500</daily>
</price>
或价格节点可以有一个且唯一的子节点weekly
:
<price>
<weekly>4000</>weekly>
</price>
有可能吗?如果是,如何使用XSD定义price
元素?
在XSD中,您不能同时允许简单和复杂的内容,除非您愿意通过mixed="true"
混合元素和文本。您可以然后使用XSD 1.1断言来排除两者同时出现。
然而,你在逆流而上。相反,更改XML设计,使daily
和weekly
传递的信息成为属性而不是元素:
<price> 1000000 </price>
<price frequency="daily">500</price>
<price frequency="weekly">4000</price>
那么为price
定义XSD就没有问题了。