以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XML 与 数据库 』 (http://bbs.xml.org.cn/list.asp?boardid=17) ---- 非 XML 数据的 XML 化 (http://bbs.xml.org.cn/dispbbs.asp?boardid=17&rootid=&id=13623) |
-- 作者:anchen0617 -- 发布时间:1/15/2005 10:14:00 AM -- 非 XML 数据的 XML 化 随着 XML 在 IT 业界的份量越来越重,出现了很多有助于处理 XML 数据的强大工具和技术。这些非常有用的 XML 技术(比如 XSLT)甚至能用于处理非 XML 数据。但一般而言,这类工具不能直接用于非 XML 数据。本文介绍的方法是首先 XML 化 非 XML 数据(即把非 XML 数据转化成 XML 格式),然后利用 XML 技术作进一步的处理。 本文介绍的方法来自作者开发转换工具 Prop2XLF 的实践经验,这个例子贯穿于全文之中。本文首先将介绍 Prop2XLF 的一些背景,然后详细说明工具设计的 XML 化解决方案。最后将这一方案推广为一般化的模式。 问题 Prop2XLF 的开发背景 Prop2XLF 直接的解决方法 图 1. 直接转换 XML 化解决方案 图 2. 利用 XSLT 转化 清单 1. Prop2XLF 中的 XML 化伪代码 //Used by Prop2XLF //Convert Java properties to its XML counterpart //parse each line of the source if (nextLine is a key/value pair){ addKeyValue(stringKey,stringValue); //insert the key/value node into the target DOM tree.
XML 化的主要任务是解析源文件,根据源文件定义构造 DOM 树。在 Prop2XML 中。初始 DOM 树从预先定义的 XML 框架构造开始逐个节点地构造初始树,而不是从头开始。这是一种技巧,如果需要,您还可以在预定义的框架中定义元信息。 图 3 显示了 Prop2XLF 处理的一些示例数据,其中包括输入源文件、中间结果和最后的输出。XML 对等物是通过 XML 化过程生成的。实际的转换需求通过特定的 XSL 由 XSLT 实现。这一部分很好地从体系结构中分离出来。XLIFF 代码由 XSLT 生成。 图 3. Prop2XLF 的示例数据:源文件、中间结果和目标文件 将 XML 的强大功能用于非 XML 数据的模式 图 4. 对非 XML 数据利用强大 XML 功能的模式 上下文 在 Prop2XLF 这个例子中,将 Java 属性文件转化为 XLIFF 的逻辑和其他的 XSLT 应用非常类似。因此,将 Java 属性文件预处理成等价的 XML 文件是合理的,因为后续的 XSLT 处理大大减轻了开发的工作量。此外,XML 化还将 Prop2XLF 转变成纯粹 的 XSLT 体系结构(也就是说不掺杂其他转换方法),从而降低了技术上的复杂性。事实上,Prop2XLF 还把翻译后的 XLIFF 转化成 Java 属性文件。这种转换也是使用 XSLT 实现的,如图 5 所示。 图 5. 完整的 Prop2XLF XML 化过程 XML 越简单,XML 化过程本身的工作量越少。 结束语 |
-- 作者:xmzhy -- 发布时间:3/17/2005 4:36:00 PM -- 不错 |
-- 作者:cpayu -- 发布时间:4/29/2005 5:52:00 PM -- good |
-- 作者:d_hao20@ustc.edu -- 发布时间:5/11/2005 12:04:00 PM -- 好文章 |
-- 作者:宇南 -- 发布时间:5/15/2005 11:41:00 AM -- 确实是好贴~~ |
-- 作者:宇南 -- 发布时间:5/28/2005 5:37:00 PM -- 只想要源代码 |
-- 作者:switer520 -- 发布时间:5/29/2005 1:52:00 AM -- 我也想要源代码看看,最好能发给我啊!老大!我的邮箱是switer520@yahoo.com.cn 还要问一下,你的软件运行都需要哪些平台啊? |
-- 作者:邪之正義 -- 发布时间:5/30/2005 8:50:00 AM -- tongshang |
-- 作者:wawehi -- 发布时间:5/30/2005 11:04:00 AM -- 原代码。。。。。。。 |
-- 作者:feelwto -- 发布时间:6/9/2005 10:02:00 PM -- 原代码啊?????? |
-- 作者:NewBieInXML -- 发布时间:7/8/2005 10:32:00 AM -- 为什么我这里显示不了图1和图2 ?有什么办法啊? |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
109.375ms |