www.xml-xslt.de


Startseite

Das Buch

Auszeichnungssprachen

XML-Dokument
Dokumentstruktur
Elemente
Attribute
Kommentare/CDATA
Prolog
Wohlgeformtheit
Validität

Struktur: dtd

Retrieval: XSLT

4.5    Prolog

Obwohl nicht unbedingt erforderlich, ist der Prolog in XML-Dokumenten eine Infor-mation, die idR. eingefügt wird. Genannnt werden in diesem "Vorspann" des Doku-ments z.B. die Deklaration des Dokuments als XML-Dokument, die Anbindung von Stylesheets (XSLT oder auch CSS) sowie die Anbindung von einer Grammatik, die das Vorkommen von Elementen und Attributen im Dokument regelt.
    Darüber hinaus können noch weitere, freidefinierte Anweisungen für die fol-gende Software eingearbeitet werden.

4.5.1    XML-Deklaration

Die XML-Deklaration ist nicht zwingend erforderlich, wird aber in der Regel einge-fügt:

<?xml version=”1.0" encoding=”ISO-8859-1" standalone=”yes”?>
<email>
    <from>hans@mustermann.de</from>
    <to>fred@mustermann.de</to>
</email>


Die Grundsyntax (<? ... ?>) ist die einer Verarbeitungsanweisung (“Processing Instructi-on”), die dem Parser Informationen über den Inhalt des Dokuments gibt (hier: XML). Erforderlich ist das Schlüsselwort und die Versionsnummer (z.Zt. “1.0"). Die Angabe der Encoding gibt den Zeichensatz der Kodierung des Dokuments wieder. Ohne Angabe wird Unicode vorausgesetzt. Andere Zeichensätze aus der ISO-Palette wer-den akzeptiert. In Nord-/Westeuropa interessant ist z.B. ISO-8859-1.
    In der Regel hängt die Auswahl des Zeichensatzes zur Kodierung vom Be-triebssystem und dem verwendeten Editor (oder Software allgemein) ab. Gängige umfangreichere Texteditoren und vor allem XML-Editoren beherrschen mehrere Zeichensätze, darunter auch Unicode. Die Angabe zum Zeichensatz ist optional. - Ebenfalls optional ist die Angabe “standalone”, die über die Anbindung einer exter-nen Dokumentengrammatik Auskunft gibt. Bei standalone=”no” wird eine externe Markupdeklaration vorausgesetzt. Korrekt sind daher:

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


4.5.2    Stylesheet-Referenz
XML-Dateien können in Browsern ohne weitere Anbindung von Layoutvorlagen (z.B. CSS) ausgegeben werden. Die aktuellen Browser haben dabei ihre jeweils eigene Interpretation eines XML-Dokuments ohne Stylesheet-Referenz (= Stylesheetanbin-dung). So ist eine Anzeige des Inhalts ganz ohne weitere Informationen möglich:

 

 

Die Anbindung eines oder mehrerer alternativer Stylesheets an ein XML-Dokument geschieht in Form einer Verarbeitungsanweisung, zweckmäßiger Weise direkt hinter der XML-Deklaration. Andere Positionierungen innerhalb des Prologs sind möglich, jedoch nicht empfehlenswert. Die Syntax der Stylesheet-Referenz ist dabei zur An-bindung eines Cascading Stylesheets:

<?xml-stylesheet href=”stylesheet.css” type=”text/css”?>

Für ein XSL-Stylesheet:

<?xml-stylesheet href=”stylesheet.xsl” type=”text/xsl”?>

Erforderlich sind damit die folgende Angaben:

  • Schlüsselwort: xml-stylesheet
  • Platzierung des Stylesheets als URI: stylesheet.xsl
  • MIME-Type: text/xsl

Optional angegeben werden kann (bei der heutigen Browsertechnologie jedoch ohne Wirkung):

  • Titel: title=”Ausgabestyle”
  • Charset des Stylesheets: charset=”ISO-8859-1”
  • Ausgabemedium: media=”screen” [screen | tv | tty | projection | handheld | print | braille | aural | all]
  • Alternative Stylesheets vorhanden: alternate=”yes” [yes | no] Voreinstellung: no

4.5.3    DOCTYPE-Deklaration
Zur Anbindung einer Dokumenttypendefinition (DTD), die im Sinne einer Grammatik die Struktur des Dokuments vorbestimmt, werden im XML-Prolog die erforderlichen Angaben gemacht. Dabei können bereits im Prolog alle im Dokument erlaubten Elemente, Attribute und deren Verschachtelung genannt werden. Alternativ dazu kann auf eine externe Definition dieser Dokumentgrammatik hingewiesen werden. Diese Angaben stehen in der DOCTYPE-Deklaration, die nur dann erforderlich ist, wenn die Definition einer Grammatik vorliegt.


    XML-Dokumente können also optional an eine Grammatik angebunden wer-den. Die Entscheidung, ob eine Dokumenttypendefinition erforderlich ist, liegt beim Informationsdesigner. Der Aufbau einer DTD ist Inhalt des nächsten Kapitels, hier soll nur die Einbindung in ein XML-Dokument veranschaulicht werden.


    Einbindung der externen DTD, einer Dokumenten-Grammatik in einer eige-nen Datei:

<!DOCTYPE GBRIEF SYSTEM "dokument2.dtd">

Die Bedeutung der Teile dieser Deklaration:

  • Schlüsselwort: DOCTYPE
  • Name des Rootelements im Dokument: GBRIEF
  • Persönliche oder öffentliche DTD: SYSTEM | PUBLIC
  • Platzierung der DTD bei SYSTEM : URI-Angabe

Die Platzierung der DTD bei PUBLIC hat folgende Syntax:

<!DOCTYPE GBRIEF PUBLIC  "-//Nordiclex//lexeml 1.0//EN" “http://www.lexeml.org/dtd/lexml1.0.dtd”>

Dabei gibt die erste Datensequenz in Anführungszeichen Aufschluss über:

  • Offizielle Anerkennung der DTD: + | -
  • Name der Organisation
  • Name der DTD
  • Sprachcode

Die zweite Datensequenz beinhaltet den URI der DTD. Der PUBLIC-Identifier wird idR. nur selten angewandt.

    Die Doctype-Deklaration kann aber auch in einem XML-Dokument vorhan-den sein, das somit die Deklaration der Elemente und die Elemente selbst enthält. Der Vorteil dieser Konstruktion ist die Übersichtlichkeit. Vor allem der Informations-designer kann schnell überblicken, ob die Elemente so im inhaltlichen Teil des XML-Dokuments stehen dürfen oder nicht. Das folgende Beispiel zeigt ein XML-Dokument mit einer Adresse. Die Definition der erlaubten, erforderlichen und optio-nalen Elmente (=Dokumenttypendefinition) sind im Kopf des Dokuments enthalten. An dieser Stelle interessieren nicht die Aussagen zu diesen Inhalten sondern ledig-lich die Einbindung dieser DTD in das Dokument.

<?xml version="1.0"?>
<!DOCTYPE ANSCHRIFT [
<!ELEMENT ANSCHRIFT (NAME, ADRESSE)>
    <!ELEMENT ADRESSE (STRASSE, ORT)>
    <!ELEMENT NAME (#PCDATA)>
    <!ELEMENT STRASSE (#PCDATA)>
    <!ELEMENT ORT (#PCDATA)>
 ]>
 <ANSCHRIFT>
     <NAME>
         Fred Mustermann
     </NAME>
     <ADRESSE>
         <STRASSE>
             Am Wall 2
         </STRASSE>
         <ORT>
            223344 Burgdorf
         </ORT>
     </ADRESSE>
 </ANSCHRIFT>


Die Einbindung der DTD erfolgt damit im Kopf des Dokumentes mit dem Schlüssel-wort <!DOCTYPE, gefolgt von einer Leerstelle, gefolgt von dem Namen des Root-Elements des gesamten Dokuments, gefolgt von einer Leerstelle und dann gefolgt von einer eckigen Klammer: [.


 Nach der Nennung des letzten Elements wird die eckige Klammer wieder geschlossen: ]. Die DTD wird – wie schon bei der externen DTD – noch vor dem ers-ten Element genannt. Die Einbindung der DTD ganz ohne andere Informationen ist damit wie folgt:

<?xml version="1.0"?>
<!DOCTYPE ANSCHRIFT [
]>

Bei einer dokumentinternen DTD kann diese nur von dem einen Dokument genutzt werden. Eine dokumentexterne DTD kann von vielen Dokumenten und Anwen-dern/Anwendungen genutzt werden. – Die Vorteile einer externen DTD liegen damit auf der Hand. Beim Designprozess und beim Versand von Daten in einem einzelnen XML-Dokument kann jedoch auch eine Einbindung der DTD in das konkrete XML-Dokument sinnvoll sein. Der Informationsdesigner entscheidet hier über die Wahl der Mittel.


    Schließlich können in jede (also externe und interne) DTD weitere externe DTDs eingebunden werden (= Modularisierung). Dieser Vorgang wird im Kapitel ü-ber die DTDs näher beschrieben.

 

 


 
 
 
 
 
 
 
 
 
 

Das XML/XSLT-Seminar
(zur Zeit als Buch nicht lieferbar)