Почему я не могу проверить XML-документ по моему XSD-документу? - PullRequest
0 голосов
/ 23 мая 2018

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' должно совпадать (аннотация ?, (элемент | группа | choice | sequence | any) *).
Обнаружена проблема, начиная с: attribute,Ошибка 2: cvc-elt.1.a: не удается найти объявление элемента 'esport'.

1 Ответ

0 голосов
/ 24 мая 2018

Сообщение довольно ясно: xs:attribute не может появиться как дочерний элемент xs:sequence.Я не уверен, как еще можно сказать это.Ваша схема недействительна и требует исправления.

Очень быстрый взгляд наводит на мысль о другой проблеме: неправильное написание xs:patern (sic).

Кроме того, в соответствии с политикой выне следует использовать пространство имен, если вы не являетесь владельцем домена.Вы не являетесь владельцем www.w3schools.com, поэтому вам не следует использовать это пространство имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...