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&lt;9<年龄/>

&gt >

&quot “”

& &amp

第二种:

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 类别 (高职|普高)*>

<类别><高职/><普高/></类别>