Схема XML: сделать содержимое условным по перечисляемому значению атрибута - PullRequest
0 голосов
/ 28 февраля 2012

Я пытаюсь сделать содержимое элемента условным по перечисляемому атрибуту.Содержание каждого атрибута будет совершенно другим.Например:

<?xml version="1.0" encoding="utf-8"?>
<foo type="bar">
    <bargress num="5"/>
    <bargress num="8"/>
</foo>

и

<?xml version="1.0" encoding="utf-8"?>
<foo type="kan">
    <kangress say="hi"/>
    <kangress say="all"/>
</foo>

будут проверяться, но

<?xml version="1.0" encoding="utf-8"?>
<foo type="kan">
    <bargress num="5"/>
    <bargress num="8"/>
    <kangress say="hi"/>
    <kangress say="all"/>
</foo>

не будет.

Возможно ли это, и еслитак как бы я пошел по этому поводу?

1 Ответ

1 голос
/ 28 февраля 2012

То, что вы описываете, по сути является «условным назначением типа», которое является одной из новых функций в XSD 1.1 (доступно сегодня в Xerces и Saxon).

Самое близкое, что вы можете получить в XSD 1.0, это переименовать ваш атрибут "type" в xsi: type, и он будет ссылаться на имя сложного типа, определенного в вашей схеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...