XML Wohlgeformtheit

0 | 4 Kommentare | 2620 Aufrufe
Sie können diese Wikiseite nach der Anmeldung auf Webmasterpro bearbeiten. Helfen Sie mit und verbessern Sie "XML Wohlgeformtheit" mit Ihrem Wissen!

Anzeige Hier werben

Ein Dokument, welches die in den XML-Spezifikationen beschriebenen Regeln erfüllt, bezeichnet man als wohlgeformt (well-formed).
Wohlgeformtheit ist die Voraussetzung, dass eine XML-Datei verarbeitet werden kann.

Prolog (optionaler Teil)

Der Prolog besteht aus der optionalen XML Deklaration, den optionalen Verarbeitungsanweisungen, aus Kommentaren und, wenn das XML File auch gültig sein soll, aus einer internen bzw. externen Document Type Definition (DTD).

XML Deklaration

Die erste Zeile des Prologs enthält die XML-Dekaration.

Sie besitzt folgende Form:

XML-Dekaration  
XML
1
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>

Attribute der XML-Deklaration:

  • version: Gibt die verwendete XML Version an
  • encoding: Gibt die Zeichencodierung an (Standard: "utf-8")
  • standalone: Gibt an ob das XML mit einer externen DTD arbeitet (Standard: "no")

Verarbeitungsanweisungen (PI, processing instruction)

Gibt Informationen an bestimmte Anwendungen. Darf überall im Dokument, an Stellen wo auch normale Tags erlaubt wären, eingesetzt werden.

Beispiel:

Verbindung eines Stylesheets mit einem XML-Dokument  
XML
1
<?xml-stylesheet type="text/xsl" href="style.xsl" ?>

Kommentare

Müssen nicht im Prolog stehen und können überall außerhalb von Tags im XML Dokument verwendet werden

XML-Kommentar  
HTML
1
<!-- Kommentar -->

Dokumenttyp Deklaration (DTD)

Die DTD ist eine Beschreibung eines XML-Dokuments.

Enterne DTD: steht direkt im Prolog

 
XML
1
2
3
4
5
6
<!DOCTYPE familie [
    <!ELEMENT familie (person)+>
    <!ELEMENT person (vorname, nachname)>
    <!ELEMENT vorname (#PCDATA)>
    <!ELEMENT nachname (#PCDATA)>
]>

nach dem Wort DOCTYPE muß der Name des Elternelements folgen

externe DTD: steht in externer DTD Datei

 
XML
1
<!DOCTYPE familie SYSTEM "name.dtd">

Rumpf (vorgeschriebener Teil)

Der Hauptteil (Rumpf) eines XML-Dokumentes gleicht einer hierarchischen Baumstruktur

 
XML
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<familie>
    <person>
        <vorname>Max<vorname>       
        <nachname>Mustermann<nachname>  
    </person>
    <person>
        <vorname>Michaela<vorname>
        <nachname>Mustermann<nachname>
    </person>
</familie>

Ein XML-Dokument darf nur ein Dokumentelement haben (hier <familie>)

<person> ist das Elternelement von <vorname> und <nachname>

Bild zu XML Wohlgeformtheit
hierachische Baumstruktur des oben angegebenen XML-Dokumentes

Epilog (optionaler Teil)

Der Epilog ist ein optionaler Teil und wird so gut wie nie verwendet. Er könnte Kommentare oder Verarbeitungsanweisungen enthalten.

Vollständige XML-Datei:
 
XML
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE familie [
    <!ELEMENT familie (person)+>
    <!ELEMENT person (vorname, nachname)>
    <!ELEMENT vorname (#PCDATA)>
    <!ELEMENT nachname (#PCDATA)>
]>
<!-- bis hier sind alle Angaben optional -->
<familie>
    <person>
        <vorname>Max<vorname>       
        <nachname>Mustermann<nachname>  
    </person>
    <person>
        <vorname>Michaela<vorname>
        <nachname>Mustermann<nachname>
    </person>
</familie>

Regeln für wohlgeformte XML-Dokumente

Ein XML-Dokument:

  • Darf nur ein Dokumentelement haben
  • Muß aus mindestens einem Element bestehen
  • Ein Element muss entweder ein Start- & Endtag haben (<element>...</element>) oder als alleinstehender Tag ausgezeichnet sein (<element/>)
  • Die Start- & Endtags müssen korrekt verschachtelt sein. Das heißt, der Endtag muss in der selben Ebene wie der Starttag liegen.(Dies kann der Entwickler durch Einrückungen entsprechend der Ebenen verdeutlichen, am Aufbau des XML-Dokument ändert das jedoch nichts)
  • Tag- und Attributnamen dürfen keine Leerzeichen enthalten (entgegen einer weit verbreiteten Meinung sind auch Großbuchstaben und sogar einige Sonderzeichen wie Umlaute erlaubt, der Tag-Name ist hierbei nicht wie bei SGML case-insensitive)
  • Der Wert eines Attributes wird immer in Anführungszeichen geschrieben (attr='value' oder attr="value")

Wikiseite bearbeiten

Diese Seite kann von jedem registrierten Benutzer bearbeitet werden. Bisher haben 4 Personen an der Seite "XML Wohlgeformtheit" mitgewirkt.

Sie haben einen Fehler entdeckt oder möchten etwas ergänzen? Dann können Sie nach der Anmeldung "XML Wohlgeformtheit" hier bearbeiten.

Mitarbeiter
  • arbeitet seit längerem als Webdesigner und vor allem -entwickler. Er ist Webmaster von Webmasterpro.de und leitet den Flashcounter-Service.
  • graphic, motion & web design - kernreaktor - staportal - mukitu
  • macht zur Zeit eine Ausbildung zum Fachinformatiker für Anwendungsentwicklung. Im Rahmen dieser Ausbildung lernt er vor allem den Umgang mit JAVA und Oracle. Als Nebenjob arbeitet Simon nun seit 6 Jahren bei einer kleinen Webdesignfirma wo er maßgeblich am Layout und der validen, technischen Umsetzung der Webseiten beteiligt ist.
  • David Danier arbeitet seit mehr als neun Jahren im Bereich Web Programmierung und ist unter anderem Geschäftsführer der Webagentur Team23 GbR, sowie Webmasterpro.de.

Kommentare: XML Wohlgeformtheit

Neuen Kommentar schreiben
Wow, hast recht Daniel ^^
Beantworten

Also tags können tatsächlich auch großbuchstaben enthalten. ich denke mal, diese annahme kommt daher, dass im xhtml alle definierten tags kleingeschrieben definiert sind.

Simon Bethke am 08.12.2007 um 11:08
Re: Wow, hast recht Daniel ^^
Beantworten

Ich denke du meinst mich mit "Daniel"?

Also tags können tatsächlich auch großbuchstaben enthalten. ich denke mal, diese annahme kommt daher, dass im xhtml alle definierten tags kleingeschrieben definiert sind.

In XHTML sind Tags mit Großbuchstaben dementsprechend auch invalid, da XML eben case-sensitive ist. Denke gerade durch die Validierung wird deswegen die Meinung geschürt, dass in XML (und damit XML) Großbuchstaben verboten wären.

David Danier am 23.01.2008 um 10:45
Re: Wow, hast recht Daniel ^^
Beantworten

Müsste dann nicht noch im Artikel geändert werden, dass es doch case-sensitive ist?

Jonathan Hethey am 16.12.2008 um 11:16
Re: Wow, hast recht Daniel ^^
Beantworten

[...] Tag-Name ist allerdings nicht wie bei SGML case-insensitive [...]

Sollte aber evtl. einfach etwas schöner präsentiert werden. ;-)

David Danier am 16.12.2008 um 11:44