Andreas Korthaus: XML-Validator in PHP

Beitrag lesen

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?!