我试图使一个元素的内容以枚举属性为条件。每个属性的内容将完全不同。例如:
<?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>
不会。
这是可能的,如果可以的话,我该怎么做呢?
答案 0 :(得分:1)
您所描述的内容基本上是“条件类型分配”,这是XSD 1.1中的新功能之一(今天在Xerces和Saxon中可用)。
您可以在XSD 1.0中获得的最接近的地方是将“type”属性重命名为xsi:type,并让它引用模式中定义的复杂类型的名称。