从关系型数据库创建 XML 数据
有时,参考他人创建的示例是快速启动项目的有效方法。但缺点是,你可能会错过更好的、更高效的解决方案。在最近一篇关于云端XML的文章中,我们使用了DatabaseSpy来连接本地的MySQL数据库以及亚马逊的云关系型数据库服务。我们使用SQL语句中的Concat()函数,将非XML数据转换为XML格式的输出,如下所示。
![]()
我们的SELECT语句是基于MySQL文档中关于XML支持的示例而编写的。 让我们更深入地探讨一下这个声明试图解决的问题。 您可以复制DatabaseSpy中的结果表格,就像上面展示的表格一样,然后将其粘贴到XMLSpy中的编辑窗口中,但仅凭结果表格本身无法创建符合XML规范的文档。 根据以下规定,必须符合以下标准: W3C 的定义, 一个XML文档必须包含一个根元素。 所有其他元素和逻辑结构都必须嵌套在根元素内部。 您可以将根元素视为整个 XML 内容的“包裹”,就像我们在原始结果中,
![]()
当我们点击“导出”按钮时,DatabaseSpy 会将关系型数据格式化为 XML 格式,其中 XML 元素的名称来源于表格的列名,并将生成的输出直接发送到 XMLSpy。下图显示了 XMLSpy 中该文件的一部分。位于底部的“消息”窗口验证了该文件格式正确。
![]()
请注意,DatabaseSpy 提供了根元素 Concat() 函数的 SQL 语句。我们开始这篇文章是为了解决一个简单的需求,即为我们之前描述的 Concat() 函数的输出添加一个根元素。然而,在实际项目中,将关系数据库转换为 XML 的需求通常会更加复杂。
Altova XMLSpy 该软件可以直接连接到所有主流数据库,从而能够使用 XML 技术和关系型数据。XMLSpy 允许您轻松地从数据库结构创建 XML 模式,或者从 XML 模式创建数据库模式。此外,XMLSpy 还包含用于 XQuery 和 XPath 的高级编辑器和调试器,用于直接存储在数据库中的 XML 数据,并提供针对 Microsoft SQL Server、IBM DB2 和 Oracle 数据库中 XML 功能的专业支持。 随着越来越多的行业采用基于 XML 的信息交换标准,一个常见的需求是将存储在传统数据库中的数据转换为 XML 格式。Altova MapForce 它可以连接到数据库,并允许您将关系型数据映射和转换,使其与一个或多个 XML 模式兼容。
您可以利用您的映射关系进行一次性数据转换。您也可以保存您的映射关系,稍后重新打开以进行另一次转换。或者,您可以指示 MapForce 根据您的映射关系生成免版税的源代码,并将这些源代码包含在您的项目中,以便在需要进行重复转换时使用。
如果您想亲眼见证 Altova 工具如何从关系型数据库生成格式良好的 XML 数据, 下载免费试用版 的 Altova MissionKit 套件.