2013-01-14 34 views
0

我正在編寫一個XML表單,其中管理文檔類型列表和文檔集合列表。目前,它看起來像這樣:XML引用最佳實踐

<collection> 
    <types> 
     <type id="T001">CD</type> 
     <type id="T002">Drawing</type> 
     <type id="T003">Book</type> 
     <type id="T004">Photo</type> 
     <type id="T005">Letter</type> 
    </types> 
    <languages> 
     <lang id="EN">English</taal> 
     <lang id="FR">French</taal> 
    </languages> 
    <documents> 
     <document> 
      <type>T001</type> 
      <lang>EN</lang> 
     </document> 
     <document> 
      <type>T003</type> 
      <lang>FR</lang> 
     </document> 
     <document> 
      <type>T001</type> 
      <lang>EN</lang> 
     </document> 
     <document> 
      <type>T002</type> 
      <lang>EN</lang> 
     </document> 
    <documents> 
</collection> 

我管理的類型和語言列表中的XML表內,而不是使用DTD實體的,所以我可以查詢使用XSL/Xpath的那些。

正如你所看到的,元素在兩種不同的情況下使用:在第一個列表(類型/語言)中,我將它們用作標識符,後來我將它們用作參考元素,但具有相同的節點名稱。我認爲它使用相同的節點名稱標識符和引用元素不是很整齊。 這又會怎樣呢?

回答

1

這只是一個約定的問題。就個人而言,我將其更改爲:

<documents> 
    <document> 
     <typeRef>T001</type> 
     <langRef>EN</lang> 
     ... 

或者:

<documents> 
    <document type="T001" lang="EN"> 
    ... 
+1

這不只是一個約定的事項;由於ID和IDREF是屬性類型,所以* document *和* type *元素之間的索引關係不能在DTD語法中建模。 – Erlock