xml validation with schema failed but the xml is valid in PHP Coding Help Posted November 17, 2014 XSD <?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:simpleType name="MgmtCodetyp"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[A-Z][A-Z]([A-Z]|[0-9])"></xsd:pattern> </xsd:restriction> </xsd:simpleType> <xsd:element name="MgmtCode" type="MgmtCodetyp"></xsd:element></xsd:schema> XML <MgmtCode>AGF</MgmtCode> PHP Code <?php $file = "data.xml"; function libxml_display_error($error) { $return = "\n"; switch ($error->level) { case LIBXML_ERR_ERROR: $return .= "[ERROR] "; break; case LIBXML_ERR_FATAL: $return .= "[FATAL] "; break; default: $return .= "[uNKNOWN] "; } $return .= trim($error->message); $return .= " [line: $error->line]\n"; return $return; } function libxml_display_errors() { $errors = libxml_get_errors(); foreach ($errors as $error) { if ($error -> level != LIBXML_ERR_WARNING) { print libxml_display_error($error); } } libxml_clear_errors(); } // Enable user error handling libxml_use_internal_errors(true); $xml = new DOMDocument; $xml -> load("kkk.xml"); if (!$xml -> schemaValidate("kkk.xsd")) { libxml_display_errors(); } else { print "no error\n"; }?> OUTPUT [ERROR] Element 'MgmtCode': [facet 'pattern'] The value 'AGF' is not accepted by the pattern '[A-Z][A-Z]([A-Z]|[0-9])'. [line: 1][ERROR] Element 'MgmtCode': 'AGF' is not a valid value of the atomic type 'MgmtCodetyp'. [line: 1] ANALYSIS The XML is a perfectly valid xml. I don't understand why it failed the XSD.
xml validation with schema failed but the xml is valid
in PHP Coding Help
Posted
XSD
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:simpleType name="MgmtCodetyp">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Z][A-Z]([A-Z]|[0-9])"></xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="MgmtCode" type="MgmtCodetyp"></xsd:element>
</xsd:schema>
XML
<MgmtCode>AGF</MgmtCode>
PHP Code
<?php
$file = "data.xml";
function libxml_display_error($error) {
$return = "\n";
switch ($error->level) {
case LIBXML_ERR_ERROR:
$return .= "[ERROR] ";
break;
case LIBXML_ERR_FATAL:
$return .= "[FATAL] ";
break;
default:
$return .= "[uNKNOWN] ";
}
$return .= trim($error->message);
$return .= " [line: $error->line]\n";
return $return;
}
function libxml_display_errors() {
$errors = libxml_get_errors();
foreach ($errors as $error) {
if ($error -> level != LIBXML_ERR_WARNING) {
print libxml_display_error($error);
}
}
libxml_clear_errors();
}
// Enable user error handling
libxml_use_internal_errors(true);
$xml = new DOMDocument;
$xml -> load("kkk.xml");
if (!$xml -> schemaValidate("kkk.xsd")) {
libxml_display_errors();
}
else {
print "no error\n";
}
?>
OUTPUT
[ERROR] Element 'MgmtCode': [facet 'pattern'] The value 'AGF' is not accepted by the pattern '[A-Z][A-Z]([A-Z]|[0-9])'. [line: 1]
[ERROR] Element 'MgmtCode': 'AGF' is not a valid value of the atomic type 'MgmtCodetyp'. [line: 1]
ANALYSIS
The XML is a perfectly valid xml. I don't understand why it failed the XSD.