XML Schema:使枚举属性值具有内容条件

时间:2012-02-28 00:45:59

标签: xml xsd

我试图使一个元素的内容以枚举属性为条件。每个属性的内容将完全不同。例如:

<?xml version="1.0" encoding="utf-8"?>
<foo type="bar">
    <bargress num="5"/>
    <bargress num="8"/>
</foo>

<?xml version="1.0" encoding="utf-8"?>
<foo type="kan">
    <kangress say="hi"/>
    <kangress say="all"/>
</foo>

会验证,但

<?xml version="1.0" encoding="utf-8"?>
<foo type="kan">
    <bargress num="5"/>
    <bargress num="8"/>
    <kangress say="hi"/>
    <kangress say="all"/>
</foo>

不会。

这是可能的,如果可以的话,我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

您所描述的内容基本上是“条件类型分配”,这是XSD 1.1中的新功能之一(今天在Xerces和Saxon中可用)。

您可以在XSD 1.0中获得的最接近的地方是将“type”属性重命名为xsi:type,并让它引用模式中定义的复杂类型的名称。