Я хочу создать XML-схему - файл XSD - для применения на XML-документах. Давайте рассмотрим следующий XML-документ:XML Schema + complexType element + Альтернатива последовательности
<root>
<a />
<b />
<c />
<a />
<a />
<b />
</root>
Где соблюдаются следующие желательные ограничения:
- < корень> является корневым элементом.
- Элементы < a>, < b> и < c> могут появляться неограниченное количество раз.
- < a>, < b> и < c> элементы не сгруппированы. Например, элемент может предшествовать и следовать за элементом < b>.
Если бы мне пришлось создать схему XML, чтобы применить на документе пример XML я хотел бы начать, как:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://doesnotmatter.com/"
xmlns="http://doesnotmatter.com/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root"
min="1"
max="1">
<complexType>
<!-- ? -->
</complexType>
</xs:element>
</xs:schema>
Я не знаю, как заполнить элемент < ComplexType> в моей схеме ,
Я не могу использовать элемент последовательности < из-за 3-го ограничения.
Как я могу достичь своей схемы, чтобы уважать все 3 ограничения.
Редактировать
Выбор элемент был краеугольным камнем моей проблемы.
Вот XML-схема, соответствующая моим потребностям, описанным выше:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://doesnotmatter.com/"
xmlns="http://doesnotmatter.com/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="a" />
<xs:element name="b" />
<xs:element name="c" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>