Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3351071
  • 博文数量: 530
  • 博客积分: 13360
  • 博客等级: 上将
  • 技术积分: 5473
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-13 13:32
文章分类

全部博文(530)

文章存档

2017年(1)

2015年(2)

2013年(24)

2012年(20)

2011年(97)

2010年(240)

2009年(117)

2008年(12)

2007年(8)

2006年(9)

分类: 系统运维

2009-08-09 14:27:47


 一、实体的作用:

       A、代替无法输入的字符,键盘只有26个字母和一些简单的标点符号,而字符集中有成N多各种符号是无法在键盘中输入的。这时使用实体来代替。

       B、代替一些与xml规范保留字相冲突的内容,如:<   >  等等。

       C、代替大段的重复的文本。

   二、实体的分类:

     实体分为: 参数实体通用实体两种。 参数实体用在DTD定义中。一般的xml文档中都使用通用实体。这里只介绍通用实体。

    
                  
    使用实体之前,必需先声时,声明语句位于xml文档的序言的内部子集中,实体声明必需使用大写方式,如: ,ENTITY必需是大写的。使用实本时,在实体名称前面加上 & ,并表在后面加上分号:  ;。与HTML中的转义符类似。在以下xml中:&client;引用了一个实体,&241;引用了一个实体。当xml处理器碰到实体引 用时,会使用定义实体时设定的值去代替实体声时。 如下面的示例,当处理器解析到&client;时, 会使用"Mr.Rufus Xavier Sasperilla"来代替这个&client;在解析后的文本中,是看不到&client;的。

xml version="1.0"?>
  
DOCTYPE message="SYSTEM "/xmlstuff/dtds/message.dtd"
[
  >
  
ENTITY agent "MS. Sally Tashuns">
  
ENTITY phone ">617-555-1299number>">
]>
<message>
  
<opening>Dear &client;opening>
  
<body>We Have an exciting in Pi&241;,call  &agent;body>
message>

 
 1、字符实体 
  
   字符实体用来代表单个字符。字符实体分为以下三种:
 
     a、预定义字符实体
        由XML规范预先定义好了,如 amp 代表&, apos 代表单引号,gt 代表>, 在使用时加上&号,如: & 表示单个字符&, '  表示单引号。

     b、数字字符实体
         在前面我们总结实体的作用时,有一条;可以代表无法输入的字符。这些字符就是使用数字字符实体表示的。我们可以使用某个字符在字符集中的位 置数来表示该字符。 该数字可以使用10进制或16进制的方式表示,在数字前面加上:&# , 比如: ç    16进制的表示:ç , 这两种方式都表示同一个字符。

     c、命名字符实体
                            与数字字符实体类似,只是将数字改为一个更容易记忆的英文标识.

  2、混合内容实体

   混合内容实体是xml中使用得最多的实体,它的值不仅限于单个字符,还可以代表不限长度的各种字符块。混合内容实体分为:内部实体和外部实体

               a、内部混合实体
      内部混合实体表示该实体在xml文档内部定义,内部实体常用来代替经常重复的短语,名称和模板文本。上面的xml示例中,agent 实体就是典型。 除了agent,clietn, phone 实体都是内部混合实体。

    b、外部混合实体
                        一些实体需要代表大块的字符,为了便于文件的管理,可以将这些大块的字符放在其他文件中,这是外部混合实体便发挥作用了。可以在外部文件中定义实体,然后在xml文档中声明并使用它。下面是一个例子:

xml version="1.0"?>
DOCTYPE doc SYSTEM ""
[
  >
  
ENTITY part2 SYSTEM "p2.xml">
  
ENTITY part3 SYSTEM "p3.xml">
]>
<longdoc>
  
&part1;
  
&part2;
  
&part3;
longdoc>

   > 声明了一个名称为;“part1"的外部实体,该实体代表的内容处于P1.xml文件中。 part2, part3 也分别代表了 p2.xml, p3.xml 中的内容。

外部混合实体最大的用处是可以将内容太长的xml文档分成几个小的xml文档,便于网络传输。

 
  3、未析实体 

   未体实体代表不同于xml文档内容的其他数据,如:二进制数据等等。当xml处理器无法识别该数据时,不会像对待其他实体一样,去解析它,而是让它保持原样。未析实体的定义与外部混合实体的声明方式类似,只是后面多了个“NDATA”字符和一些数据标识。比如:

xml versino="1.0"?>
DOCTYPE doc 
[
  >
]>
<doc>
   
<para>Here's a picture of me:para>
   
&mypic;
doc>

4.参数实体

参数实体专门用在DTD中。定义方式是:

或:

引用方式为:

%实体名;

使用参数实体,可以方便元素和属性的声明。例如:



最后提醒大家注意,不要以为实体属性类型的定义与DTD有关,所以它使用的就是参数实体。参数实体只能在DTD中使用,而对于任何元素属性值的指定(除了缺省值外),都是在XML文件正文中进行的,因此实体属性值仍属于一般实体。

阅读(1797) | 评论(0) | 转发(0) |
0

上一篇:XML 语法规则

下一篇:XML DTD

给主人留下些什么吧!~~