2009-09-24 73 views
0

我有一項工作中的任務涉及將舊版SGM文件轉換爲XML。 SGM文件使用5個獨立的高級標籤創建,新的DTD具有大約8-12個頂級標籤,舊標籤需要映射到該標籤。這兩個DTD之間有一些共同的標籤,但是有足夠的差異,因此在兩個DTD之間手動複製和粘貼數據是沒有意義的。將舊版SGM轉換爲XML

此外,還有鏈接信息需要在舊版格式和新版格式之間進行翻譯。我目前正在傾向於以下高層次方法。

  1. 轉換股東特別大會以良好的XML
  2. 讀取XML文件中,併爲現有的文件類型到新的文件類型的映射模板。元數據的字段將用於每個文件,默認值用於大多數值。該文件將用於驅動最終轉換爲目標XML。我想在這裏有一個工具是相當不錯的數據輸入,並使用下拉列表選擇元數據,所以我正在研究創建桌面應用程序。
  3. 使用XSLT

我很好奇,如果任何人有這種類型的轉換的經驗,做這種高水平的辦法似乎可行,是否有其他方法來查看這個問題做XML的轉換。由於我自己的時間限制,我正在考慮聘請另一位開發人員爲此項目編寫代碼。我已經使用XSLT,但是沒有最近的桌面應用程序開發經驗,哪些語言提供了XSLT的良好接口,並且可以爲最終用戶提供良好的前端體驗。

欣賞人們可以提供的任何幫助和評論。很高興能提供我正在尋找的進一步說明。

+0

你的意思是SGML而不是SGM? – Mark 2009-09-24 09:08:12

+0

是的,SGML,我習慣使用文件的簡寫擴展名。 – sablewing 2009-09-25 03:22:53

+0

如果你對彼得的答案感到滿意,你應該'接受'它。 – 2009-11-18 18:45:19

回答

1

這正是我如何做到這一點。您實際上正在做三件不同的事情:從SGML轉換爲XML,從XML轉換爲不同的模式,並混合新數據。所以分三步做就是正確的做法。

+0

很高興有一些確認我不完全偏離我的方法。我的下一個挑戰是決定用於映射和驅動XML轉換的實現語言。如果我正在做這項工作,我會以某種方式在命令行中使用PHP,但我需要更強大的功能供其他人使用。必須對可用於解決這類問題的語言和技能進行更多的研究。 – sablewing 2009-09-29 02:50:41

+2

像sx這樣的工具(有時也稱爲osx或sgml2xml)可以進行轉換,但是它將文件的格式搞亂了,所以你以後不能合理地手動編輯它們。但是既然你打算在之後將它們轉換爲不同的XML模式(XSLT?),那麼這應該不重要。 – 2009-10-01 21:13:57