【问题标题】:XML schema validation returns 2 errorsXML 模式验证返回 2 个错误
【发布时间】:2012-11-11 19:50:54
【问题描述】:

当我尝试验证我的 XML 架构时遇到两个问题:

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

4,9 cvc-complex-type.2.4a: 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>'

【问题讨论】:

    标签: xml schema


    【解决方案1】:

    很明显。

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

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

    【讨论】:

    • 大声笑你有 rigth :D 但我不知道我必须更改为 authorType 可以告诉我吗?
    • 不,不是真的 :) 我只是想让你更清楚错误信息。
    猜你喜欢
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多