网站首页 > web开发 > XML 正文
由于数据不是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中嵌入未析实体很复杂且不规范,尽量不要使用。
本文由开源网(https://www.jb51.net)整理发布!转载请注明出处,谢谢!
参数实体可定义一组通用的实体,在文档中可通过该参数实体来引用实体。参数实体的定义与通用实体定义类似,只是中间多了一个%,引用时也是用%代码&。
<!ENTITY % person "name,address,postcode"> 引用方法 %person; 这样会用name,address,postcode代替参数实体%person;
通常DTD都比较大,DocBook的DTD长达11000多行,如果把它存放在单一文件中,管理和维护起来都非常困难。我们可以使用外部DTD子集,把一个大的DTD按功能分成不同的功能块,存放在不同的文件中。再通过外部参数实体声明引入当前DTD中,如:
定义参数实体引用外部names.dtd <!ENTITY % names SYSTEM "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,这样,该元素声明就无效了。
猜你喜欢
- 2021-07-16 WAP教程(10):WML参考手册、WML实例和WML DTD-XML/XSLT
- 2021-07-16 WAP教程(11):WAP论坛和开放移动联盟与论坛-XML/XSLT
- 2021-07-16 xml入门教程:XML是什么-XML/XSLT
- 2021-07-16 XML入门教程:XML语法-XML/XSLT
- 2021-07-16 XML入门教程:元素声明-XML/XSLT
- 2021-07-16 XML入门教程:文档类型声明-XML/XSLT
- 2021-07-16 XML入门教程:属性声明-XML/XSLT
- 2021-07-16 XML入门教程:实体-XML/XSLT
- 2021-07-16 XML入门教程:XML名称空间-XML/XSLT
- 2021-07-16 (javascript+asp)XML、XSL转换输出HTML
你 发表评论:
欢迎- 2927℃JS彻底弄懂GMT和UTC时区
- 2792℃JS使用canvas技术模仿echarts柱状图
- 2627℃JS装饰者模式和TypeScript装饰器
- 2552℃JS ES6展开运算符的几个妙用
- 2519℃vue的ssr服务端渲染示例详解
- 2345℃jquery插件实现图片对比
- 2299℃微信小程序视频弹幕位置随机
- 1774℃docker安装redis设置密码并连接的操作
- 0℃未命名
- 开源分类
- 最近发表
-
- Unity3D研究院之通过ipa或apk获取游戏所使用的unity和Xcode版本
- Unity3D研究院编辑器之脚本生成Preset Libraries(十四)
- 手把手教你Charles抓包工具使用
- python开发的程序内存越来越大_遇到个python进程占用内存太多的问题 | 数据,更懂人心...
- Selenium Python3 请求头配置
- Unity3D研究院之系统内置系统图标大整理
- Unity3D研究院编辑器之5.3JSON的序列化
- Unity3D研究院编辑器之脚本打开SpritePacker窗口(十七)
- #你好Unity3D#Hierarchy视图监听gameObject点击事件
- Unity3D研究院编辑器之自定义默认资源的Inspector面板(十)
- 开源网标签
本文暂时没有评论,来添加一个吧(●'◡'●)