2009-01-27 17 views
5

yarı otomatik XSLT üretimi için bir araç arıyorum.XML örneklerinden XSLT nasıl oluşturulur

Verilen 2 XML dosyaları, kaynak:

<elm>XXX</elm> 

ve hedef:

<exx>XXX</exx> 

aracı kaynağından hedefine üreten XSLT dosyası, yapmalıdır. İçeriğe bakarak, seviye, yerleşim, öğe adları vb. Değişiklikleri tanımlamalıdır. Bu ürününe genel bir çözüm bulunmuyor, ancak yalnızca basit dönüştürmelere ihtiyacım var.

Muhtemel uygulama: manuel müdahale gereklidir çatışma olması halinde

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" 

. Bir çakışma, kaynakta bulunan yerden daha fazla "XXX" olabilir. Takım XSD/DTD'nin de farkında olsaydı, örneğin manuel "alan" eşleştirmeleri yapmak çok güzel olurdu.

Düzenleme: açıklama.

+0

Başa çıkmayı beklediğiniz farklılıkların kapsamını ve verilerin bir dosyadan diğerine çıkarılmasını mümkün kılmak için ne kadar benzersiz olduğunu açıklığa kavuşturmanız gerekir - bence bu, bazı sınırlara kadar yapılabilir. –

cevap

9

Basit dönüşüm kurallarının bile otomatik olarak üretilebileceğinden şüpheleniyorum. Örneğin

XML

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

ve oldukça yaygın bir kombinasyon olmalıdır hedef

<person>Paul</person> 

alır. Hedefi <person><father> veya <child> etiketlerinden hangisinin oluşturulduğunu (dönüşümü isteyen birinden yardım almadan) manuel olarak karar veremedim, bu yüzden bir uygulamanın burada bir şeyleri akla getireceğinden şüpheliyim.

Güncelleme: sürükle & açılan XSLT nesil çeşit sizin için Tamam olur, orada bazı ticari ürünler mevcuttur, ancak bunlar bir hedef dosyadan XSLT üretemezler. (Artık resmen mevcut değil)

+0

Soru açıklaması: çakışma durumunda manuel müdahaleler gereklidir. –

+0

XSLT'yi kendim yazarak, önerdiğiniz gibi Stylos Studio'yu kullanarak bitirdim. Stylus Studio bir XSLT eşleştiricisine sahiptir, ancak benim durumumda yalnızca eşleme öğesi öğesi olduğundan ve öznitelikleri seçmem gerektiğinden işe yaramazdı. Ama hata ayıklama dahil olmak üzere güzel bir arayüze sahiptir. Ama bu şeyi gerçekten kullanmak için XSLT ve XPath'ı hala anlamanız gerekiyor. –

+1

Tiger XSLT Eşleştiricisi bağlantısı, bu yorumu yazarken şu anda öldü Şubat 2016 – Blackvault

4

Eğer Altova MapForce kontrol ettiniz: Ama sürükle & damla elle tamamen yazmaya daha az iyi bir çözüm olmalıdır? Bu ücretsiz değil, ama aradığınızı ele aldığına inanıyorum. http://www.altova.com/mapforce.html

+0

Stylus Studio XSLT eşleştiricisine benziyor, ancak benim durumumda, yalnızca eşleme öğesinin öğesiydi ve seçmem gerekiyordu özellikleri de. Gibi: ile eşleştirmek için . MapForce'i denemedim, belki de yanılıyorum. Grafik alan haritalayıcıları, +30 alanlara uygulandığında da oldukça kafa karıştırıcı. Sanırım kolay bir çözüm yok. –

+0

MapForce çok güçlü ve özelliklerin etiketlerle eşleştirilebildiğine eminim. Yazılımın bir XSLT oluşturmasına izin vermek için sadece bir kez denedim. Bu çok güçlü (ve pahalı) bir araçtır, ancak ihtiyaçlarınızı karşılayacağından% 99 eminim. Hatta EDI dönüşüm XSLT'ye XML üretebilir. – Skaue

2

Büyük boyutlu XML için XSLT oluşturmak için Altova Map kuvvetini kullandım ve iyi çalışıyor. Mantıksal, dize işlevi, matematik fonksiyonları ve kullanıcı tanımlı işlevler vb. Gibi neredeyse tüm mantıkları yapabilirsiniz. Ancak, XML'iniz web gibi çok büyük bir örümcek bazen çok karıştırarak dağınık ama bu sadece beklenir. Ve sanırım altova'da bakım biraz zor olabilir.