1

M 遇到此错误,请帮帮我.....

我的 .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: The content of 'programmeType' must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*))。发现问题始于:元素。

提前致谢....

4

2 回答 2

4

XSD 模式文档的 XML 语法非常复杂,因此使用理解 XSD 语法并可以随时验证的编辑器确实值得。无论有没有这样的编辑器,您都可能想花一些时间来查看有关 XSD 的基本教程。

您的基本问题(多次以不同的形式出现)是您的模式文档不遵守模式文档的句法约束。

  • 您的几个元素声明 have type="xs:string",它指定元素的类型是xs:string还有have xs:simpleTypeor xs:complexTypechildren,它指定元素的类型是不同的。在任何元素声明上使用属性type类型定义子项(simpleType 或 complexType),而不是两者。

  • 您的几个元素声明被标记为空元素,紧跟一个simpleTypeorcomplexType元素,我猜它是元素声明的子元素,而不是后续兄弟元素。

一旦你解决了这些问题,你的模式文档就会在语法上正常,然后你可以将注意力转移到让它说出你想要说的东西上。

于 2012-10-16T15:37:09.593 回答
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>
于 2012-10-16T15:28:59.193 回答