Как я могу написать схему, которая производит неупорядоченный XML с расширением - PullRequest
1 голос
/ 11 апреля 2010

В следующей схеме я пытаюсь создать неупорядоченный xml, который расширяет simpleConfigurationObject:

<xs:complexType name="forTestingConfigurationObjectCreator">
  <xs:complexContent>
    <xs:extension base="simpleConfigurationObject">
      <xs:all>
        <xs:element name="a" type="xs:string"/>
        <xs:element name="b" type="xs:string" minOccurs="0"/>
      </xs:all>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="simpleConfigurationObject">
  <xs:all>
    <xs:element name="base" type="xs:string" minOccurs="0"/>
  </xs:all>
</xs:complexType>

Но я получаю следующую ошибку на xs: все "все не единственная частица в группе или используется как расширение" (это правильно)

Конечно, если поместить базовый элемент в xs: all и не использовать xs: extension вообще, я получу неупорядоченное ограничение схемы. (но это не то, что я хочу)

Вопрос: как мне создать неупорядоченную схему с расширением?

Спасибо

1 Ответ

1 голос
/ 12 апреля 2010

Вы не можете, это запрещено спецификацией схемы.См. этот пост Генри Томпсона (автора спецификации) для объяснения.

Вкратце: модель содержимого базового типа должна быть полностью проанализирована к тому времени, когда анализатор получаетк производному типу;это невозможно с тем, чего вы пытаетесь достичь.

...