2010-01-31 72 views
4

在下面顯示的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> 
+0

這不一定是一個社區wiki的問題。 – 2010-01-31 14:45:26

+0

@丹:反饋會很好。 – Filburt 2010-02-13 01:08:37

回答

1

號,你可以這樣做,在XSD。

xsd定義了xml架構而不是xml數據。您需要在解析xml數據的代碼中執行此操作。

1

我認爲你可以得到最接近的是這樣的:

<?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並不意味着這一點。