2012-10-16 96 views
1

中號仍堅持這一錯誤,請幫我出.....元素'programmeType'具有'type'屬性和'anonymous type'子元素。其中只有一個是允許的元素

我的.xml文件是

<?xml version="1.0"?> 
<addresses xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:noNamespaceSchemaLocation='Lsc.xsd'> 
<lscApplicationform> 
<programmes> 
    <course>MBA(12 months)</course> 
</programmes> 
<personalDetails> 
<surname>Sagar</surname> 
<firstname>Shiva</firstname> 
<gender>Male</gender> 
<placeofbirth>Ulhasnagar</placeofbirth> 
<nationality>Indian</nationality> 
<countryofbirth>India</countryofbirth> 
<dateofbirth>1993-06-03</dateofbirth> 
</personalDetails> 
<permanentAddress> 
</permanentAddress> 
</lscApplicationform> 
</addresses> 

和我的XSD文件是

<?xml version="1.0"?> 
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="lscApplicationForm"> 
     <xs:complexType> 
     <xs:sequence> 
     <xs:element name="programmeType" type="xs:string"> 
       <xs:simpleType> 
     <xs:restriction base="xs:string"> 
      <xs:enumeration value="MBA(months)"/> 
      <xs:enumeration value="MBA(months)"/> 
      <xs:enumeration value="MSc InformationTechnology"/> 
      <xs:enumeration value="Msc InternationalHospitalityManagement"/> 
      <xs:enumeration value="Msc InternationalTourismManagement"/> 
      <xs:enumeration value="BA(Hons)BusinessStudies"/> 
      <xs:enumeration value="BSc(Hons)Computing"/> 
      <xs:enumeration value="PhD/ProfessionaDoctorate"/> 
      <xs:enumeration value="Other(pleasespecify)"/> 
     </xs:restriction> 
      </xs:simpleType> 




       <xs:element name="personalDetails" type="xs:string"/> 
     <xs:complexType> 
     <xs:sequence> 
      <xs:element name="Surname" type="xs:string"/> 
      <xs:simpleType> 
      <xs:restriction base="xs:string"> 
      <xs:length value="100"/> 
      </xs:restriction> 
      </xs:simpleType> 


      <xs:element name="Gender"/> 
      <xs:simpleType> 
      <xs:restriction base="xs:string"> 
      <xs:pattern value="male|female"/> 
      </xs:restriction> 
      </xs:simpleType> 


      <xs:element name="placeOfBirth" type="xs:string"/> 
      <xs:element name="Nationality" type="xs:string"/> 
      <xs:element name="CountryOfBirth" type="xs:string"/> 
      <xs:element name="dob" type="xs:date"/> 
     </xs:sequence>  
     </xs:complexType> 
     <xs:element name="permanentAddress" type="xs:string"/> 
       <xs:complexType> 
       </xs:complexType> 
</xs:element>    
</xs:sequence> 
</xs:complexType>  
</xs:element> 
    </xs:schema> 

還有一個錯誤是 s4s-elt-must-match.1:'programmeType'的內容必須匹配(annotation?,(simpleType | complexType)?,(unique | key | keyref)*))。發現問題始於:元素。

在此先感謝....

回答

1

試試這個:

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

    <xs:element name="addresses"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="lscApplicationform"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

    <xs:element name="lscApplicationform"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="programmes"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element name="course"> 
       <xs:simpleType> 
        <xs:restriction base="xs:string"> 
        <xs:enumeration value="MBA(months)"/> 
        <xs:enumeration value="MBA(months)"/> 
        <xs:enumeration value="MSc InformationTechnology"/> 
        <xs:enumeration value="Msc InternationalHospitalityManagement"/> 
        <xs:enumeration value="Msc InternationalTourismManagement"/> 
        <xs:enumeration value="BA(Hons)BusinessStudies"/> 
        <xs:enumeration value="BSc(Hons)Computing"/> 
        <xs:enumeration value="PhD/ProfessionaDoctorate"/> 
        <xs:enumeration value="Other(pleasespecify)"/> 
        </xs:restriction> 
       </xs:simpleType> 
       </xs:element> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     <xs:element name="personalDetails"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element name="Surname"> 
       <xs:simpleType> 
        <xs:restriction base="xs:string"> 
        <xs:length value="100"/> 
        </xs:restriction> 
       </xs:simpleType> 
       </xs:element> 


       <xs:element name="Gender"> 
       <xs:simpleType> 
        <xs:restriction base="xs:string"> 
        <xs:pattern value="male|female"/> 
        </xs:restriction> 
       </xs:simpleType> 
       </xs:element> 

       <xs:element name="placeOfBirth" type="xs:string"/> 
       <xs:element name="Nationality" type="xs:string"/> 
       <xs:element name="CountryOfBirth" type="xs:string"/> 
       <xs:element name="dob" type="xs:date"/> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 

     <xs:element name="permanentAddress" type="xs:string"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

</xs:schema> 
3

XSD模式文檔的XML語法複雜,以至於真正支付使用該理解XSD語法和可以驗證編輯當你去時。無論有沒有這樣的編輯器,你可能都想花一些時間閱讀一篇關於XSD的基本教程。

您的基本問題以多種形式出現多次,即您的模式文檔不遵守模式文檔的語法約束。

  • 的元素聲明的幾個有type="xs:string",它指定元素的類型爲xs:string,並xs:simpleTypexs:complexType孩子,其中指定元素的類型是不同的東西。在任何元素聲明中使用或者,type屬性類型定義子(simpleType或complexType),而不是兩者。

  • 你的幾個元素聲明被標記爲空元素,緊接着是simpleTypecomplexType元素,我猜想它是元素聲明的子元素,而不是後面的兄弟元素。

一旦你解決這些問題,您的架構文件將語法OK,然後你可以把你的注意力,以使它說,你想讓它說什麼。

相關問題