Валидация XML с использованием XSD: 2 одинаковых тега в разных местах XML

Рейтинг: 0Ответов: 0Опубликовано: 01.05.2023

XML содержит 2 одинаковых тега в разных местах. В схему валидации добавил проверку для обоих тегов, но при валидации получаю ошибку:

Duplicated definition for: 'reference'

Вопросы:

  1. Можно ли как-то в схеме валидации описать, что у меня 2 одинаковых тега в разных местах XML?
  2. Или можно ли исключить из проверки один из этих тегов, чтобы не было этой ошибки?

XML содержит 2 одинаковых тега в разных местах:

<message>
    <reference type="document">11111111111</reference>
    <currency>XXX</currency>
    <amount>0.00</amount>
    <valuedate>2023.05.01</valuedate>
    ...
    <reference type="out">2222222222222</reference>
</message>

В схему валидации добавил проверку для обоих тегов:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
    attributeFormDefault="unqualified">
    <xs:element name="message">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="reference">
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="type" type="xs:string" use="required" />
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
                ...
                <xs:element name="reference">
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="type" type="xs:string" use="required" />
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Ответы

Ответов пока нет.