Ein XML-Dokument kann aus einer oder mehreren Speicherungseinheiten bestehen. Diese werden Entities genannt. Sie haben alle Inhalt und sind alle (abgesehen vom Dokument-Entity, s.u., und der externen Teilmenge der DTD) durch einen Namen identifiziert. Jedes XML-Dokument besitzt ein Entity namens Dokument-Entity, welches als Ausgangspunkt für den XML-Prozessor dient und das gesamte Dokument enthalten darf.
Entities dürfen entweder analysiert (parsed) oder nicht-analysiert (unparsed) sein. Der Inhalt eines analysierten Entity wird als sein Ersetzungstext bezeichnet. Dieser Text gilt als integraler Bestandteil des Dokuments.
Ein nicht-analysiertes Entity ist eine Ressource, deren Inhalt Text sein kann oder auch nicht, und falls es sich um Text handelt, nicht XML sein muss. Jedes nicht-analysierte Entity hat eine zugeordnete Notation, die durch ihren Namen identifiziert wird. XML erlegt dem Inhalt eines nicht-analysierten Entity keine Beschränkungen auf, es muss lediglich gewährleistet sein, dass der XML-Prozessor der Anwendung die Bezeichner für das Entity und für die Notation zur Verfügung stellt.
Analysierte Entities werden mit ihrem Namen durch Entity-Referenzen aufgerufen. Nicht-analysierte Entities werden mit ihrem Namen, der als Wert von ENTITY oder ENTITIES angegeben ist, aufgerufen.
Allgemeine Entities dienen der Verwendung innerhalb des Dokumentinhalts. In dieser Spezifikation werden allgemeine Entities oft unpräzise Entities genannt, sofern dies nicht zu Mehrdeutigkeit führt. Parameter-Entities sind analysierte Entities für die Benutzung innerhalb der DTD. Diese beiden Arten von Entities verwenden verschiedene Formen der Referenzierung und werden in unterschiedlichen Kontexten erkannt. Darüber hinaus belegen sie verschiedene Namensräume, d.h. ein Parameter-Entity und ein allgemeines Entity mit demselben Namen sind zwei verschiedene Entities.