note 62032 added to function.dom-domdocument-schemavalidate
| From: | MikeA dot at osu1 dot php dot net | Date: | Fri, 17 Feb 2006 20:03:45 +0000 |
| Subject: | note 62032 added to function.dom-domdocument-schemavalidate | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-103935@lists.php.net to get a copy of this message | ||
For more detailed feedback from DOMDocument::schemaValidate, disable libxml errors and fetch error
information yourself. See http://php.net/manual/en/ref.libxml.php for more
info.
example.xml
<?xml version="1.0"?>
<example>
<child_string>This is an example.</child_string>
<child_integer>Error condition.</child_integer>
</example>
example.xsd
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="example">
<xs:complexType>
<xs:sequence>
<xs:element name="child_string" type="xs:string"/>
<xs:element name="child_integer" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<?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 = new DOMDocument();
$xml->load('example.xml');
if (!$xml->schemaValidate('example.xsd')) {
print '<b>DOMDocument::schemaValidate() Generated Errors!</b>';
libxml_display_errors();
}
?>
Old error message:
Warning: DOMDocument::schemaValidate() [function.schemaValidate]: Element 'child_integer':
'Error condition.' is not a valid value of the atomic type 'xs:integer'. in
example.php on line 40
New error message:
DOMDocument::schemaValidate() Generated Errors!
Error 1824: Element 'child_integer': 'Error condition.' is not a valid value of
the atomic type 'xs:integer'. in example.xml on line 4
----
Server IP: 216.194.113.175
Probable Submitter: 128.173.15.155
----
Manual Page -- http://www.php.net/manual/en/function.dom-domdocument-schemavalidate.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+62032
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+62032&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+62032&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+62032&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+62032&report=yes&reason=useless
Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+62032&report=yes&reason=non-english
Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+62032&report=yes&reason=already+in+docs
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+62032&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+62032&report=yes
Search -- http://master.php.net/manage/user-notes.php