2017-02-28 22 views
0

我正在爲OCEJWCD做準備。我提出了這個問題。不知道會有什麼答案。我認爲正確的答案是訂單無法預測。哪一個是錯誤的。能夠幫助我理解它,在Web-fragment.xml中訂購

問:在一個應用程序中有三個web-fragment.xml。下面給出。這些描述符將以何種順序被解析。鑑於web.xml中沒有絕對的順序。

網絡片段A

<web-fragment> 
<name>A</name> 
<ordering> 
    <before> 
     <others/> 
     <name>B</name> 
    </before> 
</ordering> 

Web的片段B:

<web-fragment> 
<name>B</name> 
<ordering> 
    <before> 
     <others/> 
     <name>C</name> 
    </before> 
</ordering> 

Web的片段C:

<web-fragment> 
<name>C</name> 
<ordering> 
    <before> 
     <others/> 
    </before> 
</ordering> 

在此先感謝。

回答

1

從規格

< >之前意味着必須將該文件與 名匹配什麼是嵌套<名>元素中指定的文件之前預訂。

有一個特殊的元件<他人/ >其可之後>元件,或零或 <絕對排序>元件內的一個時間直接被包括>或<前<內零個或一個時間 。 <其他/ >元素必須按照 處理。

如果<前>元素包含嵌套<人/ >,該文件將被 移動到已排序文檔列表的開頭。如果有多個 文件指出<前> <人/ >,他們都將在 排序文檔列表,開始,但組這樣的 文件之日起的順序是不確定的。

這清楚地表明,A,B和C之間的順序不是確定性的。

但再有就是這部分

在一個< >或<之前之後>元素,如果<人/ >元素存在, ,但不是唯一的<名>元素內其父元素,必須在排序過程中考慮該父元素中的其他元素 。

現在A和B都屬於這個類別,其網頁片段的<名稱>元素除< others/>。在這種情況下,規格說明其他元素必須在訂購過程中考慮。所以應該是前B和B應該是C.瞧之前,它的確定性和現在的順序是

  1. 一個
  2. Ç

爲了測試,我們可以寫3篩選並在每個網頁片段中定義一個並檢查加載的順序。

+0

感謝了很多的解釋。我不知道元素部分。這解釋了很多。非常感謝。 – Jeena