Другой XSD вопрос - как я могу добиться того, что следующие элементы XML являются действительными:Различные суб-элементы, в зависимости от значения атрибута/элемента
<some-element>
<type>1</type>
<a>...</a>
</some-element>
<some-element>
<type>2</type>
<b>...</b>
</some-element>
суб-элементы (либо<a>
или<b>
) должно зависеть от содержимого <type>
(также может быть атрибутом). Было бы так просто в RelaxNG - но RelaxNG не поддерживает ключа целостности :(
Есть ли способ осуществить это в XSD
Примечание: XML-схема версии 1.1 поддерживает <xs:alternative>
, что может быть решение? , но AFAIK не ссылочной реализации (например libxml2) поддерживает это еще Так что я ищу обходные единственный способ я придумал это:...
<type>1</type>
<some-element type="1">
<!-- simple <xs:choice> between <a> and <b> goes here -->
<a>...</a>
</some-element>
<!-- and now create a keyref between <type> and @type -->