(5)预定义实体与CDATA节

预定义实体

XML为显示非ASCII码字符集中的字符提供了两种方法:

       字符引用和实体引用。

字符引用是一个字符文字形式的替代品。
字符引用用来表示一个可显示的字符,它由十进制或十六进制的数字前面加上“&#”或“&#x”,后面紧跟分号“;”组成。

例如,“©”或“©”(在浏览器中)会被显示为“©”,而“®”或“®”会被显示为“®”。

实体引用

实体引用是一种合法的XML名字,前面带有一个符号“&”,后面跟着一个分号“;”,格式如“&name;”。


通用实体引用 

除了上述五个实体,所有实体都必须在文档使用前予以定义。称为通用实体引用。 
这类实体声明包含关键字ENTITY、实体名称和替换值。定义通用实体的语法格式为:

      <!ENTITY  实体名 “实体内容”>

例子:

<?xml version="1.0" encoding="gb2312"?>
<!--文件名:例5-1.xml-->
<!DOCTYPE 图书信息表 [
<!ELEMENT 图书信息表 (图书+)>
<!ELEMENT 图书 (书名,类别,作者,出版社)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 类别 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 出版社 (#PCDATA)>
<!ENTITY lb "计算机">
<!ENTITY cbs "出版社">
]>
<图书信息表>
  <图书>
    <书名>XML技术应用</书名>
    <类别>&lb;</类别>
    <作者>贾素玲</作者>    
    <出版社>清华大学&cbs;</出版社>     
  </图书> 
  <图书>
    <书名>计算机网络教程</书名>
    <类别>&lb;</类别>
    <作者>谢希仁</作者>   
    <出版社>人民邮电&cbs;</出版社>    
  </图书>   
</图书信息表>

CDATA节

CDATA标记的作用是通知XML语法解析器,该标记中的代码包括文字和标记都要当作纯文本来解析,并原封不动的将这段代码传给下一个XML应用程序。 CDATA的形式如下: 
    <![CDATA[ …… ]]>
    以<![CDATA[开始,并以]]> 结束。


因为符号“>”、“<”、“&”等是被当作标记的特定部分处理的,所以把这些符号包含在CDATA节中,所有的内容都被当作纯字符数据对待。

例子:

<?xml version="1.0" encoding="gb2312"?>
<代码>
<!--这是一段C++代码-->
<![CDATA[
while(p&&j<i)
{
   p=p->next;
   ++j;
}
]]>
</代码>

格式良好与有效的XML文档

凡是“格式良好的”XML文档都可以被XML解析器解析,进而生成对象树,以便接受进一步的处理。
“格式良好的”是对XML文档最基本的要求。


编写“格式良好的” XML文档,必须遵守的基本规则:
(1) 文档的开始必须是XML声明。
(2) 含有数据的元素必须有起始标记和结束标记。
(3) 不含数据并且仅使用一个标记的元素必须以“/>”结束。
(4) 文档只能包含一个能够包含全部其他元素的元素,即根元素。

(5) 元素只能嵌套不能重叠。
(6) 属性值必须加引号。
(7) 字符“<”和“&”只能用于起始标记和实体引用。
(8) 文档中正确地使用实体引用。 


效的XML文档
“有效的”XML必定是“格式良好的”,在此基础上,还要遵守DTD或XML Schema的语法规定。 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值