Ошибка проверки без совпадения глобального объявления для схемы root - PullRequest
0 голосов
/ 18 апреля 2020

Я знаю, что есть много случаев этих ошибок, но такого рода ошибки валидации не имеют большого смысла для меня

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="Artwork">
     <xs:complexType>
      <xs:sequence>

        <xs:element name="title" type="xs:string"/>
        <xs:element name="media" type="xs:string"/>
        <xs:element name="description" type="xs:string"/>
        <xs:element name="created" type="xs:string"/>
        <xs:element name="display" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
    </xs:element>
 </xs:schema>

Я пытался сменить имя схемы, но ничего не сделал. Также мне нужно показать файл XML, чтобы решить эту проблему? Единственный код, который у меня есть, это тот, который связывает его с той же схемой. Пространства имен мне подходят ... Это XML





`
<Schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="artwork.xsd">

<Artworks>
 <Artwork>
     <Title>Xtreme Air</Title>
     <Media>Glass Sculpture</Media>
     <Description>An amazing work that uses glass balloon shaps to illustrate a rainbow of balloons circuling a glass earth.</Description>
     <Created>April 2010</Created>
     <Display>Orlando Museum of Arts</Display>
  </Artwork>
</Artworks>
</Schema>
`

Ответы [ 2 ]

0 голосов
/ 19 апреля 2020

Пожалуйста, попробуйте следующую пару XML / XSD. Вам необходимо обновить значение xsi:noNamespaceSchemaLocation, указав расположение файла XSD в вашей среде.

XML

<?xml version="1.0"?>
<Artworks xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:///e:/Temp/Artwork.xsd">
    <Artwork>
        <Title>Xtreme Air</Title>
        <Media>Glass Sculpture</Media>
        <Description>An amazing work that uses glass balloon shaps to illustrate a rainbow of balloons circuling a glass earth.</Description>
        <Created>April 2010</Created>
        <Display>Orlando Museum of Arts</Display>
    </Artwork>
</Artworks>

XSD

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="Artworks">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Artwork"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Artwork">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Title" type="xs:string"/>
                <xs:element name="Media" type="xs:string"/>
                <xs:element name="Description" type="xs:string"/>
                <xs:element name="Created" type="xs:string"/>
                <xs:element name="Display" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
0 голосов
/ 18 апреля 2020

Существует две основные причины этой ошибки.

  1. Пространства имен. Убедитесь, что пространство имен в вашем экземпляре документа соответствует целевому пространству имен схемы.

  2. Проблемы с API: существует много способов вызвать проверку схемы, и при совершении ошибок вы можете совершить много ошибок. итак.

С таким небольшим количеством информации, это все, что я могу сказать.

...