2015-01-15 52 views
1

我無法驗證我的xml架構​​。 我有以下錯誤:W3C xsd驗證器上的SAXParseException

無法將名稱'familyType'解析爲(n)'類型定義'組件。

這裏是我的架構:

<?xml version="1.0"?> 

<xs:schema version="1.0" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      elementFormDefault="qualified"> 

    <xs:element name="families"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="family" type="familyType" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 

    <xs:element name="familyType"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="father" type="xs:string"/> 
       <xs:element name="mother" type="xs:string"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 

</xs:schema> 

回答

0

當您指定family元素爲familyType類型的,你要聲明一個類型,而不是一個元素,命名爲familyType

<?xml version="1.0"?> 
<xs:schema version="1.0" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      elementFormDefault="qualified"> 

    <xs:element name="families"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="family" type="familyType" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

    <xs:complexType name="familyType"> 
    <xs:sequence> 
     <xs:element name="father" type="xs:string"/> 
     <xs:element name="mother" type="xs:string"/> 
    </xs:sequence> 
    </xs:complexType> 

</xs:schema>