XML模式验证返回2个错误

时间:2012-11-11 11:25:36

标签: xml schema

当我尝试验证XML模式时,我遇到了两个问题:

78,44 s4s-elt-invalid-content 1: The content of 'gamesType' is invalid. Element 'element' is invalid, misplaced, or occurs too often.

4,9 cvc-complex-type.2.4 a: Invalid content was found starting with element 'author'. One of '{autor}' is expected

我不知道怎么做这是我第一次用Xml架构做作业。

'<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Jakub Gluch, Krzzis1013-->

<xs:element name="collection">
<xs:complexType>
<xs:sequence>
<xs:element name="autor"/>
<xs:element name="collection" minOccurs="10" maxOccurs="unbounded"/>
<xs:element name="copyright" type="copyrightType"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:complexType name="authorType">
<xs:sequence>
<xs:element name="gender" type="genderType"/>
<xs:element name="name" type="nameType" minOccurs="1" maxOccurs="2"/>
<xs:element name="surname" type="surnameType"/>
<xs:element name="age" type="ageType"/>
<xs:element name="city" type="cityType"/>
<xs:element name="study" type= "studyType"/>
</xs:sequence>
</xs:complexType>

<xs:simpleType name="genderType">
<xs:restriction base="xs:string">
<xs:pattern value="mezczyzna|kobieta"/>
</xs:restriction>
</xs:simpleType>

<xs:simpleType name="nameType" >
<xs:restriction base="xs:string" >
<xs:minLength value="1"/>
<xs:maxLength value="16"/>
</xs:restriction>
</xs:simpleType>

<xs:simpleType name="surnameType">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>

<xs:simpleType name="ageType">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="100"/>
</xs:restriction>
</xs:simpleType>

<xs:simpleType name="cityType">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>

<xs:complexType name="studyType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="semester" type="xs:integer"/>
<xs:attribute name="group" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>

<xs:complexType name="gamesType">
<xs:sequence>
<xs:element name="game"/>
<xs:element name="author"/>
<xs:element name="date"/>
<xs:element name="url"/>
<xs:element name="species"/>
</xs:sequence>

<xs:element name="games" type="gamesType"/>

<xs:complexType name="gamesType">
<xs:sequence>

<xs:element name="game">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5"/>
<xs:maxLength value="40"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

<xs:element name="author">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5"/>
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

<xs:element name="date" type="xs:date" />

<xs:element name="url">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="10"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

<xs:element name="species" type="speciesType"/>

</xs:sequence>
</xs:complexType>

<xs:complexType name="speciesType">
<xs:simpleContent>
<xs:restriction base="speciesTypeBase">
<xs:minLength value="2"/>
<xs:maxLength value="20"/>
</xs:restriction >
</xs:simpleContent>
</xs:complexType>

<xs:complexType name="speciesTypeBase">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="age" type="xs:string"/>
<xs:attribute name="language" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>

</xs:complexType>

<xs:simpleType name="copyrightType">
<xs:restriction base="xs:string">
<xs:minLength value="10"/>
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>

</xs:schema>'

1 个答案:

答案 0 :(得分:0)

很明显。

gameType中的元素没有定义类型(内联或引用类型)。它需要看起来像authorType

你的第二个错误显然是错字......