Расширение в XMlSchema, как? - PullRequest
3 голосов
/ 17 февраля 2010

Я написал 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>

1 Ответ

0 голосов
/ 19 февраля 2010

Насколько я знаю, то, что вы хотите, невозможно в xml-схеме. Вы можете расширить (или ограничить) определенный тип. Но вы не можете расширить элемент выбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...