XML 架构 - 可以有多个子元素,但具有唯一值

XML Schema - multiple child elements are possible, but have unique values

所以我有一个 "hotel" 根元素,其中包含一个元素 "rooms"。 在 rooms 元素中,必须有当前房间的列表:

<?xml version="1.0"?>
<h:hotel xmlns:h="hotel">
    <existingRooms>
        <room>101</room>
        <room>102</room>
        <room>201</room>
    </existingRooms>
</h:hotel>

多个房间同号应该是非法的:

<?xml version="1.0"?>
<h:hotel xmlns:h="hotel">
    <existingRooms>
        <room>101</room>
        <room>102</room>
        <room>201</room>
        <room>201</room>
    </existingRooms>
</h:hotel>

当我尝试用 执行此操作时,验证器只接受一个房间,这显然不是我的目标:

<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:h="hotel"
    targetNamespace="hotel">
    <element name="hotel">
        <complexType>
            <sequence>
                <element name="existingRooms">
                    <complexType>
                        <sequence>
                            <element name="room" type="integer" maxOccurs="unbounded"/>
                        </sequence>
                    </complexType>
                </element>
            </sequence>
        </complexType>
        <unique name="inuqueRoomNumber">
            <selector xpath="existingRooms"/>
            <field xpath="room"/> 
        </unique>
    </element>
</schema>

这个问题的解决方案是什么?

改变

    <unique name="inuqueRoomNumber">
        <selector xpath="existingRooms"/>
        <field xpath="room"/> 
    </unique>

    <unique name="inuqueRoomNumber">
        <selector xpath="existingRooms/room"/>
        <field xpath="."/> 
    </unique>