Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Validar un XML contra un DTD
Enviado por Mario el día 26 de marzo de 2004
Hola:
Estoy intentando validar un XML contra un DTD en VC++ . Estoy trabajando con el DOMParser de las xercesc. ¿Como lo hago? o por lo menos alguna pista por la que pueda investigar
Hola,
yo estoy trabajando con MSXML4.0 con VC++ y tambien valido un XML contra un DTD. Tengo el siguiente codigo (por si te es de ayuda) y lo valida.
hr = pXMLDom.CreateInstance(__uuidof(DOMDocument40));
if (FAILED(hr))
{
printf("Failed to instantiate DOMDocument40 class\n");
return -1;
}
pXMLDom->async = VARIANT_FALSE;
if ( pXMLDom->load(filename) != VARIANT_TRUE)
{
printf("Failed load xml data from file.\n%s\n", (LPCSTR)pXMLDom->parseError->Getreason());
return -1;
}
No me ha servido ya que utilizas el de Microsoft. Pero de todas formas, el DTD contra el que estás validando el XML, le indicas en el propio XML contra que DTD es,
es decir, el DOCTYPE dentro del XML o por el contrario en el XML no indicas nada y primero cargas el DTD que te interesa y despues el XML. Si sabes como hacerlo me vendría muy bien.
Lo indico solamente en el xml, por ejemplo:
(encoding="windows-1252" para que reconozca la ñ)
//Fichero .xml:
<?xml version="1.0" encoding="windows-1252" standalone="no"?>
<!DOCTYPE miejem SYSTEM "ejemplo.dtd">
<miejem>
.....
</miejem>