Pregunta

Estoy trabajando en una aplicación .net donde necesitamos generar archivos XML sobre la marcha en función del conjunto de datos recuperado de la base de datos.El esquema XML debe basarse en un xsd proporcionado.Me gustaría saber si hay alguna forma de vincular o asociar un conjunto de datos o cada fila de datos con el xsd.No sé si se puede hacer o puedo estar pensando en el uso de XSD desde una perspectiva equivocada.Si me equivoco, corríjame y déjeme saber cuál es la mejor manera de asociar datos recuperados de la base de datos a un esquema predefinido. Gracias.

Actualizar:Si mi perspectiva sobre xsd es incorrecta, arroje algo de luz sobre cómo se usan los xsd (o tal vez indíqueme algunos enlaces útiles).

¿Fue útil?

Solución

Además de la solución sugerida por Joel Coehoorn (generar conjuntos de datos escritos o entidades comerciales a partir de XSD), permítanme agregar un par de enfoques más:

  1. Si utiliza una base de datos que admite tipos XML como Oracle o MS SQL Server, puede construir XML directamente en sus consultas SQL y recuperar XML directamente desde la base de datos sin pasar por la población del conjunto de datos.
  2. En caso de que el esquema de su base de datos no esté asignado directamente al XSD dado, es decirSi ya tiene un conjunto de datos escrito o un conjunto de objetos comerciales serializables en XML y esos objetos están serializados en XML que no se ajusta al XSD que se le proporcionó, entonces puede usar XSLT para transformar su XML en otro documento XML que ser compatible con el XSD dado.

Otros consejos

Utilice el documento de esquema como parámetro para el programa xsd.exe de línea de comando incluido con Visual Studio para generar archivos de clase o conjuntos de datos escritos que puede incluir en su proyecto/solución.Estas clases o conjuntos de datos se pueden serializar en xml y se ajustarán al documento de esquema que utilizó para crearlos.

El único problema con esto es que no es dinámico:no puede esperar hasta el tiempo de ejecución para obtener los archivos de esquema.Pero no hay nada integrado que respalde esto de otra manera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top