例如,如果我们有一个如下所示的文件:
<?xml version="1.0" encoding="utf-8"?>
<Cars>
<Audi>
<PlateNumber>9488</PlateNumber>
<Color>blue</Color>
</Audi>
<BMW>
<PlateNumber>12345</PlateNumber>
<Color>red</Color>
</BMW>
</Cars>
元素Cars
中的元素可以包含 任何 名称,但 总是 具有相同的子节点PlateNumber
和Color
。这样的事情可以在模式中定义吗?
答案 0 :(得分:2)
XSD约束严重依赖于XML组件(元素和属性)名称。允许任何元素通过xs:any
位于指定位置,但一旦使用,就会very limited ways to add further constraints。
考虑调整您的设计,以遵守类似名称使用类似名称的一般原则:
<Cars>
<Car>
<Make>Audi</Make>
<PlateNumber>9488</PlateNumber>
<Color>blue</Color>
</Car>
<Car>
<Make>BMW</Make>
<PlateNumber>12345</PlateNumber>
<Color>red</Color>
</Car>
</Cars>
然后,您可以毫不费力地表达Car
元素之间的共性。