2009-01-27 67 views
5

我正在尋找一個用於半自動 XSLT生成的工具。如何從XML樣本生成XSLT

鑑於2 XML文件,源:

<elm>XXX</elm> 

和目標:

<exx>XXX</exx> 

該工具應使XSLT文件,從源頭產生的目標。看看內容,它應該確定級別,位置,元素名稱等的變化。 這個沒有通用的解決方案,但我只需要簡單的轉換。

可能的實現:

1. scan the source, map XML data "XXX" to element path "elm" 
2. scan the target, map XML data "XXX" to element path "exx" 
3. output target XML structure, output XSLT mapping of "XXX", "elm" -> "exx" 

在需要人工干預的情況下的衝突。衝突可能是「XXX」,而不是來源地。

如果該工具還可以感知XSD/DTD,例如執行手動「字段」映射,那將會很不錯。

編輯:澄清。

+0

您需要澄清您期望它應對的差異的程度以及數據的獨特性,以便能夠推斷從一個文件到另一個文件的映射 - 我認爲這是可行的,達到了一些限制。 – 2009-01-27 11:40:41

回答

9

我懷疑即使是簡單的轉換規則也可以自動生成。

例如採取XML

<family> 
    <father>Paul</father> 
    <mother>Maria</mother> 
    <child>Paul</child> 
</family> 

和目標

<person>Paul</person> 

這應該是一個相當普遍的組合。我甚至無法手動決定(沒有需要轉換的人的幫助),從哪個標籤創建目標<person>,從<father>或<child>,因此我懷疑應用程序會在這裏產生一些理智的東西。

更新: 如果某種拖放&落XSLT代會是你合適,還有一些商業產品可用,但他們不能從一個目標文件產生XSLT。但拖&降應至少比完全手工寫它一個更好的解決方案:

+0

問題澄清:如有衝突,需要手動干預。 – 2009-01-27 12:30:42

+0

正如你所建議的,我最終自己寫了XSLT,使用Stylos Studio,謝謝。 Stylus Studio有一個XSLT映射器,但在我的情況下,它是無用的,因爲它僅僅是元素映射的元素,我還需要選擇屬性。但它有一個很好的界面,包括調試。 但是你仍然需要了解XSLT和XPath才能真正使用這個東西。 – 2009-05-14 06:11:25

2

我已經使用Altova Map強制生成大尺寸XML的XSLT,並且效果很好。你可以做幾乎所有的邏輯,如邏輯,字符串函數,數學函數和用戶定義的功能等等,但問題是,當你的XML非常龐大時,蜘蛛就像網絡一樣,有時會讓你感到困惑和混亂,但這只是預期。我想維修可能在阿爾託瓦方面有點艱難。