将遗留SGM转换为XML

将遗留SGM转换为XML,xml,xslt,sgml,Xml,Xslt,Sgml,我有一项工作涉及将遗留SGM文件转换为XML。SGM文件是使用5个独立的高级标记创建的,新DTD有8-12个顶级标记,旧的需要映射到这些顶级标记。两个DTD之间有一些常见的标记,但是它们之间的差异太大了,所以在两个DTD之间手动复制和粘贴数据是没有意义的 此外,还需要将传统格式之间的链接信息转换为较新的格式。我目前倾向于以下高级别方法 将SGM转换为格式良好的XML 读入XML文件,并为现有文件类型创建映射模板,将其映射到新文件类型。元数据字段将用于每个文件,默认值用于大多数值。此文件将用于驱动

我有一项工作涉及将遗留SGM文件转换为XML。SGM文件是使用5个独立的高级标记创建的,新DTD有8-12个顶级标记,旧的需要映射到这些顶级标记。两个DTD之间有一些常见的标记,但是它们之间的差异太大了,所以在两个DTD之间手动复制和粘贴数据是没有意义的

此外,还需要将传统格式之间的链接信息转换为较新的格式。我目前倾向于以下高级别方法

  • 将SGM转换为格式良好的XML
  • 读入XML文件,并为现有文件类型创建映射模板,将其映射到新文件类型。元数据字段将用于每个文件,默认值用于大多数值。此文件将用于驱动到目标XML的最终转换。我想有一个工具在这里是相当防弹的数据输入和使用下拉列表的元数据选择,所以我在看一个桌面应用程序的创建
  • 使用XSLT对XML进行转换
  • 我很好奇,是否有其他人有过这种转换的经验,这种高层次的方法是否可行,是否有其他方法来看待这个问题。由于我自己的时间限制,我正在考虑聘请另一名开发人员来为这个项目编写代码。我曾经使用过XSLT,但最近没有桌面应用程序开发的经验,也没有什么语言可以为XSLT提供良好的接口,并且可以为最终用户提供良好的前端体验


    感谢人们提供的任何帮助和意见。将很高兴提供进一步的澄清,我在寻找什么

    我就是这么做的。在这里,您实际上要做三件不同的事情:从SGML转换为XML,从XML转换为不同的模式,以及混合新数据。因此,分三个步骤进行操作是正确的方法。

    你是说SGML而不是SGM吗?是的,SGML,我习惯于使用文件的简写扩展名。如果你对Peter的回答感到满意,你应该“接受”它。最好能确认我的方法没有完全偏离基准。我的下一个挑战是决定使用何种实现语言进行映射并驱动XML转换。如果我在做这项工作,我会在命令行中使用PHP,但我需要一些更健壮的东西供其他人使用。我们必须对解决这类问题的可用语言和技能集进行更多的研究。sx(有时称为osx或sgml2xml)等工具可以进行转换,但它会弄乱文件的格式,因此您无法在事后合理地手动编辑它们。但是,既然您计划在以后将它们转换为不同的XML模式(XSLT?),那么这就不重要了。