2012-02-16 12 views
5

Linux için xml şemasını veritabanı şemasına dönüştüren herhangi bir açık kaynak aracı var mı. Tek ihtiyacım olan şey, xml şemasını okumalı, ilgili veritabanı şemasını oluşturmalı ve bununla tablolar oluşturmalı. Google çalıştım ve tüm bulabildiğim xsd2db ve onun C# ile yazılmış, ama benim için hiçbir kullanım. Ben centos kullanıyorum ve veritabanım postgresql. Herhangi bir yardım takdir edilir. Şimdiden teşekkürler.Linux için xml şemasını veritabanı şemasına dönüştürmek için herhangi bir açık kaynak aracı var mı?

+0

Lütfen neden kullanmanın aracı olmadığını açıklayabilir misiniz? C# ile yazılmış olduğu için mi yoksa kullanım durumunuz için (eksikliği) işlevselliğinden mi kaynaklanıyor? XSD'yi XML şemanız olarak mı kullanıyorsunuz? –

+1

1. Genel durumda, ne istediğinizi bir [ORM] (http://en.wikipedia.org/wiki/Object-relational_mapping) sistemi ve muhtemelen bundan bile fazla olduğunu unutmayın. 2. Bunun için birkaç araç denedim, xsd2db bunlardan biri ve çıktı tarafından tamamen memnun kaldım. Nesne yönelimli model ilişkisel modele iyi bir şekilde eşlenmez, bu nedenle otomatik olarak yapmayı deneyen araçlar ya tamamen yanlıştır, ya da sonuç, kodun işlenmesiyle baş başa bırakılmasının bile imkansız olduğu kadar karmaşıktır. – thkala

cevap

3

Yerel destek on the way görünüyor, ancak yerel bir şey bulamıyorum. Ayrıca işi yapmak için herhangi bir iyi araç bulamıyor.

Bu yüzden, bu XSD hakkında biraz daha fazla şey öğrenmek için düzenli bir hafta sonu projesi olacaktı. Bunu işlemek için xsd2pgsql'u oluşturdum. Kenarlarda hala oldukça pürüzlüdür, bu yüzden bunu denemenizi ve sahip olduğunuz sorunları bilmenizi istiyorum. Veya yardım etmek istersen çatalla.

XML, 3 boyutlu ve DB oldukça fazla 2d olduğu için bir veritabanını temsil eden en büyük biçim değil. Bu nedenle, bu betik tarafından bazı varsayımlar yapılır; örneğin, kök öğesinin tüm öğeleri, birincil tablo ve bundan sonra herhangi bir karmaşık metindir. Bu, bu XML Şemalarının çoğunda (veya en azından test ettiğim birkaç tane) çalışmalıdır.

Tüm seçenekleri -h seçeneği ile alabilirsiniz. Ancak temel olarak, argüman olarak XSD dosya (lar) ını sağlayabilir ve davranışı biraz değiştirmek veya SQL'inizi doğrudan DB'nizde çalıştıracak seçenekleri kullanabilirsiniz. Bir üretim sistemi ise, doğrudan DB'ye bağlanmamayı ve SQL çıktısının iyi olup olmadığından emin olmayı ve herhangi bir ayarlama yapmamayı öneririm. python xsd2pgsql.py -f sample-2.xsd sample.xsd

NOT:

İşte depoda örnek dosyaları ile örnek bir kullanım var Şu anda bu herhangi ilişkileri işlemez/tablolar/XML karmaşık türleri arasındaki referanslar. Bu ve istediğiniz sonra istediğiniz dizinleri eklemeniz gerekecek. Özel ad alanları henüz desteklenmiyor.

Bu yardımcı olur umarım.

İlgili konular