我正在编写一个软件包,其工作是将我公司主要产品中的 DB 数据导出为任意 XML 格式(用于与其他应用程序交互)。接下来可能将任意 XML 数据文件解析到我们的数据库中。我正在使用 C/C++ 编写,产品的数据库以专有格式存储为 Pervasive BTRV 文件。
我需要编写一种可以将我们的内部数据元素映射到 XML 的映射格式,这样如果我的导出包有一个映射文件,它将根据数据库的内容创建所需的 XML 输出文件。您会建议我使用哪些策略或工具来完成此任务?
我考虑过的一些选项:
- 为产品设计一个通用的 XML 导出模式,然后编写 XSLT 文件以将此格式转换为任意 XML 文件。
- 编写一个定义输出文件结构的 XSD Schema 文件,并设计一组处理指令,告诉我的包哪些数据项进入哪些元素。
我认为自己是使用 XML 的新手。我熟悉 XSLT 和 XPath,并开始学习 Schema,但可能有明显的工具可以解决我缺少的这个问题。
(更新,太平洋夏令时间 8:14p:我正在编写的包旨在连接到我们的通用外部接口模块,用于导出将由其他应用程序使用的数据。在标准使用下,当数据库的一个子集发生更改或是“最终确定的”,该子集将以其他应用程序可以理解的格式自动导出。我正在尝试扩展外部接口模块,使其能够以 XML 格式输出这些“最终确定”的数据项。
我的工作是定义一种方法来指定其他系统期望的 XML 格式。由于目标模式在应用程序之间可能会有很大差异,因此我需要一个能够处理一系列可能的 XML 模式的解决方案;我还需要一个易于为每个接口配置/维护的解决方案。
将调用我的代码的代码将数据库项视为一系列嵌套容器,并提供用于格式化每个嵌套层的挂钩。这些钩子看起来与 <xsl:template> 上的match属性非常相似,这让我认为 XSLT 是一种可能的解决方案。)