Проверка XML-файла с помощью XSD дает разные ошибки - PullRequest
0 голосов
/ 18 июня 2019

Я все время пытаюсь проверить XML-файл с помощью XSD и пробовал разные варианты добавления элементов, последовательностей, сложного типа и ничего не решает проблему.

Может кто-нибудь сказать мне, в чем именно проблема?Благодарю.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<literature
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:NoNameSpaceSchemaLocation="exerciseLiteraturSchema.xsd">

    <!-- First reference -->
    <reference number="1">
        <author>
            <firstname>Ron</firstname>
            <name>Jefferson</name>
        </author>
        <title>XML for Beginners</title>
        <editor>McGraw Hill</editor>
        <!-- <isbn>12-3344-567-00</isbn> -->
    </reference>

</literature>

<?xml version="1.0" encoding="UTF-8"?>

<xsd:element name="literature">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="reference">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="author">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="title" type="xsd:string" />
                                    <xsd:element name="editor" type="xsd:string" />
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="number" type="xsd:integer" />
    </xsd:complexType>
</xsd:element>

1 Ответ

0 голосов
/ 18 июня 2019

За исключением xsi:noNameSpaceSchemaLocation="exerciseLiteraturSchema.xsd" вы можете получить удовлетворительный результат, используя следующий XSD:

XML:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<literature
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <!-- First reference -->
    <reference number="1">
        <author>
            <firstname>Ron</firstname>
            <name>Jefferson</name>
        </author>
        <title>XML for Beginners</title>
        <editor>McGraw Hill</editor>
        <!-- <isbn>12-3344-567-00</isbn> -->
    </reference>

</literature>

XSD:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <xs:element name="literature">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="reference">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="author">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="firstname" type="xs:string" />
                                        <xs:element name="name" type="xs:string" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="title" type="xs:string" />
                            <xs:element name="editor" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="number" type="xs:integer" />
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

This XSDпроверяет вышеуказанный XML.
Я переместил элементы title и editor из элемента author и добавил вместо них элементы firstname и name.

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