文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>XML属性

XML属性

时间:2009-08-10  来源:sinkingboat

XML属性

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

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

1.CDATA

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

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

<?xml version = "1.0"  encoding="GB2312" 
     standalone = "yes"?>
<!DOCTYPE 剧本 [
    <!ELEMENT 剧本 ANY>
    <!ELEMENT 对话 (#PCDATA)>
    <!ATTLIST 对话 演员 CDATA>
    ]>

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



2.ID类型

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

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

IMPLIED表示XML属性可有可无

<?xml version = "1.0"
      encoding="GB2312"
      standalone = "yes"?>
<!DOCTYPE 联系人列表[
    <!ELEMENT 联系人列表 ANY>
    <!ELEMENT 联系人(姓名,EMAIL)>
    <!ELEMENT 姓名(#PCDATA)>
    <!ELEMENT EMAIL(#PCDATA)>
    <!ATTLIST 联系人 编号 ID #REQUIRED>
    ]>

<联系人列表>
    <联系人 编号="1">
        <姓名>张三</姓名>
        <EMAIL>[email protected]</EMAIL>
    </联系人>

    <联系人 编号="2">
        <姓名>李四</姓名>
        <EMAIL>[email protected]</EMAIL>
    </联系人>
</联系人列表


3.IDREF类型

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

<?xml version = "1.0"
      encoding="GB2312"
      standalone = "yes"?>
<!DOCTYPE 联系人列表[
    <!ELEMENT 联系人列表 ANY>
    <!ELEMENT 联系人(姓名,EMAIL)>
    <!ELEMENT 姓名(#PCDATA)>
    <!ELEMENT EMAIL(#PCDATA)>
    <!ATTLIST 联系人 编号 ID #REQUIRED>
    <!ATTLIST 联系人 上司 IDREF #IMPLIED>
    ]>

<联系人列表>
    <联系人 编号="2">
        <姓名>张三</姓名>
        <EMAIL>[email protected]</EMAIL>
    </联系人>

    <联系人 编号="1" 上司="2">
        <姓名>李四</姓名>
        <EMAIL>[email protected]</EMAIL>
     </联系人>
</联系人列表>
4.枚举类型   

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

<?xml version = "1.0"
      encoding="GB2312"
      standalone = "yes"?>
<!DOCTYPE 购物篮 [
    <!ELEMENT 购物篮 ANY>
    <!ELEMENT 肉 EMPTY>
    <!ATTLIST 肉 类型( 鸡肉 | 牛肉 | 猪肉 | 鱼肉 ) "鸡肉">
    ]>

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

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

5.NMTOKEN和NMTOKENS

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

关于元素的定义:

<!ELEMENT 数据(#PCDATA)>
<!ATTLIST 数据
    安全性( ON | OFF ) "OFF">
    授权用户 NMTOKENS #IMPLIED
>

XML文件:

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

6.ENTITY

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

<!ELEMENT employee_data (name)>

<!ELEMENT name  English (#PCDATA)>

<!ENTITY orc "val1">

<name English="&orc">

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载