Verarbeitungsanweisungen  
<?target processing-instruction data?>

Verarbeitungsanweisungen sind ein Mechanismus, der es XML-Anwendungen erlaubt, Anweisungen an einen XML-Prozessor zu schicken, die von diesem nicht analysiert und bewertet werden. Das Ziel (target) einer Verarbeitungsanzweisung kann ein zulässiger XML-Name sein, nur die Zeichensequenz xml in verschiedenen Groß-/Kleinschreibungsvarianten ist reserviert (siehe auch Kapitel 2). Eine übliche Anwendung dieses Mechanismus ist die Verknüpfung eines Stylesheets, das die Formatierungsvorschriften für das XML-Dokument bereitstellt. Gemäß der XML-Prinzipien sollen Formatierungsvorschriften vom eigentlichen Inhalt eines Dokuments getrennt sein, daher wird ein Mechanismus benötigt, der die beiden verknüpft. Verarbeitungsanweisungen sind nur für die Applikationen signifikant, die sie erkennen und interpretieren können.

In einer Notationsdeklaration kann genau festgelegt werden, welche Art von Verarbeitungsanweisung eingebunden wird, und jede einzelne XML-Anwendung muss entscheiden, was mit den zusätzlichen Daten zu machen ist. Vom XML-Parser ist keine Aktion notwendig, wenn er erkennt, dass eine bestimmte Verarbeitungsanweisung einer deklarierten Notation entspricht. Wenn dieser Mechanismus verwendet wird, sollten Anwendungen, die den öffentlichen oder Systembezeichner eines bestimmten Verarbeitungsanweisungsziels nicht erkennen, realisieren, dass sie diesen Datenteil nicht korrekt interpretieren können.

Automatische Erkennung der Zeichenkodierung

Die XML-Deklaration (möglicherweise kommt zuerst eine Marke für die Unicode-Byte-Ordnung) muss das Erste sein, was in einem XML-Dokument vorkommt, so dass der XML-Parser feststellen kann, welche Zeichenkodierung zum Speichern des Dokuments verwendet wurde. Allerdings liegt in Zusammenhang mit der Klausel encoding="..." der XML-Deklaration ein "Henne oder Ei"-Problem vor: der Parser kann die Klausel gar nicht analysieren, wenn er nicht weiß, welche Zeichenkodierung das Dokument verwendet. Da jedoch die ersten fünf Zeichen des Dokuments der String <?xml sein müssen (wenn es eine XML-Deklaration enthält), kann der Parser die ersten paar Bytes eines Dokuments lesen und in den meisten Fällen die Zeichenkodierung bestimmen, bevor er die encoding-Deklaration gelesen hat.