`

XML知识点滴(7)

XML 
阅读更多

XML知识点滴(7)

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

 

属性列表声明

n         在元素开始标签的名称和“>”符号之间可以插入属性列表(Attribute list)。

n         属性可以为空,不包含任何内容(如:属性名称=””),但等号和引号不能省略。

n         除了可以使用空格将属性值隔开,也可以使用换行符或制表符。

n         属性在属性列表中出现的顺序对于XML分析器而言是不重要的。在设计XML应用程序的时候,程序代码最好不要依赖于属性的出现顺序。

n         在属性列表中,不允许出现完全相同名称的属性。

n         属性用于将名字-值对与元素进行关联。属性说明只能在开始标签和空元素标签中出现。属性列表声明详细说明了与给定元素类型相关联的每一个属性的名字,数据类型和缺省值(如果有的话)。

n         属性列表声明的语法如下:

              <!ATTLIST 元素名 属性名 属性类型 缺省声明>

       元素名是属性所属的元素名字,属性是属性的命名,属性类型则用来指定该属性是属于       哪种类型,共有十种类型,缺省声明用于说明在元素中该属性是否必须出现,如果不是必须出现,那么当该属性没有出现时,XML处理器应该如何处理。

n         缺省声明可以有四种缺省设置。#REQUIRED#IMPLIED#FIXED 缺省值、只有缺省值。

n         #REQUIRED

       关键字REQUIRED说明必须为元素提供该属性。

n         #IMPLIED

       关键字IMPLIED说明元素可以包含该属性,也可以不包含该属性。

n         #FIXED 缺省值

       关键字FIXED 缺省值,说明一个固定的属性缺省值,文档的编写者不能修改该属性的 值。如果元素中不包含这个属性,XML处理器将以声明的缺省值向应用程序报告该属性。

n         只有缺省值

       FIXED 缺省值一样,如果元素不包含该属性,XML处理器将以声明的缺省值向应           用程序报告该属性。不同的是,这种声明方式属性的值是可以改变的。

 

属性类型

n         在属性列表声明时,总共有十种属性类型可以选择,分别是:CDATAEnumerateIDIDREFIDREFSENTITENTITIESNMTOKENNMTOKENSNOTATION

n         CDATA

这是最常用的一种属性类型,表明属性值为字符数据,与元素内容说明中的#PCDATA相同。如果属性值需要出现小于号(<)和双引号(),可以通过预定义实体引用或字符引用的方式插入小于号、大于号和双引号。如果包含的和号(&)不是字符或实体引用的起始定界符,也必须使用预定义实体引用或者字符引用的方式插入。

n         枚举类型

在声明属性时,可以限制属性的取值只能从一个列表中选者,这类属性属于枚举类型。枚举类型的属性有时候很有用的,例如:person元素有一个sex属性,我们希望这个属性取值只能是malefemale,在声明属性时,将这两个值放到圆括号中,并用竖线(|)分隔,如下所示:

              <!ATTLIST person sex (male|female) #REQUIRED>

列表中的可选属性值,不用加双引号()或单引号(),但是在给属性赋值时,需要带上双引号或单引号。另外要注意的是,在给属性赋值时,不仅必须使用枚举类型声明中的可选值,而且还要注意属性的大小写,MaleMALEFemaleFEMALE等都是无效的。

n         IDIDREFIDREFS

1)        一个ID类型的属性值唯一标识XML文档中的一个元素。

2)        一个ID类型的属性值必须遵守XML名称定义的规则,以字母、下划线开头,名称中可以包含字母、数字、下划线以及其他在XML标准中允许的字符,名称中不能带有空格。

3)        一个元素只能有一个ID类型的属性,ID类型的属性必须设置为#IMPLIED或者#REQUIRED,因为ID类型属性的每一个取值都是用来标识一个特定元素,为ID类型的属性提供缺省值,特别是固定的缺省值是毫无意义的。

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

<!DOCTYPE company[

     <!ELEMENT company (employee*)>

     <!ELEMENT employee (name)>

     <!ELEMENT name (#PCDATA)>

     <!ATTLIST employee sn ID #REQUIRED>

]>

<company>

     <employee sn="E-200402100001">

         <name>张三</name>

     </employee>

     <employee sn="E-200402100006">

         <name>李四</name>

     </employee>

</company>

 

n         IDREF类型的属性值为同一文档中的另一个元素的ID类型的属性值,而这另一个元素的ID类型的属性值必须是已经存在的。

n         利用IDIDREF这两种类型的属性,我们可以在两个对象之间建立一种关联关系。

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

<!DOCTYPE company[

     <!ELEMENT company (employee*)>

     <!ELEMENT employee (name)>

     <!ELEMENT name (#PCDATA)>

     <!ATTLIST employee sn ID #REQUIRED>

     <!ATTLIST employee manager IDREF #IMPLIED>

]>

<company>

     <employee sn="E-200402100001">

         <name>张三</name>

     </employee>

     <employee sn="E-200402100006" manager=" E-200402100001">

         <name>李四</name>

     </employee>

     <employee sn="E-200402100002" manager=" E-200402100001">

         <name>王五</name>

     </employee>

</company>

 

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

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

<!DOCTYPE library[

     <!ELEMENT

分享到:
评论

相关推荐

    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交互,再到可能涉及的...

    《Spring in Action》学习点滴

    ### Spring in Action 学习点滴知识点总结 #### 第二章:装配Bean 1. **`&lt;ref&gt;`标签中的`bean`、`local`、`parent`三个属性的区别** - `bean`属性用于指向一个具体的bean实例。 - `local`属性用于表示本地bean...

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

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

    NoteBook笔记本,欢迎使用

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

    Java学习心得知识积累

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

    我的日记本—可参考

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

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

    7. **XML配置**:XML作为一种数据存储和交换格式,用于存储配置信息,具有良好的结构化特性,便于程序读取和操作。 8. **动态链接库和事件委托**:实习生将排序算法封装到动态链接库中,利用函数调用和事件委托进行...

    QQ发表说说功能框的代码

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

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

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

    myBase-Desktop-Ver735-Setup.zip

    7. **导入导出**:兼容多种格式,如TXT、HTML、XML等,便于与其他应用之间交换数据。 myBase的使用技巧和进阶功能还包括: - **关联链接**:在不同笔记之间建立链接,形成知识网络,方便跨笔记查找相关信息。 - **...

    博客系统演示

    7. **SEO优化**:为了提高博客的搜索引擎可见性,博客引擎通常包含搜索引擎优化(SEO)特性,如自定义元标签、URL结构优化和XML站点地图。 8. **插件与扩展**:许多博客系统支持安装插件或扩展来增加额外的功能,如...

    Android随手记

    7. **SharedPreferences**:为了实现轻量级的设置存储,开发者可能会使用SharedPreferences,这是一个简单的键值对存储系统,适合存储应用的偏好设置。 8. **通知(Notification)**:为了提醒用户有新的记录或更新...

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

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

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

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

    简单的个人记事本APP

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

    Jishiben.rar_android_记事本Android

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

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

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

Global site tag (gtag.js) - Google Analytics