Мне нужно написать схему, где не имеет значения порядок вложенных элементов, и там может быть больше вложенных элементов того же типа.
Я пытался использовать xs:all
и xs:sequence
, ноэто не работает.
Этот XML должен быть действительным:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="test.xsd">
<elementB>B</elementB>
<elementA>A</elementA>
<elementA>A</elementA>
</test>
, и вот XSD, которые я пробовал:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="test">
<xs:complexType>
<xs:sequence>
<xs:element name="elementA" type="xs:string"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="elementB" type="xs:string"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Первая XSD-схема имеет проблемус упорядочением.
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
vc:minVersion="1.1">
<xs:element name="test">
<xs:complexType>
<xs:all>
<xs:element name="elementA" type="xs:string"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="elementB" type="xs:string"
minOccurs="0" maxOccurs="unbounded"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Второй XSD выглядит многообещающе, но я не могу настроить Intellij, чтобы правильно использовать его для XML. (Я переключил использование XML Schema 1.1 здесь File->Settings->Languages & Frameworks->Schemas and DTDs->Default XML Schemas
) Моя версия IntelliJ - 2019.2.3.