FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Validar XML con schema
Hola:
Quisiera saber como puedo validar un XML a la hora de cargarlo contra el schema que tiene definido, que lance una excepcion en caso de que config.xml no corresponda con config.xsd o cuando este schema no se pueda encontrar para validarlo var XMLConfigurationDoc : IXMLDocument; begin ... XMLConfigurationDoc := TXMLDocument.Create(nil); XMLConfigurationDoc.LoadFromFile('config.xml'); ... end; |
#2
|
||||
|
||||
Hola.
debiera bastar (aunque no lo he probado) con poner a true los items: poResolveExternals poValidateOnParse de la propiedad ParseOptions del XMLDocument. Además, el archivo debiera incluir en su xml declaration, la clausula standalone="no", y una linea DOCTYPE (o su equivalente) que lo asocie con el archivo xsd. Para un dtd la línea es: <!DOCTYPE StockHoldings SYSTEM "sth.dtd"> Hasta luego. |
#3
|
|||
|
|||
Estos consejos fue lo primero que hice antes de enviar el post pero no funciono pues al quitar el xsd del mismo camino del xml, es decir, para que no pudiera encontrarlo, no dio bateo alguno, pense que fuese suficiente pero no fue asi. Por eso es que me decidi a preguntar en el foro, si tienen otra solucion se lo agradeceria.
|
#4
|
||||
|
||||
Para futuras oportunidades, te recomiendo incluir este tipo de información cuando colocas la pregunta, de manera que ni vos ni yo perdamos tiempo por su ausencia. Para entender mi postura, te recomiendo la lectura de este hilo
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
|||
|
|||
Disculpa la omisión entonces, lo cierto es que el elemento standalone es como si no existiera pues sea "yes" o sea "no" no da error alguno, las propiedad ParseOption la inicializo así:
XMLConfigurationDoc := TXMLDocument.Create(nil); XMLConfigurationDoc.ParseOptions := [poResolveExternals, poValidateOnParse]; XMLConfigurationDoc.LoadFromFile('config.xml'); esta es la estructura general de config.xml: <?xml version="1.0" encoding="UTF-8"?> <configuration Version="1.0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="config.xsd"> ... ... ... </configuration> y cuando borro config.xsd del mismo origen que config.xml no da problemas alguno, comprendes mejor ahora??? puedes ayudarme??? |
#6
|
|||
|
|||
Hola estaria interesado en hacer lo mismo pero no encontre ningun ejemplo donde comenzar a trabajar.
Mi aplicacion crea un XML y querria validar su estructura sore los XSD que tambien tengo. Trabajo sobre Delphi 6 y no se como podria comprobar el archivo xml. Gracias |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|