XML 基础知识 - from developerWorks 的 XML 专栏中的 新手入门文章
DTD
ATTLIST
指定了一个attribute。
<!ATTLIST city state CDATA (AZ|CA|NV) "CA"> 表示city中含有一个叫做state的attribute,可以取的值的集合是(AZ|CA|NV),默认为CA
XML Schema
优势
使用 XML 语法,可以象处理任何其它文档一样处理模式。
支持数据类型。XML 模式支持 DTD 中的所有原始数据类型,还支持整数、浮点数、日期、时间、字符串、URL 和其它对数据处理和验证有用的数据类型。
是可扩展的。可以创建自己的数据类型,并且可以基于其它数据类型派生出新的数据类型。
有更强的表达能力。例如,您可以用 XML 模式定义某属性值不得超过 2 个字符,或定义某元素的值必须与某正则表达式相匹配。无法用 DTD 做这些事。
xsd:element \ complexType \ sequence \ string \ restriction \ pattern - 正则表达式
编程接口
文档对象模型(DOM) 解析器读入整个文档,然后构建一个驻留内存的树结构。(要求有极大的内存。创建表示原始文档中每个东西的对象,如果您只需关注原始文档的一小部分,那么创建那些永远不被使用的对象是极其浪费的。DOM 解析器必须在您的代码取得控制权之前读取整个文档)
SAX(用于XML的简单API)
ATTLIST
指定了一个attribute。
<!ATTLIST city state CDATA (AZ|CA|NV) "CA"> 表示city中含有一个叫做state的attribute,可以取的值的集合是(AZ|CA|NV),默认为CA
XML Schema
优势
使用 XML 语法,可以象处理任何其它文档一样处理模式。
支持数据类型。XML 模式支持 DTD 中的所有原始数据类型,还支持整数、浮点数、日期、时间、字符串、URL 和其它对数据处理和验证有用的数据类型。
是可扩展的。可以创建自己的数据类型,并且可以基于其它数据类型派生出新的数据类型。
有更强的表达能力。例如,您可以用 XML 模式定义某属性值不得超过 2 个字符,或定义某元素的值必须与某正则表达式相匹配。无法用 DTD 做这些事。
xsd:element \ complexType \ sequence \ string \ restriction \ pattern - 正则表达式
编程接口
文档对象模型(DOM) 解析器读入整个文档,然后构建一个驻留内存的树结构。(要求有极大的内存。创建表示原始文档中每个东西的对象,如果您只需关注原始文档的一小部分,那么创建那些永远不被使用的对象是极其浪费的。DOM 解析器必须在您的代码取得控制权之前读取整个文档)
SAX(用于XML的简单API)
- SAX 解析器向您的代码发送事件。当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,它会告诉您。如果您没有显式地保存来自某个事件的数据,它就被丢弃。
- SAX 解析器根本不创建任何对象,它只是将事件传递给您的应用程序。
- SAX 解析器在解析开始的时候就开始发送事件。您不必一直等到整个文档被解析完毕。更妙的是,如果您只查找文档中某些内容,代码一旦找到所要找的东西就可以抛出一个异常。该异常会停止 SAX 解析器,然后代码用它找到的数据做它需要做的任何事。
- SAX 事件是无状态的。当 SAX 解析器在 XML 文档中发现文本时,它就向您的代码发送一个事件。该事件仅仅给您发现的文本;它不告诉您什么元素包含那个文本。如果您想知道这一点,则必须自己编写状态管理代码。
- SAX 事件不是持久的。
XML 标准
XML Schema
XSL(Extensible Stylesheet Language)定义了一组元素(称为格式化对象),它们描述应该如何格式化数据。
XSLT(Extensible Stylesheet Language for Transformation)是一个描述如何将 XML 文档转换成别的东西的 XML 词汇表。
XPath(XML Path Language)是描述 XML 文档中位置的语法。您使用 XSLT 样式表中的 XPath 来描述您希望转换 XML 文档的哪个部分。
DOM、SAX、JDOM、JAXP
XLink(XML Linking Language)定义将不同资源链接在一起的各种方法。您可以进行正常的点对点链接(就象用 HTML <a> 元素)或扩展的链接,后者可包括多点链接、通过第三方的链接以及定义转向给定链接的意义的规则。
XPointer(XML Pointer Language)使用 XPath 作为引用其它资源的方法。它还包括对 XPath 的一些扩展。
XML 数字签名(XML Digital Signature)、XML 加密(XML Encryption)
Web 服务(SOAP、WSDL、UDDI)
浙公网安备 33010602011771号