2012-07-06 102 views
1

我正在創建一個XML模式,用於跟蹤有關文件源/來源的信息。可以使用xml循環引用嗎?

我想建立一個像我下面的例子一樣的子母結構,所以我不必跟蹤元線性列表中的關係。

這樣好嗎?有沒有任何理由不推薦?,如果不是,什麼是正確的方法?

XML結構

<meta> <!-- root --> 
<info/> 
    <sources> 
     <source> 
      <meta> <!-- circular reference --> 
      <info/> 
       <sources> 
        <source> 
          <meta>...</meta> <!-- circular reference --> 
        </source> 
       </sources> 
      </meta>  
     </source> 
     <source> 
      <meta> <!-- circular reference --> 
      <info/> 
       <sources> 
        <source> 
         <meta>...</meta> <!-- circular reference --> 
        </source> 
       </sources> 
      </meta>  
     </source> 
    </sources> 
</meta> 
+0

我想,信息元素應該與源元素在相同的縮進級別?即使如此,我也無法提出任何建議,因爲我無法從示例中認識到遞歸應該如何結束。這將有助於以這種終止案件取代一次「......」。 – guidot 2012-07-30 08:37:43

回答

1

我想你的意思,是不是好了一個元素有相同的元素類型名稱的後裔?

當然;很多XML詞彙表都使用遞歸元素。 (X)HTML div元素是您可能會熟悉的一個示例。

遞歸的優點通常是它簡化了詞彙表;主要的缺點是需要處理器(以及編寫它們的人)跟蹤遞歸。在許多情況下這很容易,而在其他情況下可能會很尷尬。

您確實需要確保遞歸元素不是作爲子節點或子節點的後代需要的;否則不可能有任何有效的有限文件。