Изменить последовательность на выбор - PullRequest
2 голосов
/ 09 февраля 2011

В моем файле схемы я определил группу с последовательностью возможных элементов .

<group name="argumentGroup">
    <sequence>
        <element name="foo" type="double" />
        <element name="bar" type="string" />
        <element name="baz" type="integer" />
    </sequence> 
</group>

Затем я ссылаюсь на эту Группу следующим образом:

<element name="arguments">
    <complexType>
        <group ref="my:argumentGroup"/>
    </complexType>
</element>

Можно ли ссылаться на группу в какой-то другой точке, но ограничить ее, чтобы это был Выбор вместо Последовательность . Положение, в котором я хочу использовать его повторно, допускает только один из элементов в пределах.

<element name="argument" minOccurs="0" maxOccurs="1">
    <complexType>
        <group name="my:argumentGroup">
            <! -- Somehow change argumentGroup sequence to choice here -->
        </group>
    <complexType>
</element>

Ответы [ 2 ]

5 голосов
/ 09 февраля 2011

Нет, вам нужно определить другую группу.

2 голосов
/ 09 февраля 2011

Нет. Вы не можете сделать это с группами. Чтобы получить этот тип повторного использования, используйте комплексный тип вместо группы для определения последовательности элементов (foo, bar, baz).

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

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

...