XML 技术指南(3)

xml

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 
举个例子说,假如你想找到所有的lowfat hamburger price元素。为了用标准的DOM API来完成这一切,你必须通过手工地书写代码遍历整颗树来找寻符合条件的元素(在本例中,条件是指在hanburger元素中lowfat=yes的price元素)。再看另一个例子,假设你想将所用的hamburger元素和相关的数据转换为简单的HTML表格以供用户交互使用。使用标准的DOM API,你得手工遍历整棵树来获得HTML表格中所需的数据。

  我为了标准化及简化人们完成这些任务所需做的工作,W3C推荐使用XSL(Extensible Stylesheet Language)和一种叫做XSL Patterns的简单查询语言。

  XSL Patterns

  一个模式就是一个字符串,通过它来选取XML树中的节点。这样的选取取决于模式所关连的当前节点。元素的名字是最简单的模式,这个模式选取了当前节点所有具有该名字的子节点。例如,hamburger模式选取了当前节点的所有hamburger子节点。

  模式的语法非常完备。它允许你标识某个指定元素在文档中所处的上下文(例如,price元素在hamburger元素之中),同时它还提供了强大的筛选句法,使得我们可以标识出符合给定条件的节点(例如,lowfat=yes)。为了找出一个hamburgers元素中的所有lowfat hamburger price元素,你可以使用以下的模式字符串:

   /hamburgers/hamburger[@lowfat="yes"]/price  

  当某个模式被应用于给定的节点时,它仅返回符合指定模式的节点列表。这大大简化了开发者的操作,不再需要遍历整棵树。

  MSXML 2.0对模式语法的支持和Extensible Stylesheet Language (December 18th Working Draft)中2.6节的定义是相同的。MSXML 2.0中的IXMLDOMNode接口提供了两个方法,SelectNodes和SelectSingleNode。这两个方法都以一个模式串为参数。例如,下面的一行代码将返回满足条件的所有price节点。

  Set nodeList = rootNode.selectNodes("hamburger[@lowfat="yes"]/price")

  XSL

  XSL模式可以帮助我们标识一篇给定XML文档中的某些节点,但对这些节点的操作最终还是有赖于开发者来完成。XSL可以帮助我们简化完成通常XML任务的过程:将XML节点从一种格式转化到另一种格式。这种对格式转化的需求起源于Web开发者需要将他们的XML数据转化为HTML数据以供用户浏览。

  实际上,XSL所能做得远比以上描述多得多。XSL能够有效的定义从一种XML格式到另一种XML格式之间的转换,这极大的增强了互操作性。假如某个人向你的系统发送了一篇XML文档,而你的系统不认识它所采用的XML词汇,你只要进行一次简单的XSL转换就可以得到自己熟悉的词汇。正是由于XML这种简单的特点,开发者才不用为了描述某种类型的数据而采用通用的词汇。

  一个XSL文件中包含了一系列定义转换规则的声明模板。每一个模板都明确定义了怎样将源文档中的指定节点转换为输出文档中的节点(或其它类型的数据)的方法。你可以使用XSL模式来决定一个模板应用于一篇文档中的那些部分。

  作为一个示例,下面转换hamburger XML文件:

<?xml version="1.0"?>
<hamburgers>
 <hamburger lowfat="dream on">
  <name>CowBurger</name>
  <description>Greasy and good.</description>
  <price>2.99</price>
 </hamburger>
</hamburgers>

  转换到HTML文件:

<html>
<body>
 <h1>hamburgers</h1>
 <ol>
  <li>CowBurger, $2.99, Greasy and good.</li>
 </ol>
</body>
</html>

  你使用的XSL文件如下:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl=" http://www.w3.org/TR/WD-xsl ">
<xsl:template match="/">
<html>
<body>
 <h1>hamburgers</h1>
 <xsl:for-each select="hamburgers[@lowfat="dream on"]>
  <li><xsl:value-of select="name"/>, <xsl:value-of select="price"/>,
  <xsl:value-of select="description"/></li>
 </xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

  注意到了吗,我们是怎样在不同XSL元素的match和select属性中使用XSL模式来标识元素集的?在<xsl:template>标签中定义了一组节点的转换规则。XSL使用了一套标准的XML词汇来定义转换的过程,是不是很有趣呢?

链接技术

  很多人都认为,HTML真正强劲的地方在于它的锚元素。

  <A HREF = "http://www.someserver.com">some link</A>

  锚元素使开发者可以建立从一个HTML页面到另一个页面的链接,定义两个文档之间的关系。这给用户提供了一种从当前页面中获取更多相关数据的途径。同时,这也是用户在查询数据中所使用的典型方法。为了查找数据,他们浏览某一页面,同时他们在这篇该页面中可能会发现更符合他们要求的内容。而这些内容通过一个链接,存放在不同的页面上。

  整个Web就是基于这样一个在不同的数据文件之间建立关系(链接)的基石上的。随着IT行业不断的向前发展,我们自然会想到用类似的机制来描述不同XML文档或是相同文档中不同元素之间的联系。

  XLink

  XML Linking 1.0 (XLink)是W3C主导的定义XML链接的语法。根据XLink 1.0文档的要求,一个XML链接,或XLink的描述信息,显式的指定了资源或部分资源之间的关系。在XLink中,我们并不涉及标示不同类型数据位置的方法(例如URIs、XPointers和图形坐标)。

  这里是一个XML连接的简单例子:

<hamburger xml:link="simple" HREF =
  "http://fastfood.org/hamburger.asp">
</hamburger>

  XPointer

  在前面的章节中你已经读到,XLink需要依靠不同的机制来标识你想要链接的资源(例如统一资源标识符)。W3C推出了另一种叫做XPointer的机制用于构造XML文档的内部结构。具体地说,它决定了一篇XML文档中的元素、字符串或其它部分是否具有某个具体的标识。

  一个XPointer包括一系列描述位置的术语,它们中的任何一个都指定了一个特定的位置信息,通常这样的位置信息总是和前一个术语所指定的位置信息相关联。每一个位置术语都有一个关键字(例如id,child,ancestor等等)和若干变量,诸如实例的序列号、元素类型或属性。看下面的例子:

  child(2,hamburger)

  指的是第二个类型为hamburger的元素。

  其他XML相关的技术和词汇

  目前为止我们所谈到的已经代表了XML的核心技术。可能你觉得这些东西已经足够了,但如果我们不深入下去对眼下一些正流行起来的XML相关技术和词汇作一些介绍的话,这篇文章探讨XML的文章就显得不是很完整了。目前,这些新技术正在W3C的开发小组的努力下一步步走向成熟。

  MathML(Mathematical Markup Language)

  MathML是一种用来描述数学符号、纪录其结构和内容的XML应用。MathML的目标是在Web上实现能像HTML处理文本一样,处理数学问题。下面是由W3C提供的的MathML例子。数学方程:

   x2 + 4x + 4 =0

  在MathML中可以用以下的XML词汇表示:

<apply>
 <plus/>
 <apply>
  <power/>
  <ci>x</ci>
  <cn>2</cn>
 </apply>
 <apply>
  <times/>
  <cn>4</cn>
  <ci>x</ci>
 </apply>
 <cn>4</cn>
</apply>

  SMIL

  SMIL(Synchronized Multimedia Integration Language,它的发音和"smile"一样)是一种基于XML的表述多媒体演示的语言。SMIL允许将一组独立的多媒体对象整合为一个多媒体演示。作为另一种行业趋势,HTML+TIME依靠SMIL功能在你的HTML页面中加入多媒体"时间"特性。现在IE 5提供了一个HTML+TIME的实现。下面例子中的页面中包含了一个时间序列。位于时间段中的每一个P元素会等到前一个P元素消失后再出现。

时间: 2024-11-17 15:35:11

XML 技术指南(3)的相关文章

XML 技术指南(4)

xml <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  <HTML><HEAD> <STYLE> .time { behavior:url(#default#time); } </STYLE></HEAD><BODY> <DIV CLASS="time" t:timeli

XML 技术指南(1)

xml <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  概要:本文介绍了XML以及XML家族中的各项技术.我们将讨论这其中的各项核心技术是如何组合成一个完整的整体以及一些支持XML技术的东西究竟是什么. 似乎这样的事情每天都在发生:越来越多的开发者都相信XML(Extensible Markup Language)将从根本上改变我们的软件业.但如果你想从他们那里弄清楚

XML 技术指南(2)

xml <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  schema 一个schema通常是一组为了描述一类给定的XML文档而预先定好的规则.它定义了可以在指定XML文档中出现的各个元素以及和某个元素相关的若干属性.它同时定义了关于XML文档的结构化信息,比如哪几个元素是其他元素的子元素,子元素出现的顺序和他们的数量.它还可以定义一个元素是否为空,能否包含文本或者属性

XML及其技术指南

xml     概要:本文介绍了XML以及XML家族中的各项技术.我们将讨论这其中的各项核心技术是如何组合成一个完整的整体以及一些支持XML技术的东西究竟是什么. 似乎这样的事情每天都在发生:越来越多的开发者都相信XML(Extensible Markup Language)将从根本上改变我们的软件业.但如果你想从他们那里弄清楚这一切为什么或是何时将会发生时,你会发现他们给的解释中充斥着大堆有关XML的专有名词的缩写.这些东西实际上并不能让你明白些什么,我相信你一定不会满意像他们这样的解释. 通

XML技术思想

可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输.XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据. 用途: XML设计用来传送及携带数据信息,不用来表现或展示数据,HTML语言则用来表现数据,所以XML用途的焦点是它说明数据是什么,以及携带数据信

XML技术入门讲座(1)

xml   XML(eXtensible Markup Language,可扩展置标语言)是由W3C(World Wide WebConsortium,互联网联合组织)于1998年2月发布的一种标准,同HTML一样是SGML(Standard Generalized MarkupLanguage,标准通用置标语言)的一个简化子集.由于它将SGML的丰富功能与HTML的易用性结合到了Web的应用中,自推出以来,迅速得到软件开发商的支持和程序开发人员的喜爱,显示出强大的生命力.  由于XML较好地解

ASP.NET中用OWC10及XML技术实现

asp.net|xml 摘要: 应用组件编程是C#的主要方面,本文结合作者在项目开发中的实际经验,通过一个具体实例来阐述调用组件OWC10和使用XML技术来绘制各种动态统计图,折线趋势图的方法和技巧.关键词:C#,ASP.NET,.NET SDK,OWC10,组件编程,XML,B/S模式,COM,服务器端,类,属性1 前言随着WWW的发展,愈来愈多的信息系统,专家系统开发采用浏览器/服务器(B/S)模式.自微软(Microsoft)公司在2002年3月推出.net之后,由于快速,高效,方便等特性

XML技术入门讲座(2)

xml <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  XML的文档格式 首先介绍XML文档内容的基本单元--元素,它的语法格式如下: 〈标签〉文本内容〈/标签〉 元素是由起始标签.元素内容和结束标签组成.用户把要描述的数据对象放在起始标签和结束标签之间.例如: <姓名>王平</姓名> 无论文本内容有多长或者多么复杂,XML元素中还可以再嵌套别

XML技术入门

xml   应用与开发 编者按:XML(eXtensible Markup Language,可扩展置标语言)是由W3C(World Wide Web Consortium,互联网联合组织)于1998年2月发布的一种标准,同HTML一样是SGML(Standard Generalized Markup Language,标准通用置标语言)的一个简化子集.由于它将SGML的丰富功能与HTML的易用性结合到了Web的应用中,自推出以来,迅速得到软件开发商的支持和程序开发人员的喜爱,显示出强大的生命力