2013-01-14 118 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