总结
豆包 AI 助手文章总结

XML入门教程-实体的具体介绍

黄舟
发布: 2017-03-15 16:47:54
原创
1499人浏览过

由于数据不是xml格式,所以使用ndata声明指定数据类型。avi是在notation中定义的mime媒体类型。在xml中嵌入未析实体很复杂且不规范,尽量不要使用。 实体

用ENTITY声明定义实体。如: 

<!ENTITY linux "linux is a very good system"> 用&linux;可引用该字符串
登录后复制

可定义一个外部实体,引用外部XML文档 

<!ENTITY linux SYSTEM "/home/linux/test.xml"> 使用&linux;可引用/home/linux/test.xml文档
登录后复制

外部实体没有XML声明,但可以有文本声明,两者很类似,主要区别是文本声明必须有编码声明,而版本信息则是可选的。 

<?xml version="1.0" encoding="gb2312"?> 是一个合法的文本声明 <?xml encoding="gb2312"?> 也是一个合法的文本声明
登录后复制

不是所有的数据都是XML。如jpeg照片,mpeg电影等。XML建议使用外部未析实体作为在文档中嵌入这些内容的机制。DTD为包含非XML数据的实体指定一个名称和URI。 

<!ENTITY movie SYSTEM "/home/linux/test.avi" NDATA avi>
登录后复制

由于数据不是XML格式,所以使用NDATA声明指定数据类型。avi是在NOTATION中定义的MIME媒体类型。在XML中嵌入未析实体很复杂且不规范,尽量不要使用。 

参数实体可定义一组通用的实体,在文档中可通过该参数实体来引用实体。参数实体的定义与通用实体定义类似,只是中间多了一个%,引用时也是用%代码&。 

<!ENTITY % person "name,address,postcode"> 引用方法 %person; 这样会用name,address,postcode代替参数实体%person;
登录后复制

通常DTD都比较大,DocBook的DTD长达11000多行,如果把它存放在单一文件中,管理和维护起来都非常困难。我们可以使用外部DTD子集,把一个大的DTD按功能分成不同的功能块,存放在不同的文件中。再通过外部参数实体声明引入当前DTD中,如: 

定义参数实体引用外部names.dtd 调用外部DTD子集 %names; 

使用IGNORE关键字可注释声明,如: 

<![IGNORE[ <!ELEMENT note (#PCDATA)> ]]>
登录后复制

当然了,使用的方式也是一样的。 

INCLUDE关键字表示DTD中的确在使用给定的声明,如: 

<![INCLUDE[ <!ELEMENT note (#PCDATA)> ]]>
登录后复制

单从该声明来看,有没有使用INCLUDE效果都一样,但如果组合INCLUDE和IGNORE,可实现DTD功能的选择。我们可定义一个参数实体: 

<!ENTITY % note_allowed "INCLUDE" >
登录后复制

然后使用参数实体引用而不使用关键字: 

<![%note_allowed;[ <!ELEMENT note (#PCDATA)> ]]>
登录后复制

按上述操作,元素声明是有效的,但我们也可以把参数实体%note_allowed重新定义为IGNORE,这样,该元素声明就无效了。

以上就是XML入门教程-实体的具体介绍的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

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

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

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