首页 > WEB开发 > 后台开发 > XML技术入门
2014
08-08

XML技术入门

1、概述

1)XML:可扩展标记语言(eXtensible Markup Language),XML技术由W3C组织发布,目前遵循的是2000年发布的XML1.0规范。它被设计的宗旨是描述数据,而非显示数据。

2)XML中的数据必须通过软件程序来解析执行或显示,如IE,这样的解析程序称之为解析器(Parser)

 2、XML语法(重点)

一个XML文档一般由如下几部分组成:文档声明、元素、元素属性、注释、CDATA区等。

1)文档声明:

<?xml version=”1.0″ encoding=”UTF-8″?>

注意:

①XML文档声明必须绝对出现在第一行。

②encoding属性声明文档所使用的字符编码,默认为UTF-8。一定要注意的是:保存在磁盘上的文件编码要与声明的编码一致。乱码就是存、取文件时用的码表不一致导致的(☆)。

2)元素:XML元素就是指XML文件中出现的标签。

①一个XML元素(标签)有如下两种书写形式:

单标签:<myTag /> 双标签:<myTag>content</myTag>

②一个XML文档必须有且只有一个根元素(根标签)

③由于在XML中,空格和换行都作为原始内容被处理,所以在项目上线运行时XML应采用下图第一段所示,开发时采用第二段的形式:

03. XML编程560

3)元素的属性:属性值一定要用引号(单引号或双引号)引起来。

4)注释:<!–这是XML注释–> 注释不能嵌套。

5)CDATA区(character data),它的作用是将标签当做普通文本内容,如:

<![CDATA[<blog>www.flyne.org</blog>]]>

其中的红色文本将会被当做普通文本而不是标签。

 3、XML约束技术

1)为什么需要约束?

XML都是用户自定义的标签,若出现小小的错误,软件程序将不能正确地获取文件中的内容而报错(这点毋庸置疑)。

XML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为约束。约束文档定义了在XML中允许出现的元素名称、属性及元素出现的顺序等等。

2)两个概念:

格式良好的XML:遵循XML语法的XML文档。

有效的XML:遵循约束文档的XML。

3)常用约束技术:DTD技术(简单、面临淘汰)和Schema技术。

4、DTD约束技术(看懂DTD即可)

1)DTD:文档类型定义(Document Type Definition),用来约束XMl的书写规范

2)先从一个简单的DTD案例来个感性认识:

03. XML编程1062

3)在XML中引用DTD的两种方式(<!DOCTYPE >声明):

方式一:在XML文档中直接定义DTD约束。如下:

03. XML编程1123

方式二(重点 + 推荐):在XML中引入外部DTD文档(.dtd),外部DTD文档必须以UTF-8编码保存,根据外部DTD文档在本地还是在网络上又有下面两种写法:

① 引用本地DTD文档:<!DOCTYPE 根元素 SYSTEM “DTD文档路径”>,如:

<!DOCTYPE 书架 SYSTEM “book.dtd”>

② 引用网络上的DTD文档:<!DOCTYPE 根元素 PUBLIC “DTD名称” “URL”>

4)DTD语法(确保看懂DTD文档 ☆):DTD文档主要涉及以下内容的定义:

①定义元素:<!ELEMENT 元素名称 使用规则>

03. XML编程1402

关于(子元素)的定义有如下规则:

03. XML编程1421

②定义元素属性,语法如下:

<!ATTLIST 元素名

属性名1 属性值类型 设置说明

属性名2 属性值类型 设置说明

>

 03. XML编程1493

5)编程校验XML文档的有效性:

原理:IE5以上浏览器内置了XML解析工具:Microsoft.XMLDOM,开发人员可以编写JS代码,利用这个解析工具装载XML文件,并对XML文件进行DTD验证(约束校验)。

步骤:

① 创建XML文档解析器对象

var xmldoc = new ActiveXObject(“Microsoft.XMLDOM”);

②开启XML校验

xmldoc.validateOnParse=true;

③装载XML文档:xmldoc.load(“book.xml”);

④获取错误信息:

xmldoc.parseError.reason(错误原因)

xmldoc.parseError.line(错误所在行)

 5、Schema约束技术

学习重点:根据约束文档写出XML文件。

XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性。XML Schema现在是W3C的标准,正逐步取代DTD。

1)一些特点

①XML Schema 文件自身就是一个XML文件,但它的扩展名通常为.xsd。

②一个XML Schema文档通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档

③和XML文件一样,一个XML Schema文档也必须有一个根结点,但这个根结点的名称为schema。

2)先从一个简单的Schema案例来个感性认识:

03. XML编程2118

根据此Schema文件写出的XML文件如下:

03. XML编程2143

3)名称空间(☆):

在XMLSchema中,每个约束模式文档都可以被绑定到一个唯一的名称空间,名称空间用一个唯一的URI表示。

在XML文件中书写标签时,可以通过名称空间(xmlns)来声明当前编写的标签来自哪个Schema约束文档。

4)在XML中引入Schema文件(使用名称空间)

通常在XML文档中的根结点中使用schemaLocation属性来声明一个文档所遵循的Schema文件的具体位置,此属性有两个值,第一个值是需要使用的名称空间,第二个值是Schema文件的位置,两者之间用空格分隔。如上面例子中的:xsi:schemaLocation=“http://www.flyne.org book.xsd”

5)在XML中引入Schema文件(不使用名称空间)

如:<书架 xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

xsi:noNamespaceSchemaLocation=”xmlbook.xsd”>

6)在XML中引入多个Schema文件(使用名称空间)

03. XML编程2617

7)在XML Schema文档中声明名称空间(见上例中book.xsd所示)

targetNamespace属性用于指定schema文档中声明的元素属于哪个名称空间。

elementFormDefault元素用于指定,该schema文档中声明的根元素及其所有子元素都属于targetNamespace所指定的名称空间。


留下一个回复

你的email不会被公开。