Используя XML-схему, как определить атрибут и ограничить текст? - PullRequest
0 голосов
/ 29 февраля 2012

Из этого примера:

<cost isoCode="GBP">27.45</cost>

Как бы я определил тип атрибута и ограничил «27,45» типом с плавающей запятой?

Я пытался использовать смешанный ComplexType, но мне не повезло!

Спасибо.

1 Ответ

2 голосов
/ 29 февраля 2012

Вы можете сделать это, используя xs:simpleContent.Ниже находится отправная точка.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 

    <xs:element name="cost">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:float">
                    <xs:attribute name="isoCode" type="isoCodeType" />
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>

    <xs:simpleType name="isoCodeType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="GBP" />
            <xs:enumeration value="other" />
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
...