XML知识点滴(3)
(引用文章,版权归作者,如需删除请联系我)
XML声明
XML声明部分
|
含义
|
<?xml
|
XML声明的起始标记。
|
Version=”1.0”
|
版本声明。
|
Encoding=”gb2312”
|
编码声明。如果忽略编码声明,XML处理器将尝试使用UTF-8、UTF-16等Unicode编码规则解析文档。
|
standalone=”yes”
|
无依赖性声明。表示XML文档的内容不以来外部信息(如DTD)。此声明部分可以忽略,使用此声明,必须写在XML声明的最后。
|
?>
|
XML声明的结束标记。
|
n XML声明在文档中只能出现一次,且必须位于文档的第一行,前面不能有任何字符。
n 文件采用的编码方式要和XML的编码声明保持一致。
n XML文档总是以一个XML声明开始,其中指明所用XML版本、文档的编码、文档的独立性信息。其格式如下:
<?xml 版本信息 [编码信息] [文档独立性信息]?>
中括号([])中的的部分表示是可选信息。
n 版本声明<?xml version=”1.0”?>
n 文档编码声明
在XML声明中加上文档编码信息,默认是UTF-8,如果要使用中文,我们可以在声明 中加上encoding=”gb2312”,如下所示:
<?xml version=”1.0” encoding=”gb2312”?>
n 独立文档声明
如果我们的文档不依赖于外部文档,在XML声明中,我们可以通过standalone=”yes”来声明这个文档是独立的文档。如果文档以来于外部文档,可以通过standalone=”no” 来声明。完整的XML声明如下所示:
<?xml version=”1.0” encoding=”gb2312” standalone=”yes”?>
文档类型声明
n DTD(Document Type Definition)文档类型定义。
n XML从SGML继承了用于定义语法规则的DTD机制,但DTD本身并不要求遵循XML规则,几乎所有的XML应用都是使用DTD来定义的。HTML就有一个标准的DTD文件,所有其组织结构和所有的标签都是固定的。DTD文件也是一个文本文件,通常用”.dtd”作为其扩展名。
n 通过文档类型声明,指出XML文档所用的DTD。文档类型声明有两种形式,一种是声明DTD在一个外部的文件中,如下:
<!DOCTYPE greeting SYSTEM “hello.dtd”>
一种是直接在XML文档中给出DTD,如下:
<?xml version=”1.0” encoding=”gb2312” standalone=”yes”?>
<!DOCTYPE greeting[<!ELEMENT greeting(#PCDATA)>]>
元素
n 元素(Element)是每个XML文档中不可或缺的部分。每个XML文档至少要有一个元素。
n 在XML中,元素由开始标签(Start tag)、元素内容和结束标签(End tag)构成,对于空元素,由空元素标签构成。
n 在元素开始标签和结束标签之间的文本内容是元素的值。
n 如果一个元素的值为空字符串,也就是开始标签和结束标签之间没有内容,这种元素称为空元素(Empty element)。
n 结束标签和开始标签的大小写必须一致,因为XML是严格区分大小写的。
n 在元素标签左尖括号“<”后面必须紧跟元素名称,不能留有空白。结束标签名称前也不能留有空白。
n 每一个元素有一个用名字标识的类型,同时它可以有一个属性说明集,每一个属性说明有一个名字和一个值。
n 在给元素命名的时候要注意,以“xml”或其他任何匹配((‘X’|‘x’)(‘M‘|‘m’)(‘L’|‘l’))的字符串开头的名字,被保留用于XML规范的当前版本或后续版本的标准化。此外,在给元素命名时,还要遵循下列规范:
1) 名称只能以字符或下划线(_)开头。
2) 名称中可以包含字母、数字、下划线以及其他在XML标准中允许的字符。
3) 名称中不能包含空格。
4) 名称中尽可能不要使用冒号(:),因为冒号在名称空间中被用于分隔名称前缀和本地部分。
n “元素”和“标签”这两个词具有不同的含义。元素是指开始标签、结束标签以及两者之间的一切内容,包括属性、文本、注释、以及子元素。标签是一对尖括号(<>)和两者之间的内容,包括元素名和所有属性。例如:<font color=”blue”>是一个标签,</font>也是一个标签;而<font color=”blue”>Hello World</font>则是一个元素。
元素的四种形式
n 空元素
<student/>
n 带有属性的空元素
<student name=”张三” age=”18”/>
n 带有内容的元素
<student>
这是一个学生的信息
<name>张三</name>
<age>18</age>
</student>
n 带有内容和属性的元素
<student name=”张三”>
<age>18</age>
</student>
元素的内容构成
n 元素的内容可以包含子元素、字符数据、字符引用和实体引用、CDATA段。
n 当一个元素仅包含子元素,而没有文本内容时,称其有元素内容(Element content),如元素既包含子元素,又包含文本内容,则称其具有混合内容(Mixed content)。
根元素
n 不被其他元素包含的元素就是文档的根元素(Root element)。或称文档元素(Document element)。
n 一个文档必须有且只有一个根元素。
子元素
n 子元素本身也是元素,被嵌套在上层元素之内。子元素是相对于父元素而言的,如果子元素还嵌套了其他元素,那么它同时也是父元素。
<students>
<student>
<name>张三</name>
<age>18</age>
</student>
</students>
字符数据
n 在一个元素的内容中,字符数据可以是不包括任何标记的起始定界符和CDATA段的结束定界符的任意字符串,也就是说在元素内容中,字符数据不能有和号(&)和小于号(<),也不能有字符串“]]>”。
n 在CDATA段中,字符数据可以是不包括CDATA段的结束定界符的任意字符串。
n 判断下列元素内容是否合法
<data>&</data> 错
<data>/</data> 对
<data>/></data> 对
<data><</data> 错
<data>]]></data> 错
分享到:
相关推荐
### CSS基础知识概览 #### CSS简介 CSS,全称为Cascading Style Sheets(层叠样式表),是一种用于定义HTML或XML文档中元素样式的语言。它使得网页设计者能够独立地控制网页的内容与表现形式,提高了网站开发的效率...
### Eclipse SWT开发点滴 #### 一、第三方包的引用 在使用Eclipse进行SWT开发时,经常会遇到需要引入第三方库的情况。以下是引入第三方库的具体步骤: 1. **工程项目增加Libraries** - 右键点击项目 -> `Build ...
"Oracle知识点滴"显然是一份汇聚了关于Oracle数据库关键概念和技术的资料,适合Oracle用户进行学习和参考。以下是根据标题、描述以及文件名所推测的一些关键知识点: 1. **Oracle数据库架构**:Oracle数据库采用...
而“心梓知识”可能是指该源码包含了关于心理健康或情绪管理的知识分享,为用户提供更全面的服务。 总的来说,这份源码资源涵盖了前端网页开发的多个方面,从基础的HTML结构到复杂的JavaScript交互,再到可能涉及的...
### Spring in Action 学习点滴知识点总结 #### 第二章:装配Bean 1. **`<ref>`标签中的`bean`、`local`、`parent`三个属性的区别** - `bean`属性用于指向一个具体的bean实例。 - `local`属性用于表示本地bean...
3. **日记**:暗示NoteBook可能有日记编写和管理的功能,适合记录个人生活或工作中的点滴。 4. **知识点管理**:说明NoteBook设计时考虑到了知识的分类、存储和检索,适合学习者或研究者使用。 5. **随笔**:可能有...
综合以上信息,我们可以得出NoteBook是一个具有笔记、日记、知识管理功能的软件,用户可以通过它来记录生活点滴、管理信息,并且可以自定义界面。它依赖于一些库文件如mfc42.dll和iconv.dll来实现其功能,并且使用...
默认监听端口为8080,可通过修改`conf/server.xml`配置文件来更改。 #### 结语 Java的学习之路既漫长又充满乐趣,从理解JDK的基本构成到掌握应用服务器的配置,每一步都是对编程技能的提升。希望以上分享能够帮助...
【标题】"我的日记本—可参考"是一个安卓应用程序项目,旨在提供一个个人日记管理平台,用户可以在这里记录、编辑、删除和查找他们的日常生活点滴。这个项目作为一个安卓入门练习,涵盖了移动应用开发的基础知识,是...
在安卓(Android)平台上,开发一个便签应用是常见的任务,它可以帮助用户快速记录生活、工作中的点滴。本文将深入探讨“安卓Android源码——便签软件.zip”中包含的知识点,带你理解如何构建一个基本的便签应用。 ...
QQ发表说说功能框是QQ社交平台上的一个重要组成部分,它允许用户分享心情、想法或生活点滴,与好友进行互动。实现这一功能涉及到前端界面设计、后端数据处理以及用户交互等多个方面的技术。以下是对这个功能框背后的...
这篇文档包含了六篇程序员实习日记,记录了一位实习生在2020年期间学习和工作的点滴,主要涉及Java编程、开源框架、数据库管理和Web应用开发等主题。以下是这些日记中提炼出的重要知识点: 1. **Java编程框架**:...
【部分内容】中的第一篇文章讲述了主人公在生活中感到忙碌和压力,但在生日那天得到了家人的惊喜,从而意识到幸福就存在于日常生活的点滴之中。第二篇文章通过与爷爷下棋的情景,展现了亲情的温暖和陪伴带来的幸福感...
这种系统提供了一种便捷的方式,让人们能够分享思想、观点、专业知识或者生活点滴,无需深入学习编程技术。博客引擎是博客系统的核心组成部分,它负责处理用户的交互、内容管理、模板渲染和权限控制等功能。 在...
3. **活动(Activity)管理**:在Android中,活动是用户界面的入口点,每个屏幕对应一个活动。在这个应用中,可能有一个主活动负责显示记录列表,另一个活动用于新建或编辑记录。 4. **数据存储**:考虑到随手记...
3. **模板系统**:预设或自定义模板,方便快速录入常见类型的笔记。 4. **搜索功能**:强大的全文搜索功能,即使在海量信息中也能快速定位所需内容。 5. **同步与备份**:支持本地和云同步,确保数据安全,方便多...
在Android平台上,开发一款记事本应用是一项基础且常见的任务,可以帮助用户记录日常生活中的点滴信息。这个名为"DateNote"的APP就是你自己使用Android Developer Tools(ADT)编写的成果,它展示了Android应用开发...
【标题】"简单的个人记事本APP"是一个基于Android Studio开发的应用程序,旨在提供一个便捷的个人记事功能,让用户可以快速记录生活中的点滴、想法或待办事项。这款应用结合了基本的文本编辑功能与照相机权限的调用...
在Android平台中,开发一款记事本应用程序是一项基础且实用的任务,它能够帮助用户记录生活中的点滴、工作中的想法或是学习笔记。本教程将深入探讨如何使用Android Studio进行记事本应用的开发,以"Jishiben.rar...
本项目名为“Android应用源码之便签软件”,它是一个典型的Android应用程序,旨在实现一个便签管理功能,帮助用户记录日常生活中的点滴。通过分析这个源码,我们可以深入学习Android开发的多个关键知识点。 首先,...