valider un fichier xml à l'encontre d'un xsd à l'aide de php
comment valider un fichier xml à l'encontre d'un xsd? il est domdocument::schemaValidate (), mais Il ne dit pas où sont les erreurs. est-il en classe? combien ça vaut la peine que l'analyseur à partir de zéro? ou est-ce juste il réinventer la roue,
$xml=newDOMDocument();
$xml->loadXML(<A string goes here containing the XML data>, LIBXML_NOBLANKS);//Or load if filename requiredif(!$xml->schemaValidate(<file name for the XSD file>))//Or schemaValidateSource if string used.{//You have an error in the XML file}
justin à redwiredesign dot com 08-Nov-2006 03:32 post.
je ne pense pas qu'il raconte, où les erreurs sont et d'où vient-elle défaillante et pourquoi c'est un échec .n'est ce pas? Voir modifier une réponse Malheureusement la version de PHP permet l'utilisation de libxml2 qui ne prend pas en charge le XSD de la transformation XSLT 2.0 spécification...
Pour des informations plus détaillées à partir de DOMDocument::schemaValidate, désactiver
libxml erreurs et de chercher de l'information d'erreur vous-même. Voir http://php.net/manual/en/ref.libxml.php pour plus d'info.
example.xml
<?xml version="1.0"?><example><child_string>This is an example.</child_string><child_integer>Error condition.</child_integer></example>
<?php
function libxml_display_error($error){
$return ="<br/>\n";switch($error->level){case LIBXML_ERR_WARNING:
$return .="<b>Warning $error->code</b>: ";break;case LIBXML_ERR_ERROR:
$return .="<b>Error $error->code</b>: ";break;case LIBXML_ERR_FATAL:
$return .="<b>Fatal Error $error->code</b>: ";break;}
$return .= trim($error->message);if($error->file){
$return .=" in <b>$error->file</b>";}
$return .=" on line <b>$error->line</b>\n";return $return;}function libxml_display_errors(){
$errors = libxml_get_errors();foreach($errors as $error){print libxml_display_error($error);}
libxml_clear_errors();}//Enable user error handling
libxml_use_internal_errors(true);
$xml =newDOMDocument();
$xml->load('example.xml');if(!$xml->schemaValidate('example.xsd')){print'<b>DOMDocument::schemaValidate() Generated Errors!</b>';
libxml_display_errors();}?>
Il ressemble au code sur ibm.com/developerworks/library/x-validxphp. Désolé de poster années plus tard, mais comment pourriez-vous changer le code ci-dessus pour valider l'encontre d'un fichier de schéma (xsd) avec dépendances sur d'autres fichiers de schéma (xsd)?
Ce code ne de l'entreprise:
Voir le code dans http://php.net/manual/en/domdocument.schemavalidate.php Pour récupérer les erreurs.
I. e.
justin à redwiredesign dot com 08-Nov-2006 03:32 post.
Voir modifier une réponse
Malheureusement la version de PHP permet l'utilisation de libxml2 qui ne prend pas en charge le XSD de la transformation XSLT 2.0 spécification...
OriginalL'auteur Ed Heal
Utilisateur contrib de http://php.net/manual/en/domdocument.schemavalidate.php
Il fonctionne comme un charme!
example.xml
exemple.xsd
PHP
Désolé de poster années plus tard, mais comment pourriez-vous changer le code ci-dessus pour valider l'encontre d'un fichier de schéma (xsd) avec dépendances sur d'autres fichiers de schéma (xsd)?
OriginalL'auteur Maciej Niemir