Xml学习总结

什么是 XML?

可扩展标记语言(Extensible Markup Language,XML)提供了一种标记内容的方式,可以添加关于数据用途的信息。信息使用 XML 存储之后,称为解析器的应用程序就能够可靠地提取相关信息,并根据不同的需要处理。

XML的实质是一种表示数据的方式,有时候数据是为数据库准备的,有些时候则是供人阅读的,有时候是通讯的载体。

使用XML有什么好处?来看w3c组织(XML标准制定者)的说明:
1.XML可以广泛的运用于web的任何地方;
2.XML可以满足网络应用的需求;
3.使用XML将使编程更加简单;
4.XML便于学习和创建;
5.XML代码将清晰和便于阅读理解;

XML 包括验证或者确认的能力、文档结构和文档(在某种意义上的)内容。验证文档有助于防止数据与期望具有特定结构的应用程序进行交互时出现问题,当 XML 与非 XML 的遗留系统交互时这一点尤其有用。最初的 XML 1.0 推荐标准包括对文档类型定义(Document Type Definitions,DTD)的支持,DTD 提供了一些验证能力。W3C XML Schemas 扩展了这种功能,并提供了一种更加类似 XML 的语法。

多数解析器提供了至少两种 API,通常是一个对象模型 API 和一个事件 API(也称为流 API)。Java 平台同时提供了 DOM(Document Object Model)和 SAX(Simple API for XML)
这两套 API 提供了相同的服务:文档解码、可选的验证、名称空间解析等等。差别不在于服务而在于 API 使用的数据模型

DOM(Document Object Model)--文档对象模型,它是读取和操作 XML 文件的标准,DOM方法读取整个文件并将该文件存储在一个树结构中,然后再进行解析的。
SAX(Simple API for XML)--SAX 允许您在读取文档时处理它,从而不必等待整个文档被存储之后才采取操作,资源占用较少,在解析大文档时有优势,然而SAX 没有官方的标准机构,它不由W3C或其他任何官方机构维护。

XML包括XML元数据文件、Schema文件、XSLT显示文件、XLL链接、Xpath等一系列相关部分。我们主要关注它的元数据文件部分。

XML术语
元素(Elements):代表XML文档中的每一个组件,包含字符、元素或者两者皆有,允许有空元素(empty element)。
属性(Attributes):放在元素后面的数据,代表这个元素的另一种特性和特征。
统一编码(Unicode):一种字符集,包括了全世界各种语言中有用的字符。
实体:“文本片”,实体也像一个缩写,一个实体可以是一个字符也可以是一个文档的数据,是XML文本的基本单位。
标记(Markup):像标记(TAG)、实体引用(Entity reference)和声明这样的构件。

XML语法:
1.声明(Declaration)

<?xml version="1.0" encoding="GB2312" ?>

XML数据文件必须声明,否则解析器不予解析,encoding可以不用写,缺省是Unicode
2.元素(Elements)和属性(Attributes)

<元素名 属性名=”属性值”>
   <子元素>元素的数据</子元素>
</元素名>

3.注释(Comments)

<!--XXXX -->

在这个注释中间,可以放入除了“--”符号以外的所有字符

4.CDATA文件标记

<![CDATA[ 内容 ]]>

CDATA间的字符串不解析的

5.预定义实体
当我们创建XML时候,不允许“<”等和XML相重的标记
XML有5种预定义的实体,如下:

  &amp;-------------------&

  &lt;----------------------<

  &gt;--------------------- >

  &apos;------------------‘

  &quot;------------------“

DTD和Schema
最早建立对SGML(Standard Generalized Markup Language)约束的是DTD,而XML又是SGML的超集,所以DTD由于历史的原因也可以对XML本身进行约束,比如:每个节点可以含有的元素、元素的个数等等。但它也有很多的局限性,如不能定义元素值的范围、学习起来有一定的难度(要学习一种新的语法)等等。而最新的XML约束标准就可以轻松的满足要求,这就是Schema。Schema与DTD不同,DTD本身有自己的语法和要求,而Schema是完全符合XML语法的,只要对XML有初步的了解,就很容易对Schema上手。

xslt
XML是对数据和数据结构的存储,而Schema是对XML数据类型的定义,而xslt是对XML数据的显式进行处理,把XML数据以漂亮的形式显示出来。XSLT可以把XML处理成HTML形式输出、WAP形式输出,甚至也可以是Word文档的格式。

<?xml:stylesheet type="text/xsl" href="s_xlt.xslt"?>
mars - Wed, 2007-03-14 23:26