温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

XML中实体的示例分析

发布时间:2021-09-17 14:16:06 来源:亿速云 阅读:155 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关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中嵌入未析实体很复杂且不规范,尽量不要使用。

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

<!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,这样,该元素声明就无效了。

关于“XML中实体的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

xml
AI