XML Schema - 可能有多个子元素,但具有唯一值

时间:2015-11-15 15:34:58

标签: xml xpath unique

所以我有一个“hotel”根元素,其中包含一个元素“rooms”。 在房间元素内,必须有一个现有房间列表:

<a id="tohere"></a>
<form action="#tohere" ...

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

<?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>

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

1 个答案:

答案 0 :(得分:0)

更改

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

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