Расширение элемента в схеме XML - PullRequest
0 голосов
/ 24 августа 2010

Я пытаюсь расширить элемент в моей XML-схеме, но он не работает:

<xs:complexType name="instituicaoComPais">
    <xs:complexContent>
    <xs:extension base="instituicao">
        <xs:sequence>
        <xs:element ref="pais"/>
    </xs:sequence>
    </xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="instituicao">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="departamento"/>
            <xs:element ref="universidade"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

Я получаю ошибку: Warning 3 Undefined complexType 'instituicao' is used as a base for complex type extension..

Что я долженделать?

РЕДАКТИРОВАТЬ

Я использую эти два разных элемента, как это:

<xs:element name="autor">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="nome"/>
            <xs:choice>
                <xs:element ref="instituicao"/>
                <xs:element ref="instituicaoComPais"/>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>
</xs:element>

Ответы [ 2 ]

1 голос
/ 24 августа 2010

Это должно работать:

<xs:complexType name="instituicao">
    <xs:sequence>
        <xs:element name="departamento"/>
        <xs:element name="universidade"/>
    </xs:sequence>
</xs:complexType>


<xs:complexType name="instituicaoComPais">
    <xs:complexContent>
        <xs:extension base="instituicao">
            <xs:sequence>
                <xs:element name="pais"/>
            </xs:sequence>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>
0 голосов
/ 24 августа 2010

Вы можете преобразовать элемент 'instituicao' в тип. Элементы и типы находятся в разных символьных пространствах. Если вам все еще нужно это как элемент, создайте элемент из типа

<element name="instituicao" type="instituicao"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...