在下面顯示的XML中,是否有方法創建一個將描述XML的模式,以便id值隨着每個元素的添加而增加1書籍節點。目標是使用id作爲最小值= 1的主鍵。另外,id值應該按升序排序。將XSD Schema中的強制屬性作爲主鍵(並排序)
<Books>
<Book id="1"></Book>
<Book id="2"></Book>
<Book id="3"></Book>
<Book id="4"></Book>
...
</Books>
在下面顯示的XML中,是否有方法創建一個將描述XML的模式,以便id值隨着每個元素的添加而增加1書籍節點。目標是使用id作爲最小值= 1的主鍵。另外,id值應該按升序排序。將XSD Schema中的強制屬性作爲主鍵(並排序)
<Books>
<Book id="1"></Book>
<Book id="2"></Book>
<Book id="3"></Book>
<Book id="4"></Book>
...
</Books>
號,你可以這樣做,在XSD。
xsd定義了xml架構而不是xml數據。您需要在解析xml數據的代碼中執行此操作。
我認爲你可以得到最接近的是這樣的:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="Books">
<xs:complexType>
<xs:sequence>
<xs:element name="Book">
<xs:complexType>
<xs:attribute name="id" type="id_type" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:key name="PK_BookID">
<xs:selector xpath="Books/Book" />
<xs:field xpath="@id" />
</xs:key>
<xs:unique name="BookIdUnique">
<xs:selector xpath="Books/Book" />
<xs:field xpath="@id" />
</xs:unique>
</xs:element>
<xs:simpleType name="id_type">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
我不能沒有差距想不出什麼辦法執行排序和ID序列,但因爲這.__ curious_geek已經說明XSD並不意味着這一點。
這不一定是一個社區wiki的問題。 – 2010-01-31 14:45:26
@丹:反饋會很好。 – Filburt 2010-02-13 01:08:37