我想为以下xml创建模式定义:
价格节点可能有简单的数值:
<price>1000000</price>
或价格节点可能包含唯一子daily
:
<price>
<daily>500</daily>
</price>
或价格节点可能包含唯一子weekly
:
<price>
<weekly>4000</>weekly>
</price>
有可能吗?如果是,如何使用XSD定义price
元素?
答案 0 :(得分:1)
在XSD中,除非您愿意通过mixed="true"
提供混合元素和文字,否则您不能同时使用简单和复杂的内容。您可以然后使用XSD 1.1断言来排除两者同时出现。
但是,你在这里游泳。相反,更改XML设计以使daily
vs weekly
传达的信息成为属性而非元素:
<price> 1000000 </price>
<price frequency="daily">500</price>
<price frequency="weekly">4000</price>
然后,您可以为price
定义XSD没有问题。