`

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>

 

分享到:
评论

相关推荐

    css 知识点滴 希望对你们有帮助

    ### CSS基础知识概览 #### CSS简介 CSS,全称为Cascading Style Sheets(层叠样式表),是一种用于定义HTML或XML文档中元素样式的语言。它使得网页设计者能够独立地控制网页的内容与表现形式,提高了网站开发的效率...

    oracle知识點滴

    "Oracle知识点滴"显然是一份汇聚了关于Oracle数据库关键概念和技术的资料,适合Oracle用户进行学习和参考。以下是根据标题、描述以及文件名所推测的一些关键知识点: 1. **Oracle数据库架构**:Oracle数据库采用...

    Eclipse SWT开发点滴

    ### Eclipse SWT开发点滴 #### 一、第三方包的引用 在使用Eclipse进行SWT开发时,经常会遇到需要引入第三方库的情况。以下是引入第三方库的具体步骤: 1. **工程项目增加Libraries** - 右键点击项目 -&gt; `Build ...

    梦颜时光记录点滴心情经历网站html源码源码资源下载整理.zip

    而“心梓知识”可能是指该源码包含了关于心理健康或情绪管理的知识分享,为用户提供更全面的服务。 总的来说,这份源码资源涵盖了前端网页开发的多个方面,从基础的HTML结构到复杂的JavaScript交互,再到可能涉及的...

    NoteBook这个版本太旧了,用上面新的吧

    综合以上信息,我们可以得出NoteBook是一个具有笔记、日记、知识管理功能的软件,用户可以通过它来记录生活点滴、管理信息,并且可以自定义界面。它依赖于一些库文件如mfc42.dll和iconv.dll来实现其功能,并且使用...

    NoteBook笔记本,欢迎使用

    3. **日记**:暗示NoteBook可能有日记编写和管理的功能,适合记录个人生活或工作中的点滴。 4. **知识点管理**:说明NoteBook设计时考虑到了知识的分类、存储和检索,适合学习者或研究者使用。 5. **随笔**:可能有...

    Java学习心得知识积累

    默认监听端口为8080,可通过修改`conf/server.xml`配置文件来更改。 #### 结语 Java的学习之路既漫长又充满乐趣,从理解JDK的基本构成到掌握应用服务器的配置,每一步都是对编程技能的提升。希望以上分享能够帮助...

    我的日记本—可参考

    【标题】"我的日记本—可参考"是一个安卓应用程序项目,旨在提供一个个人日记管理平台,用户可以在这里记录、编辑、删除和查找他们的日常生活点滴。这个项目作为一个安卓入门练习,涵盖了移动应用开发的基础知识,是...

    最新2020程序员实习日记范文6篇.docx

    这篇文档包含了六篇程序员实习日记,记录了一位实习生在2020年期间学习和工作的点滴,主要涉及Java编程、开源框架、数据库管理和Web应用开发等主题。以下是这些日记中提炼出的重要知识点: 1. **Java编程框架**:...

    安卓Android源码——便签软件.zip

    在安卓(Android)平台上,开发一个便签应用是常见的任务,它可以帮助用户快速记录生活、工作中的点滴。本文将深入探讨“安卓Android源码——便签软件.zip”中包含的知识点,带你理解如何构建一个基本的便签应用。 ...

    QQ发表说说功能框的代码

    QQ发表说说功能框是QQ社交平台上的一个重要组成部分,它允许用户分享心情、想法或生活点滴,与好友进行互动。实现这一功能涉及到前端界面设计、后端数据处理以及用户交互等多个方面的技术。以下是对这个功能框背后的...

    博客系统演示

    这种系统提供了一种便捷的方式,让人们能够分享思想、观点、专业知识或者生活点滴,无需深入学习编程技术。博客引擎是博客系统的核心组成部分,它负责处理用户的交互、内容管理、模板渲染和权限控制等功能。 在...

    Android随手记

    8. **通知(Notification)**:为了提醒用户有新的记录或更新,应用可能会使用Notification API发送系统通知,让用户即使在应用后台也能得知相关信息。 9. **权限管理**:如果应用需要读写外部存储以备份或导出数据...

    WEB2.0论文

    例如,博客允许个人表达观点,分享生活点滴,而维基百科则让用户共同编写和编辑知识,实现了大规模协作的知识创作。 在技术层面,Web 2.0的实现离不开Ajax(Asynchronous JavaScript and XML)等技术的支持。Ajax...

    幸福就是现在作文(集合15篇).docx

    【部分内容】中的第一篇文章讲述了主人公在生活中感到忙碌和压力,但在生日那天得到了家人的惊喜,从而意识到幸福就存在于日常生活的点滴之中。第二篇文章通过与爷爷下棋的情景,展现了亲情的温暖和陪伴带来的幸福感...

    自己编写的Android记事本APP软件

    在Android平台上,开发一款记事本应用是一项基础且常见的任务,可以帮助用户记录日常生活中的点滴信息。这个名为"DateNote"的APP就是你自己使用Android Developer Tools(ADT)编写的成果,它展示了Android应用开发...

    Android应用源码之便签软件-IT计算机-毕业设计.zip

    本项目名为“Android应用源码之便签软件”,它是一个典型的Android应用程序,旨在实现一个便签管理功能,帮助用户记录日常生活中的点滴。通过分析这个源码,我们可以深入学习Android开发的多个关键知识点。 首先,...

    简单的个人记事本APP

    【标题】"简单的个人记事本APP"是一个基于Android Studio开发的应用程序,旨在提供一个便捷的个人记事功能,让用户可以快速记录生活中的点滴、想法或待办事项。这款应用结合了基本的文本编辑功能与照相机权限的调用...

    Jishiben.rar_android_记事本Android

    在Android平台中,开发一款记事本应用程序是一项基础且实用的任务,它能够帮助用户记录生活中的点滴、工作中的想法或是学习笔记。本教程将深入探讨如何使用Android Studio进行记事本应用的开发,以"Jishiben.rar...

Global site tag (gtag.js) - Google Analytics