Parameter-Entity-Deklarationen  
<!ENTITY % name "Replacement text.">
<!ENTITY % name SYSTEM "system-literal">
<!ENTITY % name PUBLIC "pubid-literal" "system-literal">

Parameter-Entities werden innerhalb der DTD eines Dokuments deklariert. Sie müssen erst deklariert werden, bevor sie verwendet werden. Die Deklaration umfasst zwei zentrale Informationseinheiten:

  • Den Namen der Entity. Dieser wird verwendet, wenn auf die Entity verwiesen wird.

  • Den Ersetzungstext, der entweder direkt angegeben oder indirekt durch einen Link auf eine externe Entity spezifiziert wird.

Sie sollten sich darüber bewusst sein, dass ein XML-Parser eine Vorverarbeitung des Ersetzungstexts vornimmt, bevor er in einer Entity-Referenz verwendet wird. Vor allem ist zu beachten, dass Parameter-Entity-Referenzen im Ersetzungstext rekursiv entfaltet werden, bevor die Endversion des Ersetzungstexts gespeichert wird. Auch Zeichenreferenzen werden unmittelbar durch das angegebene Zeichen ersetzt. Dieser Ersetzungsvorgang kann zu unerwarteten Nebeneffekten führen, insbesondere wenn Parameter-Entities konstruiert werden, die weitere Parameter-Entities deklarieren. Wie die Entity-Ersetzung in einen XML-Parser implementiert ist und Beispiele für mögliche unerwartete Nebeneffekte finden Sie in Anhang D der XML-1.0-Spezifikation. Die Spezifikation ist verfügbar auf der Website des World Wide Web Consortium (http://www.w3.org/TR/REC-xml#sec-entexpand, dritte Auflage) bzw. die deutschen Übersetzung auf der Website der Edition W3C (http://edition-w3c.de/TR/2000/REC-xml-20001006/#sec-entexpand, 2. Auflage).