Схема XML: Значение атрибута на основе типа дочернего элемента? - PullRequest
0 голосов
/ 28 января 2011

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

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

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

Теперь я нашел более старый пост по теме , где было указано, чтоэто не может быть сделано в XML-схеме 1.0.

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

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

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

1 Ответ

2 голосов
/ 28 января 2011

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

...