【问题标题】:Why can I not validate an XML document against my XSD document?为什么我不能根据我的 XSD 文档验证 XML 文档?
【发布时间】:2018-05-23 19:52:53
【问题描述】:

XSD 文档:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<xs:element name="esport">
  <xs:complexType>
  <xs:sequence>
    <xs:element name="dota">
        <xs:complexType>
        <xs:sequence>
            <xs:element name="team">
              <xs:complexType>
              <xs:sequence>
                <xs:attribute name="mmr" type="xs:integer">
                    <xs:restriction>
                        <xs:minInclusive value="3000"/>
                        <xs:maxInclusive value="7000"/>
                    </xs:restriction>
                </xs:attribute>
                <xs:element name="name" type="xs:string"/>
                <xs:element name="country" type="xs:string"/>
                <xs:element name="members">
                <xs:complexType>
                <xs:sequence>
                    <xs:attribute name="role" use="required">
                    <xs:restriction base="xs:string">
                            <xs:enumeration value="solomid"/>
                            <xs:enumeration value="support"/>
                            <xs:enumeration value="carry"/>
                            <xs:enumeration value="offlaner"/>
                    </xs:restriction>
                    </xs:attribute>
                    <xs:attribute name="kda_avg" use="required">
                    <xs:restriction base="xs:integer">
                        <xs:patern value="[0-999]/[0-999]/[0-999]"/>
                    </xs:restriction>
                    </xs:attribute>
                </xs:sequence>
                </xs:complexType>
                </xs:element>
            </xs:sequence>
            </xs:complexType>
            </xs:element>
        </xs:sequence>
        </xs:complexType>
    </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>
</xs:schema>

xml文档:

<?xml version="1.0" encoding="utf-8"?>
<esport>
    <dota2>
        <team mmr="5660">
            <name> The Alliance</name>
            <country> Sweden </country>
            <members>
                <member role="solomid" kda_avg="12/5/4">s4</member>
                <member role="offlaner" kda_avg="9/6/5">Admiral</member>
                <member role="support" kda_avg="7/7/3">Akke</member>
                <member role="support" kda_avg="6/7/2">EGM</member>
                <member role="carry" kda_avg="15/6/5">Loda</member>
            </members>
        </team>
        <team>
            <name> Neolution Orange</name>
            <country> Malaysia </country>
            <members>
                <member role="carry" kda_avg="12/5/4">Mushi</member>
                <member role="support" kda_avg="9/6/5">Net</member>
                <member role="offlaner" kda_avg="7/7/3">ky.xy</member>
                <member role="support" kda_avg="6/7/2">XtincT</member>
                <member role="solomid" kda_avg="15/6/5">Ohaiyo</member>
            </members>
        </team>
    </dota2>
</esport>   

你能帮我解决我的问题吗:

错误 1:s4s-elt-must-match.1:
'sequence' 的内容必须匹配(注解?,(元素 | 组 | 选择 | 序列 | 任意)*)。
发现问题始于:属性。 错误 2:cvc-elt.1.a:找不到元素“esport”的声明。

【问题讨论】:

    标签: xml xsd


    【解决方案1】:

    消息很清楚:xs:attribute 不能作为xs:sequence 的子项出现。我不知道还能怎么说。您的架构无效,需要修复。

    快速浏览一下就会发现另一个问题:xs:patern(原文如此)的拼写错误。

    此外,根据政策,除非您拥有域,否则不应使用命名空间。您不拥有 www.w3schools.com,因此您不应使用该命名空间。

    【讨论】:

      猜你喜欢
      • 2016-10-19
      • 2019-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-22
      • 2013-05-21
      • 1970-01-01
      相关资源
      最近更新 更多