2010-04-13 35 views
5

Tengo un esquema XSD complejo y cientos de archivos XML que se ajustan al esquema.Cómo construir una base de datos a partir de un esquema XSD e importar datos XML

¿Cómo automatizo la creación de tablas relacionadas de SQL Server para almacenar los datos XML?

He pensado en la creación de clases de C# a partir del esquema XSD con la función xsd.exe y dejar que algo como la figura subsónico la manera de hacer una base de datos brillante fuera de él, pero no está seguro si es la mejor manera de acercarse eso.

¿Alguien ha logrado importar elegantemente archivos XSD en SQL Server?

Una pregunta similar con buenas respuestas: How can I create database tables from XSD files?

Respuesta

9

le sugiero que utilice SQL Server Integration Services, que viene con SQL Server 2008 o 2005 (O Servicios de transformación de datos si su pegado con 2000).

Desafortunadamente no viene con la versión "Express" gratuita de SQL Server; sin embargo, se puede tener la edición SQL Server Developer para < $ 100 que tiene la funcionalidad completa de SQL Server Standard y se adapta a sus necesidades.

SSIS es un gran tema y yo no voy a repasar todas las campanas y silbatos aquí pero básicamente:

  • Crear un nuevo proyecto de SSIS usando OFERTAS (Business Intelligence Development Studio, una versión modificada Visual Studio que viene con SSIS)
  • Arrastre una nueva tarea de flujo de datos a la superficie de Control Flow, luego haga clic en la pestaña de flujo de datos.
  • Arrastre una "fuente XML" desde la caja de herramientas al panel de flujo de datos, y luego configure las ubicaciones de los archivos XSD y XML.
  • Arrastre un destino de datos ADO.NET de la caja de herramientas al flujo de datos y conecte una de las salidas de la fuente XML a la entrada del destino ADO.NET. Si desea crear una nueva tabla basada en la salida de datos del esquema xml en lugar de usar una existente, haga clic en "Nuevo" al especificar la Configuración de Connection Manager en el Destino ADO.NET y genere y ejecute la tabla de creación apropiada declaración. Repita esto para cualquier otra salida de la fuente XML (habrá una para cada tabla plana lógica generada a partir del esquema).

Es muy probable que necesite utilizar otros objetos de transformación de datos primero para transformar los datos antes de que se carguen en el servidor SQL, pero esa es la esencia general de la misma. Si necesita ejecutar el proceso para una gran cantidad de archivos XML, puede colocar la tarea en un ciclo de control y usar una variable para establecer la ubicación del archivo XML.

La documentación de MS en el uso de una fuente XML en SSIS está aquí: http://msdn.microsoft.com/en-us/library/ms140277(v=SQL.100).aspx

+0

Gracias. Tengo una licencia de desarrollador de SQL Server 2008, pero no BIDS. Buscaré en SSIS. –

+0

BIDS viene con SQL Server Developer, y debe instalarse junto con SQL server management studio y las otras herramientas de cliente. Es la misma herramienta que usa para crear informes de informes de servicios. –

+0

SSIS creará las tablas, pero esto es solo la mitad del trabajo. No crea ninguna referencia entre ellos. También hará algunas asunciones descabelladas sobre los datos, como 'numérico (20,0)' para 'int'. – ajeh

5

acaba de encontrar XSD2DB on Sourceforge, según el sitio:

XSD2DB es una herramienta de línea de comandos escrita en C#, que la voluntad lea un Microsoft compatible con ADO.NET Archivo de esquema de datos (XSD) y genere una base de datos.

Comprobándolo.

+1

funcionó para usted porque falló miserablemente en un gran archivo de esquema. – IEnumerator

Cuestiones relacionadas