Рассмотрим два сценария:Может ли два элемента иметь разные имена, но такого же типа в XSD?
У меня есть один XML, который выглядит как:
<personinfo>
<info>
<option1>Coke</option1>
</info>
</personinfo>
, где я должен быть выбор между option1 и option2 элементом.
У меня есть другой XML, который выглядит как:
<personinfo>
<info>
<firstname>Yair</firstname>
<lastname>Zaslavsky</lastname>
</info>
</personinfo>
, где должен появиться как Firstname и фамилия (и значит, последовательность).
Я попытался использовать следующую схему:
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="optionsChoice">
<xs:choice>
<xs:element name="option1" type="xs:string"/>
<xs:element name="option2" type="xs:string"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="optionsSequence">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="personinfo">
<xs:choice>
<xs:element name="info" type="optionsSequence"/>
<xs:element name="info" type="optionsChoice"/>
</xs:choice>
</xs:complexType>
</xs:schema>
не повезло.
Имейте в виду, что я должен иметь «информацию» в качестве имени элемента в обоих случаях.
Как исправить эту проблему?