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 ENTITY、ENTITIES
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 NMTOKEN、NMTOKENS
1) NMTOKEN (name token),名称标记是任何命名字符的混合体。
2) NMTOKEN类型的属性值是受限制的文本,只能包含名称字符,不能包含空白字符。
3) XML名称不能以除字母、下划线之外的其他字符开头,而名称标记没有这个限制。
4) 所有的XML名称都是名称标记,但不是所有的名称标记都是XML名称。
为了限制文件名属性的取值不能有空格,我们可以采取如下的属性声明方式:
<!ATTLIST file name NMTOKEN #REQUIRED>
在文档中,可以按如下方式使用name属性:
<file name=”XML讲座.doc”>
NMTAOKENS类型与IDREFS和ENTITIES类似,它的值由多个名称标记构成,每个名称必须是有效的名称标记,它们之间以空格分隔。例如在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,全称为Cascading Style Sheets(层叠样式表),是一种用于定义HTML或XML文档中元素样式的语言。它使得网页设计者能够独立地控制网页的内容与表现形式,提高了网站开发的效率...
"Oracle知识点滴"显然是一份汇聚了关于Oracle数据库关键概念和技术的资料,适合Oracle用户进行学习和参考。以下是根据标题、描述以及文件名所推测的一些关键知识点: 1. **Oracle数据库架构**:Oracle数据库采用...
### Eclipse SWT开发点滴 #### 一、第三方包的引用 在使用Eclipse进行SWT开发时,经常会遇到需要引入第三方库的情况。以下是引入第三方库的具体步骤: 1. **工程项目增加Libraries** - 右键点击项目 -> `Build ...
而“心梓知识”可能是指该源码包含了关于心理健康或情绪管理的知识分享,为用户提供更全面的服务。 总的来说,这份源码资源涵盖了前端网页开发的多个方面,从基础的HTML结构到复杂的JavaScript交互,再到可能涉及的...
### Spring in Action 学习点滴知识点总结 #### 第二章:装配Bean 1. **`<ref>`标签中的`bean`、`local`、`parent`三个属性的区别** - `bean`属性用于指向一个具体的bean实例。 - `local`属性用于表示本地bean...
综合以上信息,我们可以得出NoteBook是一个具有笔记、日记、知识管理功能的软件,用户可以通过它来记录生活点滴、管理信息,并且可以自定义界面。它依赖于一些库文件如mfc42.dll和iconv.dll来实现其功能,并且使用...
3. **日记**:暗示NoteBook可能有日记编写和管理的功能,适合记录个人生活或工作中的点滴。 4. **知识点管理**:说明NoteBook设计时考虑到了知识的分类、存储和检索,适合学习者或研究者使用。 5. **随笔**:可能有...
默认监听端口为8080,可通过修改`conf/server.xml`配置文件来更改。 #### 结语 Java的学习之路既漫长又充满乐趣,从理解JDK的基本构成到掌握应用服务器的配置,每一步都是对编程技能的提升。希望以上分享能够帮助...
【标题】"我的日记本—可参考"是一个安卓应用程序项目,旨在提供一个个人日记管理平台,用户可以在这里记录、编辑、删除和查找他们的日常生活点滴。这个项目作为一个安卓入门练习,涵盖了移动应用开发的基础知识,是...
这篇文档包含了六篇程序员实习日记,记录了一位实习生在2020年期间学习和工作的点滴,主要涉及Java编程、开源框架、数据库管理和Web应用开发等主题。以下是这些日记中提炼出的重要知识点: 1. **Java编程框架**:...
在安卓(Android)平台上,开发一个便签应用是常见的任务,它可以帮助用户快速记录生活、工作中的点滴。本文将深入探讨“安卓Android源码——便签软件.zip”中包含的知识点,带你理解如何构建一个基本的便签应用。 ...
QQ发表说说功能框是QQ社交平台上的一个重要组成部分,它允许用户分享心情、想法或生活点滴,与好友进行互动。实现这一功能涉及到前端界面设计、后端数据处理以及用户交互等多个方面的技术。以下是对这个功能框背后的...
这种系统提供了一种便捷的方式,让人们能够分享思想、观点、专业知识或者生活点滴,无需深入学习编程技术。博客引擎是博客系统的核心组成部分,它负责处理用户的交互、内容管理、模板渲染和权限控制等功能。 在...
8. **通知(Notification)**:为了提醒用户有新的记录或更新,应用可能会使用Notification API发送系统通知,让用户即使在应用后台也能得知相关信息。 9. **权限管理**:如果应用需要读写外部存储以备份或导出数据...
【部分内容】中的第一篇文章讲述了主人公在生活中感到忙碌和压力,但在生日那天得到了家人的惊喜,从而意识到幸福就存在于日常生活的点滴之中。第二篇文章通过与爷爷下棋的情景,展现了亲情的温暖和陪伴带来的幸福感...
在Android平台上,开发一款记事本应用是一项基础且常见的任务,可以帮助用户记录日常生活中的点滴信息。这个名为"DateNote"的APP就是你自己使用Android Developer Tools(ADT)编写的成果,它展示了Android应用开发...
本项目名为“Android应用源码之便签软件”,它是一个典型的Android应用程序,旨在实现一个便签管理功能,帮助用户记录日常生活中的点滴。通过分析这个源码,我们可以深入学习Android开发的多个关键知识点。 首先,...
【标题】"简单的个人记事本APP"是一个基于Android Studio开发的应用程序,旨在提供一个便捷的个人记事功能,让用户可以快速记录生活中的点滴、想法或待办事项。这款应用结合了基本的文本编辑功能与照相机权限的调用...
在Android平台中,开发一款记事本应用程序是一项基础且实用的任务,它能够帮助用户记录生活中的点滴、工作中的想法或是学习笔记。本教程将深入探讨如何使用Android Studio进行记事本应用的开发,以"Jishiben.rar...
1. **文档格式**:文件名为".docx",这是Microsoft Word的一种文档格式,属于Office Open XML(OOXML)标准,它允许包含文本、图像、表格等多种元素,是一种常见的技术文档存储格式。 2. **信息传播技术**:文中...