XML 总结

一、概述

  • XML是一种通用的数据交换格式
  • 许多系统配置文件(记录应用程序的配置信息)
  • JSP文档逐步向XML语法格式过渡
  • 与HTML
  • ** 与数据库**
  • XML文档的组成单元
    XML声明(declaration)
    DOCTYPE声明语句
    处理指令(processing instruction)
    元素(element)
    注释(comment)
    CDATA区

二、基本语法

2.1 文档声明

必须的,第一行

前后'?xml'与'<'间不能有空格,目前只有版本1.0,但必须写
   

encoding属性说明文档的字符编码,如果没有则默认UTF-8(UTF-16),GB2312是国标的,实际保存和此处要统一,不然会报错


standalone属性说明文档是否独立

2.2 元素定义

使用'<>'和''定义,一个元素可以嵌套多个元素,第一个元素为根元素,只能有一个,
空元素如,标签之间不允许交叉

规范,区分大小写,不能以数字下划线开头,不能含有xml组合字符,不能包含‘:’
建议,不要用点、下划线,尽量简短,大小写统一,使用中文需谨慎

2.3 属性定义

属性值必须用双引号或单引号,可以改写成子元素描述,遵循元素相同的命名规范

2.4 注释

和HTML完全一样
xml声明之前不能有注释
注释符号不能相互包含
注释同样要注意编码

2.5 空格和换行处理

标签以外的所有空格和换行,都要交给下游程序处理

2.6 CDATA区

”结束


2.7 特殊字符

特殊字符 替代符号
& &
< <
> >
" "
' '

2.8 处理指令

简称PI,用来为处理XML文档的应用程序提供指示信息
处理指令以“"结尾,XMl声明语句就是常见的处理指令
XML分析器会把处理指令原封不动的传给应用程序,由应用程序来解释这个指令

例如:book.xml



             
                  
                         Java教程
                         李华
                         99元
                  
            

book.css

    bookname{display:block; color:red}
    author{display:block; font-style:italic}
    price{display:block; color:olive}

三、XML约束模式

3.1 格式良好的XML

解析器Parser

3.2 XML的约束模式

虽然解析不会出错,但不符合真实的逻辑,所以要有约束模式
定义文档中允许出现的元素名、属性、内容以及嵌套关系和出现顺序

定义Xml文档的词汇表,尊徐的结构
xml文档看做数据库中的表,则约束模式相当于表结构的定义

3.3 XML的约束语言

定义另一种语言的语言为元语言,单独的文件,模式文档,xml文档实例文档
约束模式语言,XML DTD、XML Schema、XDR、SOX等,前两种最广泛

3.4 有效的XML

遵守XML基本的语法规则,而且符合指定的约束模式,称为Valid XML
解析器程序检查是否符合约束模式称为校验,因此非校验类解析器和校验类解析器,IE是非校验类解析器

3.5 DTD

Document Type Definition,早期的约束模式语言

  • DTD初步认识

包含元素,元素之间关系,属性、实体以及符号的定义
book.dtd,可以使用正则表达式,使用UTF-8,unicod编码

                   
   
   
   
   
PCDATA代表普通的字符串,(书名,作者,售价)按这个顺序, (书+)出现多次
  • 在xml文档中引入外部的DTD
    DOCTYPE文档类型定义语句,紧跟xml文档声明语句后面,两种格式
自定义:SYSTEM组织内部,或自定义

公共的:PUBLIC权威机构公开的文件


例如:


“-”表示未被改进的非ISO标准的DTD,“+”表示被改进的非ISO标准的DTD

例如book.xml:



<书架>
.....

standalone即使为no,只要DOCTYPE声明,也会去校验
  • xml文档中直接嵌入DTD


四、相关定义

4.1 元素定义

  • 语法格式:
  • 举例:

  • 使用规则:
    (#PCDATA) 是parsed character data简写,表示可以是普通字符串
    (书名,作者,售价)
    (书名,#PCDATA)
    EMPTY 内容为空,如

    ANY 元素内容任何形式

PS:
a、DTD注释和XML文档一样
b、每条元素定义语句顺序随意
c、具有不同用途的元素不能使用相同的元素名
d、一个元素的各个组成成分之间可以有各种关系
三个子元素顺序任意
三个有序的子元素
三个中的任意一个
e、在元素的使用规则中可以定义子元素出现的次数
(书+)一次或者多次,(书?)一次或者不出现,(书)不出现或者一次多次,(书)只能一次
f、一对圆括号可用于将括在其中的内容组合成一个可统一操作的分组,分组中可以嵌套更小的分组
, AUTHOR?,EMAIL)*|COMMENT)>

4.2 属性定义

  • 语法格式
    属性名1 属性类型 设置说明
    属性名2 属性类型 设置说明
    ...
  • 举例
    类别 CDATA #REQUIRED
    颜色 CDATA #IMPLIED
  • 设置说明
    REQUIRED 必须设置
    IMPLIED 可有可无
    FIXED 设为固定值,如:CDATA #FIXED “页面作者”
    直接使用默认值 如:CDATA “上网”
  • 属性类型
    CDATA 普通文本字符串,特殊字符用转义字符串
    ENUMERATED 枚举类型
    ID用于标示唯一的,相当于KEY
    IDREFIDERFSNMTOKENNMTOKENSNOTATIONENTITYENTITYS

4.3 实体定义

  • 作用 为一段文本内容创建一个别名,,在XML中多次引用这个别名,解析器会自动把别名转为对应的文本
  • 定义 DTD中用定义,两种类型:引用实体和参数实体

引用实体:DTD中定义,xml中引用


引用方式:&实体名称;

参数实体:DTD中定义,DTD中引用

引用方式:&实体名称;

五、XML Schema

5.1 XML Schema与DTD的比较

和DTD一样,定义xml文档结构,比DTD更有发展前途。

  1. 自身符合xml语法结构
  2. DOM 、SAX等XML API更容易解析
  3. 采用和xml文档同样的合法性验证机制
  4. 对名称空间更好的支持
    5.比DTD支持更多的数据类型,并支持用户自定义数据类型
  5. 定义约束的能力更强大
  6. 基本上满足了关系模式在数据描述上的需要
    缺点:不能像DTD定义实体,很多细节比DTD更复杂

5.2 通过一个例子初步认识XML Schema

5.3 名称空间的概念

5.4 名称空间的声明

5.5 默认名称空间

5.6 属性的名称空间问题

5.7 引入XML Schema文档

你可能感兴趣的:(XML 总结)