从关系型数据库创建 XML 数据

有时,参考他人创建的示例是快速启动项目的有效方法。但缺点是,你可能会错过更好的、更高效的解决方案。在最近一篇关于云端XML的文章中,我们使用了DatabaseSpy来连接本地的MySQL数据库以及亚马逊的云关系型数据库服务。我们使用SQL语句中的Concat()函数,将非XML数据转换为XML格式的输出,如下所示。

我们的SELECT语句是基于MySQL文档中关于XML支持的示例而编写的。 让我们更深入地探讨一下这个声明试图解决的问题。 您可以复制DatabaseSpy中的结果表格,就像上面展示的表格一样,然后将其粘贴到XMLSpy中的编辑窗口中,但仅凭结果表格本身无法创建符合XML规范的文档。 根据以下规定,必须符合以下标准: W3C 的定义, 一个XML文档必须包含一个根元素。 所有其他元素和逻辑结构都必须嵌套在根元素内部。 您可以将根元素视为整个 XML 内容的“包裹”,就像我们在原始结果中, 元素包裹着每一行数据一样。 从关系型数据创建XML的更好方法 我们无需手动编辑结果来添加根元素,也不需要修改已经复杂的SQL查询来添加根元素。 DatabaseSpy 软件可以帮助我们轻松地从数据库表中导出格式良好的 XML 文档,这些数据库表包含普通数据,例如我们的城市表。 在数据库导出对话框中,我们可以选择 XML 结构作为输出格式,点击“城市”表以从数据库结构中选择它,然后选择 XMLSpy 作为目标。 在导出对话框底部的“预览”区域,会显示表格内容的预览视图。

当我们点击“导出”按钮时,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 套件.