Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3245313
  • 博文数量: 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-10 11:17:27

XML属性

一个元素可以为以下十种类型中的任意一种:
   CDATA
   Enumerated
   ID
   IDREF
   IDREFS
   ENTITY
   ENTITIES
   NMTOKEN
   NMTOKENS 此类型的属性值只能是英文、数字、-
   NOTATION

#IMPLIED:XML属性可有可无
#REQIRED:它表示必须要出现(对属性的内容没有限制)
#FIXED:属性值必须固定且必须出现。

1.CDATA

CDATA指的是纯文本,即由字符、符号“&”、小于号“<”和引号“"”组成的字符串。当然,就象我们前面讲到的,你应该使用实体&代替“&”,<代替“<”,"代替“"”。

请看下面这个关于剧本的例子:

     standalone = "yes"?>
   
   
   
    ]>

<剧本>
    <对话 演员="某甲">我可不这么认为!
    <对话 演员="某乙">为什么呢?



2.ID类型

ID是用属性值的方式为文件中的某个元素定义唯一标识的方法,它的作用类似于HTML文件中的内部链接。在大多数情况下,ID由处理文件的程序或脚本语言使用。

ID的值必须是一个有效的XML名称,它由字母、数字或下划线开始,名字中不能出现空白符。另外一般而言,不要给ID类型的属性事先指定缺省值,这很容易引起不同的元素具有相同的标识的情况,更不能使用FIXED型的缺省值。此类属性经常使用REQUIRED缺省类型,当然,这也不是必须的。有的应用并不要求每个元素都有自己的标识,所以,也可以使用IMPLIED缺省类型。

IMPLIED表示XML属性可有可无

      encoding="GB2312"
      standalone = "yes"?>
   
   
   
   
   
    ]>

<联系人列表>
    <联系人 编号="1">
        <姓名>张三
        zhang@aaa.com
   

    <联系人 编号="2">
        <姓名>李四
        li@bbb.org
   


3.IDREF类型

IDREF类型允许一个元素的属性使用文件中的另一个元素,方法就是把那个元素的ID标识值作为该属性的取值。例如下面的例子:

      encoding="GB2312"
      standalone = "yes"?>
   
   
   
   
   
   
    ]>

<联系人列表>
    <联系人 编号="2">
        <姓名>张三
        zhang@aaa.com
   

    <联系人 编号="1" 上司="2">
        <姓名>李四
        li@aaa.com
    
4.枚举类型   

属性也可以被描述为一组可接受的取值的列表,XML文件中对属性的赋值将从这个列表中选取一个值。这类属性属于枚举类型ENUMERATED,不过,关键字ENUMERATED是不出现在DTD定义中的。

      encoding="GB2312"
      standalone = "yes"?>
   
   
   
    ]>

<购物篮>
    <肉 类型 = "鱼肉"/>
    <肉 类型 = "牛肉"/>
    <肉/>

注意,在上面这个例子中,给属性“类型”定义的缺省值是“鸡肉”,所以“购物篮”中的第三个元素的“类型”属性取值为“鸡肉”。

5.NMTOKEN和NMTOKENS

   类型NMTOKEN和NMTOKENS是诸多属性类型中面向处理程序的又一个类型。这两个类型用于指示一个有效的名字。当需要把一个元素和其它的元件,例如一个JAVA类或一个安全算法,相联系时,可以让它们助你一臂之力。请看下面的例子:

关于元素的定义:


    安全性( ON | OFF ) "OFF">
    授权用户 NMTOKENS #IMPLIED
>

XML文件:

<数据 安全性="ON" 授权用户 = "IggieeB SelenaS GuntherB">
blah blah blah

6.ENTITY

   在声明属性值时可以使用实体引用。





阅读(1183) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~