Processing Instructions erlauben es
— wie der Name schon sagt —, Anweisungen für die
Verarbeitung in einem XML-Dokument
unterzubringen. Anweisungen für die Verarbeitung? Ist das
nicht ein Widerspruch zur Absicht, den Inhalt von solchen
Anweisungen zu trennen?
, könnten Sie jetzt
fragenUm ehrlich zu sein, wir hoffen, dass Sie diese
Frage hier stellen.. Die Antwort ist Ja. Nachdem
wir zuvor bereits vom Missbrauch der Kommentare zu diesem Zweck
abgeraten haben, wollen wir hier nicht schon wieder
oberlehrerhaft eine Empfehlung aussprechen. Stattdessen
lassen wir Charles Goldfarb, den wichtigsten
SGML-Entwickler sprechen. Da Processing
Instructions — wie so vieles andere — von
SGML geerbt sind, hat er
selbstverständlich auch eine Meinung dazu. Wir zitieren sie
hier aus
[gold90]
[gold90]
The SGML Handbook
, Charles F. Goldfarb, 1990, Oxford University Press:
Die Verwendungsmöglichkeiten für SGML umfassen ein Kontinuum: Auf der einen Seite steht die Zukunft, ausgerichtet auf Informationen, welche aus Datenbanken entnommen, zusammengetragen für einen bestimmten Zweck und verarbeitet zu jedem Zweck, von jedem beliebigen System in Übereinstimmung mit Regeln, die auf die Struktur reagieren, die den gespeicherten Informationen innewohnt. Auf der anderen Seite ist die Vergangenheit, aufgebaut auf nicht-regelbasierter, einmaliger Formatierung von Text und Bildern auf einzelne Seiten.
In gewissem Sinne können SGML Processing Instructions als ein Rückgriff auf die Vergangenheit angesehen werden, da sie dem Benutzer die Möglichkeit geben, system-spezifische Auszeichnungen an ein Anwendungsprogramm in seiner eigenen Sprache zu übermitteln. [...] In einer perfekten Welt wären [Processing Instructions] nicht notwendig, aber, wie Sie vielleicht bemerkt haben, die Welt ist nicht perfekt.
Nun an Sie zu appellieren, diese Welt zu einer besseren
Welt zu machen, wäre doch wohl etwas zu viel
PathosWas nicht heißen soll, dass wir in Goldfarbs
Aussage Pathos erkennen; vielmehr
Ironie. und eine
geringfügige Überschätzung der Bedeutung von
XML. Aber dennoch würde wohl auch Goldfarb
empfehlen, Processing Instructions sparsam einzusetzen.
Die Syntax soll hier aber keinesfalls verschwiegen werden:
Wie Sie sehen, Processing Instructions stehen zwischen <? und ?>. Kommt Ihnen das bekannt vor? Das sollte es, denn eine solche Anweisung haben wir schon vorgestellt: die XML-Deklaration, die auch das erste der folgenden Beispiele darstellt:
<?xml version="1.0"?> <?apache include file="fusszeile.html" ?> <?behme-mintert manuskript-status="draft" ?>
Das zweite Beispiel könnte eine bessere Notation für Apaches SSI-Mechanismus sein. Das letzte Beispiel zeigt eine potenzielle Möglichkeit, wie wir den Status unseres Manuskripts notieren könnten. Selbstverständlich haben wir bei der Herstellung dieses Buches auf Processing Instructions verzichtet ;-).
Es empfiehlt sich, als PITarget eine Zeichenfolge zu wählen, die jede Verwechslung ausschließt. Aus Gründen der Eindeutigkeit ist auch die Bezeichnung xml verboten, da sie offenkundig bereits mit einer Funktion belegt ist. Die Anweisungen, die hinter dem PITarget stehen, sind keiner Einschränkung unterworfen, solange nicht die Kombination ?> darin auftaucht.