XML文档的基本结构
1、 XML 的简介
XML是Extendible Markup Language的缩写,是可扩展的标记语言,Xml技术是w3c组织发布的,目前推荐遵循的是W3C组织于2000发布的XML1.0规范。
2、 XML出现的原因
在描述省县市的时候,不能很好的表示出来,而现实生活中经常出现这种现象。
在XML语言中,它允许用户自定义标签。一个标签用于描述一段数据;一个标签可分为开始标签和结束标签,在开始标签和结束标签之间,又可以使用其它标签描述其它数据,以此来实现数据关系的描述。
例如:
标签:
<学生>
<学号>11</学号>
<姓名>王小五</姓名>
</学生>
3、 HTML和XML的不同
HTML是用于显示的,这是它存在的不足
XML是用于数据的传输网络传输数据,存储数据的
4、学习XML的根本
最根本的目标在于能描述出关系图
一个标签用于描述一段数据
可用于配置文件的描述---struts-config.xml hibernate.cfg.xml
可简化数据的交换
比如:linux平台-----》window平台的数据的交换,可用XML语句,具有跨平台性,和java是天生的一对
5、XML常见应用
XML技术除用于保存有关系的数据之外,它还经常用作软件配置文件,以描述程序模块之间的关系。
在一个软件系统中,为提高系统的灵活性,它所启动的模块通常由其配置文件决定
配置文件------软件的启动:例子
键一个config.xml的文档
<config>
<A>
<A1></A1>
<A2></A2>
</A>
<B>
<B1></B1>
<B2></B2>
</B>
</config>
6、XML的文档规则:
XML文档的分类
• 格式不良好(malformed)的xml文档:完全没有遵守xml文的基本规范的xml文档。
• 格式良好(well-formed)的但无效的xml文档: 遵守xml文的基本规范,但没有使用dtd或schema定义语义约束的xml文档。
• 有效(valid)的xml文档:遵守xml文的基本规范,并使用dtd或schema定义语义约束,而且也完全遵守了dtd或schema定义语义约束的xml文档。
注意的事项:
(1)双标签
必须有一个根节点
标签必须有合理的闭标签,标签要成对的出现
(2)单标签也要合理的结束<BR/>,不要求
(3)标签区分大小写
(4)必须合理的嵌套,否则语法会检测除出来
(5)在写的时候必须用双引号括起来
7、XML语法:
一个XML文件分为如下几部分内容:
文档的声明部分,必须要第一行:<?xml version="1.0"?>
元素:<起始标记>数据</终止标记> <A2>dlsjll</A2>
属性:<A type=””></A>----属性必须用双引号括起来
注释:
处理指令
具体步骤的详解:
XML语句------文档声明
最简单的声明语法xml
(1)<?xml version="1.0"?>
xml是一个处理指令
version是一种规范
在?和“之间没有空格
(2)<?xml version="1.0" encoding=”utf-8”?>
Encoding是编码方式
编码出现的错误:
encoding=”utf-8”是向IE指定的编码方式,是在解析器解析的候使用的编码
在保存文件的时候必须也要指定字符集,并且和IE的编码方式一样才可以,是编码的过程,放到磁盘文件中
(3)<?xml version="1.0" encoding=”utf-8” standalone=”yes”?>
Standalone是否是独立的文档
注:声明必须是XML文档中的第一行的内容.。即<之前不能有任何空格和空行
元素1-----标签----
非空的元素一定是成对的标记
<起始标记>
sdgsdddg
<></>
</结束标记>
空元素:起始标记和接受标记是紧挨着的,空行和空格都没有,一般学成单标记的形式
<起始标记></结束标记>---通常写成,并且带有属性----<标记 type=“sdfg“/>
元素2
对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理。
由于在XML中,空格和换行都作为原始内容被处理,所以,在编写XML文件时,使用换行和缩进等方式来让原文件中的内容清晰可读的“良好”书写习惯可能要被迫改变。
元素3----命名规范
一个XML元素可以包含字母、数字以及其它一些可见字符,但必须遵守下面的一些规范:
l 区分大小写,例如,<P>和<p>是两个不同的标记。
l 不能以数字或"_" (下划线)开头。
l 不能以xml(或XML、或Xml 等)开头。
l 不能包含空格。
l 名称中间不能包含冒号(:)。
属性
(1) 一个标签可以有多个属性,每个属性都有它自己的名称和取值
例如:
<input name=“text”>
(2) 属性值一定要用双引号(")或单引号(')引起来
(3) 定义属性必须遵循与标签相同的命名规范
(4) 多学一招:在XML技术中,标签属性所代表的信息,也可以被改成用子元素的形式来描述,例如:
<input>
<name>text</name>
</input>
在什么情况下设为属性、设为字标记
<文档 最后修改日期=“2001/02/02“> 与整个文档有关的
</文档>
注释:
注释的格式:<!--注释的内容-->
注意:
XML声明之前不能有注释
注释不能嵌套
注释之间不能是-----,可以有标签
标签体里不能出现大于号小于号,例如:
<年龄>3<9<年龄/> 是错的
第一种:可改成 <年龄>3<9<年龄/>
> >
" “”
& &
第二种:
CDATA区,可把里面的内容全部输出
<原样显示>
<![CDATA[输出原样显示的内容]]>
</原样显示>
处理指令-----PI
处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。
例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示xml文档内容。 <?xml-stylesheet type="text/css" href="1.css"?>
处理指令必须以“<?”作为开头,以“?>”作为结尾,XML声明语句就是最常见的一种处理指令。
XML的约束
常用的约束技术
XML DTD
DTD(Document Type Definition) 文档类型定义
Book.dtd扩展名
#PCDATA表示字符类型
外部的DTD
<!DOCTYPE 书架 SYSTEM “book.dtd”> 引入
内部的DTD
<!DOCTYPE 根标记【】>
<!DOCTYPE 学生列表[
<!ELEMENT 学生列表(学生)*
]>
引用DTD约束
<!DOCTYPE 根标记名 PBLIC “-//拥有者//主要内容”> 引入
DTD的语法细节:元素定义
外连接:
<!ELEMENT 学生列表(学生)*> *代表控制出现的次数
<!ELEMENT 学生 (学号,姓名,性别,班级*)> *表示班级出现的次数,为0次或多次
<!ELEMENT 学生 (学号,姓名,性别,班级+)> +表示至少出现一次
<!ELEMENT 学生 (学号,姓名,性别,班级?)> ?表示0次或者是1次
<!ELEMENT 学生 (学号,姓名,性别)> 学生标签里只能包含这三个标签,并且顺序必须相同
<!ELEMENT 学号 (#PCDATA)*> #PCDATA表示是字符数据
<!ELEMENT 姓名 ANY> 没有限制姓名子标签中的类型,是任意的类型
<!ELEMENT 类别 (高职|普高)> 互斥的取值
<类别><高职/></类别> <高职/>时,必须这么写
<!ELEMENT 类别 (高职|普高)*>
<类别><高职/><普高/></类别>