validate - Usando xsd para generar XML en.net
validate xml with xsd c# (2)
Además de la solución sugerida por Joel Coehoorn, generar conjuntos de datos tipeados o entidades comerciales de XSD, permítanme agregar algunos otros enfoques:
- Si usa una base de datos que admita el tipo XML, como Oracle o MS SQL Server, puede construir XML directamente en sus consultas SQL y recuperar XML directamente de la base de datos, omitiendo la población del conjunto de datos.
- En caso de que su esquema de base de datos no esté directamente asignado al XSD dado, es decir, ya tiene un conjunto de datos tipeados o un conjunto de objetos comerciales serializables en XML, y esos objetos se serializan en XML que no se corresponde con XSD que se le proporciona, luego puede usar XSLT para transformar su XML en otro documento XML que cumpla con el XSD dado.
Estoy trabajando en una aplicación .net donde necesitamos generar archivos XML sobre la marcha en base al conjunto de datos recuperados de la base de datos. El esquema XML debe basarse en un xsd proporcionado. Me gustaría saber si hay alguna manera de enlazar o asociar un conjunto de datos o cada datarow con el xsd. No sé si se puede hacer del todo o podría estar pensando en el uso de XSD en una perspectiva equivocada. Si me equivoco, corrígeme y cuéntame la mejor manera de asociar datos recuperados de db a un esquema predefinido. Gracias.
Actualización: si mi perspectiva sobre xsd es incorrecta, por favor arroja algo de luz sobre cómo se usan los xsds (o tal vez apuntarme a algunos enlaces útiles).
Utilice el documento de esquema como parámetro del programa xsd.exe de la línea de comandos que se incluye con Visual Studio para generar archivos de clase o conjuntos de datos tipados que puede incluir en su proyecto / solución. Estas clases o conjuntos de datos se pueden serializar a 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 incorporado que respalde esto de otra manera.