在XML Schema

问题描述:

扩展一个元素,我想在我的XML方案扩展元素,但它不工作:在XML Schema

<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> 

这应该工作:

<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> 

您可以将元素 'instituicao' 转换为一个类型。元素和类型位于不同的符号空间中。如果您仍然需要它作为元素,请创建类型为

<element name="instituicao" type="instituicao"/>