XML中的实体(Entity)是什么 如何自定义实体

月夜之吻
发布: 2025-12-19 15:34:35
原创
200人浏览过
XML实体是文本占位符,类似常量或变量,用于避免重复、提升可维护性及安全转义;预定义实体含5个,如

xml中的实体(entity)是什么 如何自定义实体

XML中的实体(Entity)本质上是一种“文本占位符”,作用类似编程语言里的常量或变量,用来代表一段固定内容,避免重复书写、提升可维护性,也用于安全转义特殊字符。

实体的常见类型和用途

XML中主要有三类实体:

  • 预定义实体:XML标准内置的5个,专用于表示无法直接写入文档的字符,如 <();这些不用声明就能直接用。
  • 通用实体(General Entity):最常用的一类自定义实体,供XML文档内容中引用,以 &名称; 形式使用,比如 &bj; 表示“北京大学出版社”。
  • 参数实体(Parameter Entity):只在DTD内部使用,以 %名称; 形式出现,用于复用DTD片段(如元素定义、属性列表),不能在XML正文里引用。

如何在XML中自定义通用实体

自定义通用实体必须在DTD中声明,可以是内部DTD(写在XML文件内)或外部DTD(单独的.dtd文件)。关键步骤如下:

贞龙多用户商城电子商务系统java版
贞龙多用户商城电子商务系统java版

MALL的中文含义是购物中心,是区别于专卖店和百货公司的一个流行的商业模式,MALL里面是各个独立商家,自由自主的定价,各自管理自己的供销渠道和客户关系。电子商务的MALL模式其实就是对B2C业务模式做了多主体的扩展和延伸。目前具有代表性的电子商务MALL模式就是淘宝商城。比如淘宝电器城,他们的模式更像是做房地产的,阿里巴巴有着繁华的互联网商业物业,只是开了一个名字叫淘宝电器城的大市场而已,没有任

贞龙多用户商城电子商务系统java版 0
查看详情 贞龙多用户商城电子商务系统java版
  • 在DOCTYPE声明中嵌入内部DTD,或通过 SYSTEM/Public 引用外部DTD;
  • 在DTD中用 定义实体,例如
  • 在XML正文里用 &名称; 引用,如 &bj;,解析时会被自动替换成“北京大学出版社”;
  • 注意:实体值中不能包含未转义的 、& 字符,若需保留,应使用CDATA段或预定义实体替代。

一个完整可用的内部DTD示例

以下代码可在任意支持DTD验证的XML解析器中运行:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book [
  <!ELEMENT book (detail+)>
  <!ELEMENT detail (name, author, publisher, price, url)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT author (#PCDATA)>
  <!ELEMENT publisher (#PCDATA)>
  <!ELEMENT price (#PCDATA)>
  <!ELEMENT url (#PCDATA)>
  <!ENTITY bj "北京大学出版社">
]>
<book>
  <detail>
    <name>XML</name>
    <author>李白</author>
    <publisher>&bj;</publisher>
    <price>22.5</price>
    <url><![CDATA[https://example.com/xml]]></url>
  </detail>
</book>
登录后复制

这里 &bj; 在解析时被替换为“北京大学出版社”,一处修改,全文生效。

使用时要注意的细节

  • 实体名只能含字母、数字、连字符、下划线和点,不能以数字开头;
  • 实体不能递归引用自身(包括间接循环),否则解析会失败;
  • 如果实体值含双引号,建议用单引号包裹声明,反之亦然;也可用 " 转义;
  • 外部实体(如 )涉及文件读取,存在XXE风险,生产环境务必禁用或严格校验。

以上就是XML中的实体(Entity)是什么 如何自定义实体的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号