XML模式-可以有多个子元素,但具有唯一的值
所以我有一个hotel根元素,它包含一个rooms元素。 在rooms元素中,必须有当前房间的列表:XML模式-可以有多个子元素,但具有唯一的值,xml,xpath,unique,Xml,Xpath,Unique,所以我有一个hotel根元素,它包含一个rooms元素。 在rooms元素中,必须有当前房间的列表: <?xml version="1.0"?> <h:hotel xmlns:h="hotel"> <existingRooms> <room>101</room> <room>102</room> <room>201</room>
<?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>
到
嗯,这是一个快速的回答…:-/在哪里可以找到这件事的相关信息,有什么帮助吗?是一个起点,Priscilla Walmsley的书当然更详细。这是一个不同的问题,考虑问一个新问题。
<unique name="inuqueRoomNumber">
<selector xpath="existingRooms/room"/>
<field xpath="."/>
</unique>