XSD中的条件简单/完全类型

时间:2016-10-03 01:59:10

标签: xml xsd schema

我想为以下xml创建模式定义:

价格节点可能有简单的数值:

<price>1000000</price>

或价格节点可能包含唯一daily

<price>
  <daily>500</daily>
</price>

或价格节点可能包含唯一weekly

<price>
  <weekly>4000</>weekly> 
</price>

有可能吗?如果是,如何使用XSD定义price元素?

1 个答案:

答案 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没有问题。