对2个元素中存在的相同属性设置差异限制

时间:2019-01-15 14:04:48

标签: xml xsd schema xsd-validation

我的xml如下:

<Setting>
    <Error Num="1" Level="2"/>
    <Warning Num="3" Level="3"/>
</Setting>

现在对于相应的XSD,我想对“级别”设置限制,即“错误”中的“级别”值应该在1到10之间,而“警告”中的“级别”值应该在5到15之间。在XSD中做到这一点?

1 个答案:

答案 0 :(得分:1)

XSD displayed graphically using Liquid XML Studio

<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid Studio 2019 BETA (https://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Setting">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Error">
                    <xs:complexType>
                        <xs:attribute name="Num" type="xs:int" />
                        <xs:attribute name="Level">
                            <xs:simpleType>
                                <xs:restriction base="xs:int">
                                    <xs:minInclusive value="1" />
                                    <xs:maxInclusive value="10" />
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Warning">
                    <xs:complexType>
                        <xs:attribute name="Num" type="xs:int" />
                        <xs:attribute name="Level">
                            <xs:simpleType>
                                <xs:restriction base="xs:int">
                                    <xs:minInclusive value="5" />
                                    <xs:maxInclusive value="15" />
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>