2010-04-13 17 views
5

Ho uno schema XSD complesso e centinaia di file XML conformi allo schema.Come creare un database da uno schema XSD e importare dati XML

Come automatizzare la creazione di tabelle SQL Server correlate per archiviare i dati XML?

Ho considerato la creazione di classi C# dallo schema XSD utilizzando lo strumento XSD.exe e lasciare qualcosa di simile figura Subsonic come fare un database lucido fuori di esso, ma non è sicuro se è il modo migliore per affrontare esso.

Qualcuno è riuscito a importare elegantemente i file XSD in SQL Server?

Una domanda simile con buone risposte: How can I create database tables from XSD files?

risposta

9

vi suggerisco di utilizzare SQL Server Integration Services, che viene fornito con SQL Server 2008 o 2005 (o Data Transformation Services se il vostro bloccato con 2000).

Sfortunatamente non viene fornito con la versione "Express" gratuita di SQL Server, tuttavia si può avere SQL Developer Developer per < $ 100 con funzionalità SQL Server Standard completa e adatta alle proprie esigenze.

SSIS è un grande tema e non ho intenzione di andare oltre tutte le campane e fischietti qui, ma fondamentalmente si:

  • Creare un nuovo progetto SSIS utilizzo delle offerte (Business Intelligence Development Studio, una versione modificata Visual Studio fornito con SSIS)
  • Trascinare una nuova attività Flusso di dati sulla superficie del flusso di controllo, quindi fare clic sulla scheda del flusso di dati.
  • Trascinare una "sorgente XML" dalla casella degli strumenti nel pannello del flusso di dati, quindi configurare le posizioni dei file XSD e XML.
  • Trascinare una destinazione dati ADO.NET dalla casella degli strumenti sul flusso di dati e collegare uno degli output dall'origine XML all'ingresso della destinazione ADO.NET. Se si desidera creare una nuova tabella in base all'output dei dati dallo schema xml anziché utilizzare un clic esistente su "Nuovo" quando si specificano le impostazioni di Connection Manager nella destinazione ADO.NET e si genera ed esegue la tabella di creazione appropriata dichiarazione. Ripeti l'operazione per tutti gli altri output dall'origine XML (ce ne sarà uno per ogni tabella piatta logica generata dallo schema).

Probabilmente sarà necessario utilizzare prima altri oggetti di trasformazione dati per trasformare i dati prima di caricarli nel server SQL, ma questo è il senso generale di ciò. Se è necessario eseguire il processo per una grande quantità di file XML, è possibile inserire l'attività in un ciclo di controllo e utilizzare una variabile per impostare il percorso del file XML.

La documentazione di MS utilizzando un sorgente XML in SSIS è qui: http://msdn.microsoft.com/en-us/library/ms140277(v=SQL.100).aspx

+0

Grazie. Ho una licenza per sviluppatore di SQL Server 2008, ma non BIDS. Guarderò in SSIS. –

+0

BIDS viene fornito con SQL Server Developer e deve essere installato insieme allo studio di gestione server SQL e agli altri strumenti client. È lo stesso strumento che usi per creare report sui servizi di report. –

+0

SSIS creerà le tabelle, ma questo è solo 1/2 del lavoro. Non crea alcun riferimento tra di loro. Farà anche alcune assunzioni sui dati, come 'numerico (20,0)' per 'int'. – ajeh

5

appena trovato XSD2DB on Sourceforge, secondo il sito:

XSD2DB è uno strumento a riga di comando scritto in C#, che la volontà leggere un file di schema DataSet compatibile con lo standard (XSD) di Microsoft e generare un database.

Controllare.

+1

ha funzionato per te perché ha fallito miseramente per me su un grande file di schema. – IEnumerator

Problemi correlati