XML知识点滴(8)

XML知识点滴(8)

(引用文章,版权归作者,如需删除请联系我)

 

 

n         如果一个属性需要引用文档中多个ID属性的属性值,那么可以把它声明为具有IDREFS类型。IDREFS类型的属性值是一系列以空格分隔的ID类型的属性值,而且必须与文档中已有的ID类型属性值相匹配。

<?xml version="1.0" encoding="gb2312"?>

<!DOCTYPE library[

     <!ELEMENT library (books,records)>

     <!ELEMENT books (book+)>

     <!ELEMENT book (#PCDATA)>

     <!ELEMENT records (item*)>

     <!ELEMENT item (date,person)>

     <!ELEMENT date (#PCDATA)>

     <!ELEMENT person EMPTY>

     <!ATTLIST book bookid ID #REQUIRED>

     <!ATTLIST person name CDATA #REQUIRED>

     <!ATTLIST person borrowed IDREFS #REQUIRED>

]>

<library>

     <books>

         <book bookid="b-1-1">XML详解</book>

         <book bookid="b-1-2">.NET从入门到精通</book>

         <book bookid="b-1-3">ASP.NET实例编程</book>

     </books>

     <records>

         <item>

              <date>2007-8-7</date>

              <person name="张三" borrowed="b-1-1 b-1-2"/>

         </item>

         <item>

              <date>2007-8-8</date>

              <person name="李四" borrowed="b-1-1 b-1-2 b-1-3"/>

         </item>

     </records>

</library>

 

n         ENTITYENTITIES

1)        ENTITY类型的属性把外部的二进制数据链接到文档。

2)        ENTITY类型的属性值是在DTD中声明的未分析的一般实体的名称。

       例如,我想在文档中包含一幅外部的图象,可以声明一个ENTITY类型的属性来引入           图象,如下:

                     <!ATTLIST image src ENTITY #REQUIRED>

       DTD中,还需要声明一个外部的一般实体:

                     <!ENTITY logo SYSTEM  “http://localhost/logo.gif “ NDATA gif>

       关键字NDATA表示该实体是一般未分析的实体,后面的gif是记号名称(natation name),说明实体的数据格式或指定一个外部的处理程序。记号gif声明如下:

                     <!NOTATION gif SYSTEM “iexplore.exe”>

       XML文档中,可以在src属性中引用图像:

                     <image src=”logo”/>

       这句代码将http://localhost/logo.gif文件与image元素关联在一起。

n         ENTITIES类型和IDREFS类型的使用是类似的,它的值是多个以空格分隔的ENTITY类型的属性值。

       例如,我们可以再添加一个实体声明:

              <!ENTITY banner SYSTEM “http://localhost/banner.gif” NDATA gif>

       然后将元素image的属性声明改为:

              <!ATTLIST image src ENTITYS #REQUIRED>

       XML文档中,通过src属性引用两幅图像。

              <image src=”logo banner”>

n         NMTOKENNMTOKENS

1)        NMTOKEN (name token),名称标记是任何命名字符的混合体。

2)        NMTOKEN类型的属性值是受限制的文本,只能包含名称字符,不能包含空白字符。

3)        XML名称不能以除字母、下划线之外的其他字符开头,而名称标记没有这个限制。

4)        所有的XML名称都是名称标记,但不是所有的名称标记都是XML名称。

为了限制文件名属性的取值不能有空格,我们可以采取如下的属性声明方式:

<!ATTLIST file name NMTOKEN #REQUIRED>

在文档中,可以按如下方式使用name属性:

<file name=XML讲座.doc”>

NMTAOKENS类型与IDREFSENTITIES类似,它的值由多个名称标记构成,每个名称必须是有效的名称标记,它们之间以空格分隔。例如在DTD中声明:

<!ATTLIST files name NMTOKENS #REQUIRED>

在文档中使用:

<files name=XML讲座.doc CSharp讲座.DOC”/>

有时候,你可能会用NMTOKEN类型的属性来让用户输入特定的值,但是要注意的是:在使用NMTOKEN类型的属性时,其值是否有效,需要文档的作者自己去保证,XML处理器只能确保名称是合法的(也就是检查名称中没有空格),而不会检查值的有效性。

 

n         NOTATION

       NOTATION类型属性的值是在记号声明中的名称。

<?xml version="1.0" encoding="gb2312"?>

<!DOCTYPE webpage[

  <!ELEMENT webpage (image)>

  <!ELEMENT image (src)>

  <!ELEMENT src (#PCDATA)>

  <!NOTATION gif SYSTEM "image/gif">

  <!NOTATION jpg SYSTEM "iexplorer.exe">

  <!ATTLIST image type NOTATION (gif|jpg) #REQUIRED>

]>

<webpage>

  <image type="jpg">

       <src>http://localhost/images/photo.jpg</src>

  </image>

</webpage>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值