Entities  

Eine XML-Entity lässt sich am besten als Makroersetzungsfunktion verstehen, bei der die Ersetzung entweder vom Parser analysiert werden kann (der Text wird dann Teil des XML-Dokuments) oder nicht analysierbar ist. Bei nicht analysierbaren Entities zeigt die Entity-Deklaration auf externe Binärdaten, die nicht für eine Analyse durch den Parser bestimmt sind. Der Ersetzungstext für analysierbare Entities kann aus einem String stammen oder aus einer externen Textdatei. Bei der Analyse durch den Parser wird eine analysierbare Entity-Referenz durch den Ersetzungstext ersetzt, der in der Entity-Deklaration bezeichnet ist. Der Ersetzungstext wird dann ebenfalls vom Parser analysiert, bis alle Entity- und Zeichenreferenzen aufgelöst sind.

Um die Dokumentanalyse zu vereinfachen, unterscheidet man zwischen zwei Arten von Entities, die in verschiedenen Situationen Anwendung finden: Allgemeine und Parameter-Entities. Die grundlegende Syntax für die Entity-Referenz ist bei beiden Arten nahezu identisch, doch gelten spezifische Regeln, wo generelle und wo Parameter-Entities verwendet werden können.