2010-08-24 78 views
0

擴展一個元素,我想在我的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> 

回答

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

您可以將元素 'instituicao' 轉換爲一個類型。元素和類型位於不同的符號空間中。如果您仍然需要它作爲元素,請創建類型爲

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