-of selectquotmajorquot/gt ltxsl:apply-templates /gtlt/h3gt lt/xsl:templategt ltxsl:template matchquotmemberquotgt 成员ltxsl:number countquotmemberquot/gt: lth2gtltxsl:value-of selectquotmemberquot/gt ltxsl:apply-templates /gtlt/h2gt lt/xsl:templategtlt/xsl:stylesheetgt XSLT 功能强大,它不但可以充分利用 XML 资源,而且还能对它进行加工和改造,但是它也有不足之处, 它使用复杂,而且因为要重新检索 XML 结构树,所以占用内存较多。
而 CSS 正好在控制输出的样式,例如色彩、字体、大小等方面有非常简洁的特点,消耗系统资源少,所以常常将 XSLT 和 CSS 结合起来使用,在服务端用 XSLT 处理文档,在客户端用 CSS 来控制显示。
1.2 用 CSS 在浏览器中显示 XML 整个的处理过程如图 1.3-1 所示。
服务器端将数据转换成 XML XML 文档 数据库 XHTML 文档 XSLT 文档 应用 CSS 浏览器显示 图 1.3-1XML 转换的过程 CSS 可以外联,也可以内嵌,它使用自己独有的语法规则,完美支持 XML 文档在浏览器中的显示,包括布局、文本、字体、色彩等多方面的定义。
实例:为 XML 实例文档添加 CSS 一个简单的 XML 文档如下:ltxml versionquot1.0quot encodingquotUTF-8quotgtltxml-stylesheet typequottext/cssquot hrefquottime.cssquotgtlt-- a time instant --gtlttime timezonequotPSTquotgtlthourgt11lt/hourgtltminutegt59lt/minutegtltsecondgt59lt/secondgtltmeridiemgtp.m.lt/meridiemgtltatomic signalquottruequot/gtlt/timegt 注意到,XML 文档的处理命令中引用了一个 CSS,该 CSS 如下:time font-size:40pt text-align: center time:before content: quotThe time is now: quothour font-family: sans-serif color: bluehour:after content: quot:quot color: blackminute font-family: sans-serif color: redminute:after content: quot:quot color: blacksecond font-family: sans-serif color: purplesecond:after content: quot quot color: blackmeridiem font-variant: small-caps该样式表为 XML 添加了一段文本,并且设置了时间颜色,设置显示效果如图 1.2-1 所示。
图 1.2-1 包含 CSS 的 XML 在 IE 和 Firefox 中的显示 我们可以看到,IE 对 CSS 的支持没有 Firefox 那么好,CSS 中添加的文本内容显示不了。
1.3 XML 文件在网络环境下的传输 Web 服务的通信中大量使用 XML 报文,在 HTTP 协议上运行的 Web 服务和万维网上运行的 HTML 网页服务很相似,都具有“请求信息—gt处理请求——gt应答信息”过程,如图 1.3-1 所示。
Web 服务请求 向服务器请求 harli 的个人资料 收到请求,处理信 息,调用数据库: SELECT FROM table Data 客户端 主服务器 Web 服务应答 ltCustomerHarligt ltCustomer id”7980”gt 数据库 图 1.3-1 XML 传输流程 XML 在客户端发出请求中充当远程调用报文的载体,在应答中充当返回信息的载体。
客户端发出的请求可以为 XML 形式,也可以基于 HTTP 协议,仅有 GET 或 POST 方法在 HTTP报文中发送请求。
应答方解析 XML 请求报文,执行相应的处理方法,然后返回 XML 应答报文。
客户端收到 XML 应答报文后,将应答报文解析为相应的信息,作一定的处理。
实例:加载 Web 服务器上的 XML 文档并在浏览器中显示 DOMDocument 类的 Load方法可以使用 HTTP 等协议加载 Web 服务器上的 XML 文档。
首先我们创建一个客户端网页代码(完整代码见附录 1.1.1) ,该代码调用 DOMDocument类的 Load方法获取服务器的实例文档:function LoadInfo WriteLog quot向服务器发出请求。
quot // 向服务器发送请求 g_xmlDoc.load quotInfo.aspxquot WriteLog quot已向服务器发出请求。
quot 另外,我们是用的异步加载方式,使程序使用后台线程加载文档,避免在文档加载期间客户端浏览器停止响应,Init函数完成对 DOMDocument 对象的初始化操作,然后使用 windows.setTimeout方法启动定时器,1 秒后执行 LoadInfo函数,加载完后,将触发 DOMDocument 的 onreadystatechange事件处理函数,通过该函数将文档的内容显示到浏览器网页中。
然后,再次调用 windows.setTimeout定时器,10 秒后再次执行 LoadInfo函数。
在服务器端,负责提供 XML 文档,是用 ASP.NET 写的,调用 XmlWriter.Create函数生成一个简单的 XML 实例文档(代码见附录)。
在浏览器上的调试效果如图 1.3-2。
图 1.3-2 异步加载 XML 文档并显示1.4 更多浏览器支持的 XMLHttpRequest 对象 MSXML 的 DOMDocument 对象仅支持 IE 浏览器,并且使用的是 HTTP 协议的 GET 方法(传递 URL) ,只能向服务器传送有限的数据,为了获得更多浏览器的支持,则应使用XMLHttpRequest。
一个完整的 XMLHttpRequest 实例如下:var xmlhttpnew XMLHttpRequestxmlhttp.openquotPOSTquotquothttp://localhost:1234/service.asmx/GetBillsquotfalsexmlhttp:sendquotcustomerID8120quotalertxmlhttp.responseXML.xml 该例子为向脚本所在计算机 1234 端口上 的 “/service.asmx/GetBills” Web 服务器路径发送 XML HTTP 请求,并获取其应答内容。
2.XML 数据整合,并与数据库交互2.1XML 数据资源整合模型 XML XML 的资源整合涉及异构数据交换、 信息整合以及 XML 数据显示样式等多方面内容。
实现异构数据交换是信息共享基础, 关键问题是如何实现异构系统与 XML 数据的双向转换接口以及 XML 信息的发布和请求相应。
图 2.1-1 描述了利用 XML 对资源进行整合的过程。
图 2.1-1 XML 资源整合模型2.2 XML 与数据库数据的相互转换 Microsoft SQL Server 2005 数据库功能强大,而且很好的支持 XML 数据。
在 SQLServer 2005 中, 不但可以把数据库数据转换为 XML 文档, 而且也可以将良好格式的 XML文档转换成表型数据,而且还支持原生的 XML 数据格式。
首 先 我 们 来 将 XML 文 档 转 换 为 数 据 库 数 据 。
这 需 要 用 到 系 统 存 储 过 程sp_xml_preparedocument 的 OPENXML 函 数 , 其 中 , 系 统 存 储 过 程sp_xml_preparedocument 用来创建一个能被插入数据库的 XML 文档的内部表示, 该存储过 程 返 回 一 个 可 以 访 问 XML 文 档 内 部 表 示 的 句 柄 , 另 一 方 面 , 系 统 存 储 过 程sp_xml_removedocument 可以用来删除 XML 文档的内部表示。
实例:将 XML 数据插入到关系表中 插入之前的表如图 2.2-1 所示。
图 2.2-1 已有的关系表 插入的 XML 数据为:ltROOTgtltteamInfo idquot4quot namequotLilyquot sexquotfemalequot agequot19quotgtlt/teamInfogtlt/ROOTgt 如同上面的分析,用系统存储过程 sp_xml_preparedocument 完成 XML 数据到关系表的转换,在 SQL Server 查询分析器中编写如下代码,运行结果如图 2.2-2 所示。
图 2.2-2 实现将 XML 数据转换到 SQL 关系表中的过程 插入后的关系表如图 2.2-3 所示。
图 2.2-3 插入新数据后的关系表 接下来,我们反过来,将关系数据库中的数据转换为 XML 文档。
在 SQL Server2005中实现该过程有多种模式。
RAW 模式,将查询结果集中的每一行映射到一个 XML 元素,并将行中的每一列映射到一个属性,该方法如下:SELECT FROM teamInfo FOR XML RAW 执行命令后,得到 XML 文档如下:ltrow idquot1quot namequot邹天涌 quot sexquotmale quot agequot23quot /gtltrow idquot2quot namequot陈福 quot sexquotma
上一篇:
FAT12文件系统基本格式
下一篇:
经济可持续发展论文:将可持续发展内生化的新经济发展方式