salut a tous,
je savais trop ou poster cette question, s'il fallait la mettre en C, ou dans la sous categorie xml, donc je l'ai mise ici.
voila mon probleme en deux mots:
j'essaye d'inclure une validation dtd dans un programme que je fait, j'ai fait des tests avec des xml et dtd tres simple, et la libxml2 semble etre fachee avec ce que je lui envoi...
je vous met les exemples qui seront surement plus clairs.
Ici il faut voir que le fichier est valide lorsque je le passe dans les binaires de la libxml....
$ xmllint --valid file.xml
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "toto.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>
$
et que la, avec mon programme, ca ne passe pas....
$ ./dtd file.xml file.dtd
Document not parsed successfully
$
Alors que le code est tout ce qu'il y a de plus basique.....
int main(int argc, char *argv[])
{
xmlDocPtr doc;
xmlDtdPtr dtd;
if (argc != 3)
return (1);
doc = xmlParseFile(argv[1]);
if (doc == NULL )
{
fputs("Document not parsed successfully\n", stderr);
return (1);
}
dtd = xmlParseDTD(NULL, (xmlChar *) argv[2]);
if (dtd == NULL)
{
fputs("DTD not parsed successfully\n", stderr);
return (1);
}
if (xmlValidateDtd(NULL, doc, dtd) == 0)
{
fputs("Invalid document\n", stderr);
return (1);
}
return (0);
}
Merci d'avance a ceux qui preteront attention a mon probleme.
bye.