2010-11-29 7 views
7

worden in einem Tutorial suchen und es hat die folgenden XML- und XSD .:Müssen Sie immer einen Wurzelknoten mit xml/xsd haben?

http://yfrog.com/b9xsdandxmlj

Was ich frage mich, ist es Ihnen einen Wurzelknoten in diesem Beispiel verwenden? Es scheint keine xsd-Typdefinition zu geben, die auf den Knoten 'employeeS' verweist.

Haben Sie immer einen Wurzelknoten in xml haben müssen oder können Sie nur

<xml version="1.0"> 
<employee><employee> 
<employee><employee> 
<employee><employee> 
+0

ich dachte, war ein Wurzelknoten erforderlich. Aber sicher wissen. – sje397

Antwort

9

aus der XML-Spezifikation bei http://www.w3.org/TR/REC-xml/ (fünfte Auflage) Kapitel 2

Dies sagt

" Jedes XML-Dokument hat sowohl eine logische als auch eine physische Struktur.Psychisch besteht das Dokument aus Einheiten, die Entitäten genannt werden.Eine Entität kann sich auf andere Entitäten beziehen, um deren Aufnahme in dasDokument zu bewirken Ein Dokument beginnt in einer "Wurzel" oder Dokumenteinheit. "

"[Definition: Es gibt genau ein Element, das Stamm- oder Dokumentelement, von dem kein Teil im Inhalt eines anderen Elements erscheint.] Für alle anderen Elemente, wenn das Start-Tag im Inhalt ist Bei einem anderen Element befindet sich das End-Tag im Inhalt desselben Elements. Einfacher ausgedrückt, sind die Elemente, die durch Start- und End-Tags voneinander getrennt sind, ineinander verschachtelt. "

Also im Grunde ja, Sie brauchen immer ein Wurzelelement.

2

Von der kurzen description of XML at Wikipedia, die mehrere Wohlgeformtheits- Regeln von the official XML spec fasst zusammen:

Es gibt eine einzige „root“ Element ist, das alle anderen Elemente enthält.

+0

wikipedia ist keine sehr starke Referenz; veröffentlichte Spezifikation ist die Referenz ...Lassen Sie uns sagen, dass das Wiki den Artikel neu schreibt: Ihre Referenz wäre verloren – Jaywalker

+1

@Jaywalker: Ich bin mir bewusst, dass Wikipedia "eine kostenlose Online-Enzyklopädie * jeder kann bearbeiten *" - deshalb biete ich das Angebot als eine bequeme Zusammenfassung, gefolgt mit einem Link zu der ursprünglichen, verbindlichen Spezifikation (die etwas komplexer ist). Ich sage nicht "es ist auf Wikipedia, es ist wahr!" aber "hier ist eine Zusammenfassung (w), hier ist die kanonische Quelle (w3c)". Bearbeitet, um den Link zur Quelle zu betonen. – Piskvor

0

Ja, Sie benötigen einen und nur einen Stammknoten.

1

Wurzelknoten ist obligatorisch. Es wird in der W3C-Nomenklatur auch als "Dokumentelement" bezeichnet.

Definition: Es ist genau ein Element, genannt Wurzel oder Dokument-Element, kein Teil davon in dem Inhalt eines anderen Elements erscheint (Referenz: section 2.1 of W3C XML specs)

2

Ja, Sie haben immer einen Wurzelknoten haben. Sie können jedoch eine Datei mit einem XML-Dokument Fragment haben, das als analysierte Entität in eine andere Datei importiert wird. Alle einschließlich Datei eine Erklärung, wie dies in der DTD tun muss, ist haben:

<!ENTITY SomeName SYSTEM "/path/to/file.xml"> 

Dann kann es es einfach so einpacken:

<SomeOuterTag> 
    &SomeName; 
</SomeOuterTag> 
Verwandte Themen