Ограничение дочерних элементов элемента XSD определенным типом complexType - PullRequest
0 голосов
/ 22 июля 2011

У меня есть XML-документ, структурированный следующим образом:

<document>
    <!-- heading is an element of complexType ns:blockType -->
    <heading>
    </heading>

    <!-- so is paragraph -->
    <paragraph>
    </paragraph>

    <!-- foo, in another namespace, is also of complexType ns:blockType -->
    <otherNS:foo>
    </otherNS:foo>
</document>

Как можно ограничить дочерние элементы document только типом blockType?

1 Ответ

0 голосов
/ 22 июля 2011

Вы можете определить

<xs:element name="block" abstract="true" type="ns:blockType"/>

и

<xs:complexType name="headingType">
  <xs:sequence>
    <xs:element ref="block" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>

Это позволяет заголовку содержать любой элемент в группе подстановки "block", и элемент может быть в этой группе подстановки, только если он имеет тип ns: blockType.

Это не совсем то, что вы просили, но это самое близкое, что я могу получить.

...