元素'programmeType'具有'type'属性和'anonymous type'子元素。其中只有一个是允许的元素

问题描述:

中号仍坚持这一错误,请帮我出.....元素'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)*))。发现问题始于:元素。

在此先感谢....

试试这个:

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

XSD模式文档的XML语法复杂,以至于真正支付使用该理解XSD语法和可以验证编辑当你去时。无论有没有这样的编辑器,你可能都想花一些时间阅读一篇关于XSD的基本教程。

您的基本问题以多种形式出现多次,即您的模式文档不遵守模式文档的语法约束。

  • 的元素声明的几个有type="xs:string",它指定元素的类型为xs:string,并xs:simpleTypexs:complexType孩子,其中指定元素的类型是不同的东西。在任何元素声明中使用或者,type属性类型定义子(simpleType或complexType),而不是两者。

  • 你的几个元素声明被标记为空元素,紧接着是simpleTypecomplexType元素,我猜想它是元素声明的子元素,而不是后面的兄弟元素。

一旦你解决这些问题,您的架构文件将语法OK,然后你可以把你的注意力,以使它说,你想让它说什么。