什么是XML
xml是可扩展的标记语言,类似html。他的宗旨是传输数据而非显示数据。
xml标签没有被预定义,需要用户自己定义标签。
xml是一种通用的数据交换格式
xml常见应用
用于数据传输,使用xml格式进行数据传输,具有可读性和维护性
xml技术除了应用在保存数据关系外,还经常适用于软件配置文件。
xml可以提高软件的灵活性
xml语法
- 文档声明
- 元素
- 属性
- 注释
- CDATA区 特殊字符
- 处理指令
在编写xml文档时,需要先使用文档声明来xml文档。并且在第一行。
<?xml versio="1.0"?>
声明编码:encoding=“uft-8”
是否依赖其他文档 standalone = “yes”
xml元素是指在xml中出现的标签。开始及结束标签。
xml标签中出现的所有空格和换行都会在解析过程中当作标签内容处理。
一个xml元素可以包含字母,数字以及其他的一些可见字符,但必须遵循以下规则:
- 区分大小写
- 不能以数字或下划线开头
- 不能以xml开头
- 不能包含空格
- 名称中间不能包含冒号
一个元素可以有多个属性,每个属性都有自己的取值和名称。
属性值一定要有双引号或单引号引起来
属性名称规范和元素命名规范相同
元素的属性值是不允许重复的
xml注释语法:
xml声明之前不能有注释
注释不能嵌套
CDATA区
CDATA是character data的缩写
作用:把标签当作普通文本内容
<![CDATA[
**<cast>www.91xiaoletao.com</cast>**
]]>
*号部分是普通文本内容
处理指令
处理指令,简称PI
作用:用于指挥软件如何解析xml文档
语法:
xml语法规则总结
- 所有xml元素必须有关闭标签
- xml区分大小写
- xml必须正确嵌套顺序
- 属性值必须加引号
- 特殊字符必须转义CDATA
- xml空格回车解析时会被保留
xml约束DTD
xml中都是用户自定义的标签,如果出现错误,程序将不能运行。所以,可以编写一个文档来约束xml书写规范。
两个概念:
1.格式良好的xml,遵循xml语法的xml
2.有效的xml,遵循约束文档的xml
总之,约束文档定义了在xml中允许出现的元素名称,属性,和出现顺序等。
xml约束概述
什么是xml约束:在xml技术里,可以编写一个文档来约束xml文档书写规范,称为xml约束
常用的xml约束:xml DTD / XML Schema
DTD约束
DTD称为文档类型定义,DTD约束可以作为一个单独的文件编写,也可以在xml文件内编写
- 使用内部DTD
- 使用外部DTD
- 使用公钥DTD
当引用文件在本地时:
<!DOCTYPE 根元素 SYSTEM "DTD文档路径">
当引用文件在公共网络时,采用如下方式
<!DOCTYPE web-app PUBLIC "HTTP://java.sun.com/dtd/web-app_2_3.dtd">
DTD约束语法细节
元素定义
属性定义
实体定义
DTD定义元素
在DTD文档中声明一个xml元素
语法:<!ELEMENT 元素名称 使用规则>
定义子元素描述他们之间的关系
如果用,分开,则必须按照声明的顺序书写
<!ELEMENT FILE (TITLE,AUTHOR,EMAIL)
如果是“|”分开,则任选其一。
<!ELEMENT FILE (TITLE|AUTHOR|EMAIL)
用+,*,?表示出现的次数
+:至少出现一次
*:可有可无
?:一次或0次
属性ATTLIST定义
<!ATTLIST 元素名称
属性名 属性类型 约束
属性名 属性类型 约束
>
eg:
<ATTLIST 商品
类别 CDATA #REQUIRED 必选的
颜色 CDATA #IMPLIED 可选的
>
对应的xml是:<商品 类别 = “服装” 颜色 = “黄色>
属性值类型:
CDATA:表示属性的取值为普通的文本字符串
属性约束说明:
#REQUIRED:表示该属性是必选的
#IMPLIED 表示该属性是可选的
#FIXED:表示该属性是去一个固定值 #FIXED “固定值”
直接值:表示属性的取值为默认值
<!ATTLIST 页面作者
姓名:CDATA #IMPLIED
年龄:CDATA #IMPLIED
联系信息:CDTA #REQUIRED
网站职务:CDATA #FIXED "页面作者"
个人爱好:CDATA "上网"
>
实体定义
实体用于为一段内容创建一个别名,以后在xml文档中就可以使用别名引用这段内容了。
在DTD定义中,一条
DTD中定义
<!ENTITY COP "111111">
XML中引用
&cop;