2017-02-28 2 views
0

Ich bereite mich auf OCEJWCD vor. Und ich kam dieser Frage nach. Und keine Ahnung, was wird die Antwort sein. Ich dachte, die richtige Antwort ist, dass die Reihenfolge nicht vorhergesagt werden kann. Was ist falsch.Kann jemand plzz mir helfen, es zu verstehen,Bestellung in Web-Fragment.xml

Q: In einer Anwendung gibt es drei web-fragment.xml. Unten angegeben. Bei welcher Reihenfolge wird dieser Deskriptor analysiert. Vorausgesetzt, in web.xml gibt es keine absolute Bestellung.

Web Fragment A

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

Web-Fragment B:

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

Web-Fragment C:

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

Vielen Dank im Voraus.

Antwort

1

Von den Spezifikationen

<vor> bedeutet, dass das Dokument vor dem Dokument mit den bestellt werden muss Namen übereinstimmen, was innerhalb des verschachtelten <Namen> Elements angegeben wird.

Es gibt ein spezielles Element < Andere/> welche Null oder Eins Zeit enthalten sein können innerhalb des <vor> oder <nach> Element oder null oder ein Mal unmittelbar im < absolute Bestellung > Element. Das < andere/> Element muss wie folgt behandelt werden: folgt.

Wenn das <vor> Element enthält eine verschachteltes < andere/>, wird das Dokument bewegt werden, um zum Anfang der Liste der sortierten Dokumente. Wenn es Dokumente mehrere sind unter Angabe <vor> < andere/>, wird alles, was sie zu Beginn des die Liste der sortierten Dokumente sein, aber die Reihenfolge innerhalb der Gruppe solcher Dokumente ist nicht spezifiziert.

Dies besagt eindeutig, dass die Reihenfolge zwischen A, B und C nicht deterministisch ist.

Aber dann gibt es diesen Abschnitt

Innerhalb eines <vor> oder <nach> Element, wenn ein < andere/> Element vorhanden ist, aber ist nicht der einzige <Name> Element innerhalb sein anderes Element, die anderen Elemente innerhalb dieses übergeordneten Elements müssen im Bestellprozess berücksichtigt werden.

Nun fallen sowohl A als auch B in diese Kategorie, wo ihre Bahnfragmente einen <Namen> Element neben < andere/> haben. Und in diesem Fall sagt die Spezifikation, dass die anderen Elemente im Bestellprozess berücksichtigt werden müssen. A sollte so sein, bevor B und B vor C. Voila sein sollte, seine jetzt deterministisch und die Reihenfolge

  1. A
  2. B
  3. C

Um zu testen, wäre, können wir schreiben 3 Filter und definieren Sie eine in jedem Web-Fragment und überprüfen Sie die Reihenfolge des Ladens.

+0

Vielen Dank für die Erklärung. Ich wusste nicht über den Elementteil. Das erklärt einiges. vielen Dank. – Jeena