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'. [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.