元素'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:simpleType
或xs:complexType
孩子,其中指定元素的类型是不同的东西。在任何元素声明中使用或者,type
属性或类型定义子(simpleType或complexType),而不是两者。你的几个元素声明被标记为空元素,紧接着是
simpleType
或complexType
元素,我猜想它是元素声明的子元素,而不是后面的兄弟元素。
一旦你解决这些问题,您的架构文件将语法OK,然后你可以把你的注意力,以使它说,你想让它说什么。