2011-01-28 6 views
0

Я пытаюсь создать схему, в которой тип элемента определяется значением атрибута родителя. В частности, хочу я хочу сделать этоXML-схема: значение атрибута типа элемента дочернего элемента?

<argument name="foo" type="float">5.6</argument> 

где значение аргумента должно быть приведено в исполнение в соответствии со значением с плавающей точкой. Так что тип элемента значения имеет тип, определенный атрибутом элемента argument.

Теперь я нашел older post on the topic, где было указано, что это невозможно сделать в XML-Schema 1.0.

Так что мой вопрос; Есть ли рекомендуемый альтернативный способ сделать это? Ближайший я могу вспомнить, что позволяет что-то вроде

<argument name="foo"> 
    <float>5.6</float> 
</argument> 

Letting argument содержат элемент типа type, а затем пусть float быть получены из type.

+2

' 5.6'? – delnan

ответ

2

Зависит от того, что вы подразумеваете под «альтернативным способом». Вы можете изменить свой дизайн документа (например, использовать xsi: type), вы можете использовать другую методологию проверки (например, RelaxNG или Schematron), или вы можете перейти к XSD 1.1.