Используя xs:extension и xs:restriction вместе?

При записи XML-схемы я пытаюсь сделать что-то вроде этого

<xs:complexType name="ValueWithUnits">
    <xs:simpleContent>
        <xs:extension base="xs:double">
            <xs:attribute name="uom" fixed="second"/>
            <xs:minInclusive="0"/>
            <xs:maxInclusive="10"/>
        </xs:extension>
    </xs:simpleContent>
</xs:complexType>

К сожалению, xs:attribute позволяется на xs:extension, в то время как xs:minInclusive и xs:maxInclusive позволяются на xs:restriction, но не вместе.

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

16
задан oconnor0 5 August 2010 в 19:28
поделиться

1 ответ

Вам необходимо определить ограничение на двойной сепаратор

<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio Developer Edition 8.1.4.2482 (http://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:simpleType name="RestrictedDouble">
        <xs:restriction base="xs:double">
            <xs:minInclusive value="0" />
            <xs:maxInclusive value="10" />
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="ValueWithUnits">
        <xs:simpleContent>
            <xs:extension base="RestrictedDouble">
                <xs:attribute name="uom" fixed="second" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
</xs:schema>
18
ответ дан 30 November 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: