从逻辑上说,一个XML文档由一个序进程构成,序进程后有一严密的包含了其他所有元素的基本元素.但XML文档的实际数据可以扩展分布在若干文档中。例如:即使一个教育统计中包含了数千名学生,每个student元素也可以以独立的文件形式存在。包含XML文档细节内容的存储单元称为实体(entities)。实体可能是由一个文件、一个数据库记录或其他包含数据的项目组成。
包含XML声明或文档类型声明的存储单元和基本元素称为文档实体(documententity)。不过基本元素和它的派生元素也可包含指向即将插入文档的附加数据的实体引用。进行正确性检查的XML处理器在提交文档给最终应用程序以前或显示文件以前,将把所有不同的实体引用结合为单一逻辑结构的文档。
实体的主要目的在于保存如下内容:结构完整XML,及其他形式的文本或二进制数据。序进程和文档类型声明是它们所属文档的基本元素的一部分。仅当XSL样式单本身就是一个结构完整的XML文档时,才能作为一个实体。组成XSL样式单的实体并不是应用该样式单的XML文档的组成实体之一。CSS样式单根本就不是一个实体。
大多数实体具有一个可以引用的名,惟一的例外是包含XML文档的主文件与文档实体。文档实体无论采取何种结构,都是一种存储单元,用于存储XML声明、文档类型声明和基本元素,因此每个XML文档至少拥有一个实体。
实体有两种类型:内部实体和外部实体。完全在文档实体内部定义的实体称为内部实体。文档本身就是这样的实体,因此,所有的XML文档至少有一个内部实体。相反,经由URL定位的资源中获取的数据称为外部实体。主文档仅包含一个实际引用数据位置的URL。在HTML中,包含于<HTML>和</HTML>标记之间的文档本身是内部实体时,而IMG元素代表外部实体。
实体分为两类:可析和不可析实体。可析实体包含结构完整的XML文本。不可析实体包含二进制数据或非XML文本。如果从本质上说,当前在多数XML处理器不能很好地支持不可析实体。