Text-Dateien einschließen

(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)

Standardmäßig geht der XInclude-Prozessor davon aus, dass das Dokument, auf das ein href-Attribut zeigt, ein wohlgeformtes XML-Dokument ist. Dieses Dokument wird geparst, und der Inhalt des einzuschließenden Dokuments ersetzt das xi:include-Element im einschließenden Dokument. Beim Zusammenstellen großer Dokumente ist es jedoch auch praktisch, wenn man die Möglichkeit hat, ungeparsten Text einzuschließen. Beispielsweise könnten die Programm- und XML-Beispiele in diesem Buch direkt in ihrer Quellcode-Form eingeschlossen werden. Wenn Sie einem xi:include-Element ein parse-Attribut mit dem Wert text hinzufügen, dann wird das Dokument als einfacher Text geladen und nicht geparst. Zum Beispiel schließt dieses Element das Code-Beispiel Ein Dokument, das mit XInclude zwei andere Dokumente lädt der Seite Das include-Element als einfachen Text ein, ohne es zu parsen:

<xi:include href="http://cafeconleche.org/books/xian3/examples/12/12-1.xml" parse="text"/>

Wenn parse="text" angegeben ist, ist es nicht mehr erforderlich, dass das referenzierte Dokument wohlgeformt ist. Es muss noch nicht einmal ein XML-Dokument sein. Es kann C-Quellcode, eine E-Mail, ein klassisches HTML-Dokument oder fast alles andere sein. Die einzige Einschränkung ist, dass das Dokument keine unzulässigen Zeichen wie ein ASCII NUL oder eine Hälfte eines Ersetzungspaars ohne passendes Gegenstück enthalten darf.

XInclude-Prozessoren nutzen eventuelle Protokoll-Metadaten wie HTTP-Header, um die Kodierung des referenzierten Dokuments zu ermitteln, damit sie es in Unicode umkodieren können, bevor sie es einschließen. Wenn keine externen Metadaten verfügbar sind, aber der MIME-Medientyp text/xml, application/xml oder irgendein anderer Typ ist, der auf +xml endet, dann sucht der Prozessor im Dokument nach üblichen Signaturen wie Byte-Order-Markierungen oder XML-Deklarationen, die ihm helfen, die Kodierung zu erraten. Wenn diese Standard-Mechanismen nicht ausreichen, kann der Autor des Dokuments dem xi:include-Element ein encoding-Attribut hinzufügen, das die erwartete Kodierung des Dokuments anzeigt. Beispielsweise versucht dieses Element beim Laden des genannten Code-Beispiels die Latin-1-Kodierung zu verwenden:

<xi:include href="http://cafeconleche.org/books/xian3/examples/12/12-1.xml" encoding="ISO-8859-1" parse="text"/>

Wenn all das fehlschlägt, geht der Prozessor davon aus, dass das Dokument in UTF-8 kodiert ist. Alle Byte-Folgen, die für die Kodierung des Dokuments (oder dessen, was der XInclude-Prozessor für die Kodierung des Dokuments hält) nicht definiert sind, bewirken einen fatalen Fehler.

Das Attribut parse kann auch den Wert xml haben. Das zeigt an, dass das referenzierte Dokument geparst werden soll. Da das der Standardwert ist, kümmern sich die meisten Autoren nicht darum, parse="xml" anzugeben. Jeder andere Wert ist ein fataler Fehler.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

  


Copyright © 2005 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML in a Nutshell" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de