我编写了一个类似下面的XMLSchema。这个想法是baseContainer只允许一些标签,而fullContainer允许baseContainer中的所有标签+其他一些标签。标签可以按任何顺序排列,并且可以有多个标签。在我的真实示例中,有更多标记,因此这种编写XMLSchema的方法往往变得庞大且非结构化。我想使用XMLSchema扩展标记来构建文档,但它不能像我期望的那样工作。
提前致谢:)
<complexType name="baseContainer">
<sequence minOccurs="0" maxOccurs="unbounded">
<choice minOccurs="0" maxOccurs="1">
<element ref="w:aTag0"/>
<element ref="w:aTag1"/>
<element ref="w:aTag2"/>
</choice>
</sequence>
</complexType>
<complexType name="fullContainer">
<sequence minOccurs="0" maxOccurs="unbounded">
<choice minOccurs="0" maxOccurs="1">
<element ref="w:aTag0"/>
<element ref="w:aTag1"/>
<element ref="w:aTag2"/>
<element ref="w:aTag3"/>
<element ref="w:aTag4"/>
</choice>
</sequence>
</complexType>
我试过这个:
<complexType name="fullContainer">
<complexContent>
<extension base="w:baseContainer">
<sequence minOccurs="0" maxOccurs="unbounded">
<choice minOccurs="0" maxOccurs="1">
<element ref="w:aTag3"/>
<element ref="w:aTag4"/>
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
答案 0 :(得分:0)
据我所知,xml-schema中不可能有你想要的东西。 您可以扩展(或限制)已定义的类型。但是你无法扩展选择元素。