Hallo!
Eigentlich schon! Mit DOMXML geht das.
http://www.phpindex.com/articles/articles_lire.php3?element=313
So, das steht da:
<?php
$error = array();
// chargement en mémoire du fichier xml
$dom = @xmldocfile('test.xml', DOMXML_LOAD_VALIDATING, $error);
// test pour voir si le document xml est 'well formed'
if(!is_object($dom)){
echo("Le document XML n'est pas 'Well Formed' !\n");
die(print_r($error));
}
// test pour voir si le document est conforme à sa DTD
if(!@domxml_doc_validate($dom, $error)){
echo "Validation DTD n'est pas OK\n";
print_r($error);
} else {
echo "Validation OK\n";
}
?>
Hat sich wohl etwas an den Funktionen geändert:
xmldocfile() => domxml_open_file()
aber wo um himmelswillen gibt es die Funktion domxml_doc_validate() ?
http://php3.de/manual-lookup.php?pattern=domxml_doc_validate&lang=en
Das Wort "validate" kommt nirgendwo in der domxml Referenz vor auch nicht bei der Suche im XML-Zusammenhang.
Und soweit mir das meine spärlichen Französisch-Kenntnisse zulassen habe ich das so verstanden das es sich hierbei durchaus um eine feste PHP-Funktion handeln sollte. Liget vermutlich daran das das alles noch nur im CVS liegt und noch sehr experimentellen Charakter hat. Und auch die PEAR-Lösung ist eine experimentelle Klasse aus dem CVS. Vielleicht sollte ich solche Sachen vielleicht doch lieber PERL oder einem anderen Tool überlassen, zuminmdest vorerst. Oder weiß Du welche _aktuellen_ Funktionen ich zu verwenden habe(http://www.php.net/manual/en/ref.domxml.php)?
Ich habe mich ein wenig weiter in DTDs und das Perl-Modul XML::Checker::Parser (http://search.cpan.org/author/ENNO/libxml-enno-1.02/lib/XML/Checker/Parser.pm) angesehen, wie es ausshieht ist es _das_ PERL Modul wenn es um Validierung von XML/DTDs geht, oder kennt da jemand noch was besseres/einfacheres...?
Viele Grüße und Danke für die Links!
Andreas
PS: Was hat das ganze eigentlich großartig mit DOM zu tun? Ich dachte immer DOM sei eine Art freier Javascript-Nachfolger?!