| Teile: | Teil: XML Teil: PHP Quellenverzeichnis |
| Pfad: | > Teil: XML > Strukturelle Grundlagen |
| Benachbarte Abschnitte: | Ein erstes Beispiel XML-Dokumentenaufbau Wohlgeformte Dokumente Syntaktische Konstrukte Logische Struktur Namensräume Document Type Definitions |
Als wohlgeformtes Dokument wird ein textartiges Objekt bezeichnet, wenn dessen Inhalt folgenden Anforderungen genügt:
Das XML-Dokument nutzt eine DTD, oder enthält die Deklaration standalone="yes".
Zu jedem Start-Tag existiert genau ein End-Tag (Bei leeren Elementen können diese zu einem speziellen Tag zusammenfallen).
Die Elemente des Dokuments sind korrekt verschachtelt, d.h. die einzelnen Elemente überlappen einander nicht.
Das Dokument enthält genau ein Wurzelelement.
Alle Attributwerte sind in einfachen oder doppelten Anführungszeichen eingeschlossen.
Kein Start-Tag (oder Tag der eines leeren Elements) enthält zwei oder mehr Attribute desselben Namens.
Keine Kommentare oder Processing Instructions innerhalb von Tags.
Kommentare beginnen und enden mit genau zwei Bindestrichen.
Die Sonderzeichen < und & treten nicht innerhalb von Elementinhalten oder Attributwerten auf.
Nachfolgend ein Beispieldokument, welches in vielerlei Hinsicht gegen die Anforderungen eines wohlgeformten Dokuments verstößt.
<?xml version="1.0"?>
<root>
<elementA att=a oder b>
<elementB> iff a<b ==> ...
</elementA>
<elementC att1="42" att1="3.14">
<elementD <?do-something?> >
</elementC>
</elementD>
<!---- dies ist nicht erlaubt ---->
</root>
Im Einzelnen sind die Fehler folgende:
In Zeile 8 findet sich ein nicht in erforderlichen Anführungszeichen eingeschlossener Attributwert.
Der textuelle Elementinhalte des in Zeile 9 geöffneten Elements elementB enthält ein öffnendes Winkelklammersymbol, welches um Fehler während des Einlesevorgangs zu vermeiden durch die alternative Zeichensequenz < hätte ersetzt werden müssen. Darüber hinaus fehlt das korrekte schließende Tag.
Innerhalb des Elements elementC der Zeile 11 wird zweifach ein identisch benanntes Attribut definiert.
Im öffnenden Tag des in Zeile 12 definierten Elements elementD findet sich eine - dort nicht zugelassene - Processing Instruction.
Die Elementgrenzen der Elemente elementC und elementD überlappen sich.
Der in Zeile 15 plazierte Kommentar wird nicht durch die erforderlichen genau zwei Bindestriche eingegrenzt.






