我正在尝试在XML Scheme中扩展一个元素,但它不起作用:
<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>
答案 0 :(得分:1)
这应该有效:
<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>
答案 1 :(得分:0)
您可以将元素'instituicao'转换为类型。元素和类型位于不同的符号空间中。如果您仍然需要它作为元素从类型
创建元素<element name="instituicao" type="instituicao"/>