XML实体是文本占位符,类似常量或变量,用于避免重复、提升可维护性及安全转义;预定义实体含5个,如

XML中的实体(Entity)本质上是一种“文本占位符”,作用类似编程语言里的常量或变量,用来代表一段固定内容,避免重复书写、提升可维护性,也用于安全转义特殊字符。
实体的常见类型和用途
XML中主要有三类实体:
- 预定义实体:XML标准内置的5个,专用于表示无法直接写入文档的字符,如 zuojiankuohaophpcn();这些不用声明就能直接用。
- 通用实体(General Entity):最常用的一类自定义实体,供XML文档内容中引用,以 &名称; 形式使用,比如 &bj; 表示“北京大学出版社”。
- 参数实体(Parameter Entity):只在DTD内部使用,以 %名称; 形式出现,用于复用DTD片段(如元素定义、属性列表),不能在XML正文里引用。
如何在XML中自定义通用实体
自定义通用实体必须在DTD中声明,可以是内部DTD(写在XML文件内)或外部DTD(单独的.dtd文件)。关键步骤如下:
MALL的中文含义是购物中心,是区别于专卖店和百货公司的一个流行的商业模式,MALL里面是各个独立商家,自由自主的定价,各自管理自己的供销渠道和客户关系。电子商务的MALL模式其实就是对B2C业务模式做了多主体的扩展和延伸。目前具有代表性的电子商务MALL模式就是淘宝商城。比如淘宝电器城,他们的模式更像是做房地产的,阿里巴巴有着繁华的互联网商业物业,只是开了一个名字叫淘宝电器城的大市场而已,没有任
- 在DOCTYPE声明中嵌入内部DTD,或通过 SYSTEM/Public 引用外部DTD;
- 在DTD中用 定义实体,例如 ;
- 在XML正文里用 &名称; 引用,如 &bj;,解析时会被自动替换成“北京大学出版社”;
- 注意:实体值中不能包含未转义的 、& 字符,若需保留,应使用CDATA段或预定义实体替代。
一个完整可用的内部DTD示例
以下代码可在任意支持DTD验证的XML解析器中运行:
]>XML 李白 &bj; 22.5
这里 &bj; 在解析时被替换为“北京大学出版社”,一处修改,全文生效。
使用时要注意的细节
- 实体名只能含字母、数字、连字符、下划线和点,不能以数字开头;
- 实体不能递归引用自身(包括间接循环),否则解析会失败;
- 如果实体值含双引号,建议用单引号包裹声明,反之亦然;也可用 " 转义;
- 外部实体(如 )涉及文件读取,存在XXE风险,生产环境务必禁用或严格校验。









