Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-04-2004
rsotolongo rsotolongo is offline
Miembro
 
Registrado: ene 2004
Posts: 14
Poder: 0
rsotolongo Va por buen camino
Unhappy 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;
Responder Con Cita
  #2  
Antiguo 27-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
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.

Responder Con Cita
  #3  
Antiguo 27-04-2004
rsotolongo rsotolongo is offline
Miembro
 
Registrado: ene 2004
Posts: 14
Poder: 0
rsotolongo Va por buen camino
Unhappy

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.
Responder Con Cita
  #4  
Antiguo 27-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 27-04-2004
rsotolongo rsotolongo is offline
Miembro
 
Registrado: ene 2004
Posts: 14
Poder: 0
rsotolongo Va por buen camino
Unhappy

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???
Responder Con Cita
  #6  
Antiguo 27-04-2004
cisterpe cisterpe is offline
Miembro
 
Registrado: sep 2003
Posts: 75
Poder: 21
cisterpe Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:03:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi