Bug #60651 [Opn->Nab]: XSD schema validation problem with unicode regular expression

From: Date: Tue, 10 Mar 2020 08:32:11 +0000
Subject: Bug #60651 [Opn->Nab]: XSD schema validation problem with unicode regular expression
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-225988@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=60651&edit=1 ID: 60651 Updated by: cmb@php.net Reported by: webmaster at panservice dot it Summary: XSD schema validation problem with unicode regular expression -Status: Open +Status: Not a bug Type: Bug Package: *XML functions Operating System: Linux PHP Version: Irrelevant -Assigned To: +Assigned To: cmb Block user comment: N Private report: N New Comment: Sorry, but your problem does not imply a bug in PHP itself. For a list of more appropriate places to ask for help using PHP, please visit http://www.php.net/support.php as this bug system is not the appropriate forum for asking support questions. Due to the volume of reports we can not explain in detail here why your report is not a bug. The support channels will be able to provide an explanation for you. Thank you for your interest in PHP. \P{Ll} inside a character class is not recognized as Unicode character property escape sequence. Previous Comments: ------------------------------------------------------------------------ [2012-01-04 10:31:38] webmaster at panservice dot it Description: ------------ When I try to validate XML file with given XSD schema containing Unicode regular expression, the function DOMDocument::schemaValidate return a validation error. The XSD schema is W3C well formed and the validation pass with the other validation tools. The problem doesn't occur if the XSD pattern is format like this (without square brackets): <xsd:pattern value="\P{Ll}+"/> PHP Version: 5.2.14 LibXml Version: 2.7.7 PS: The previous pattern [\P{Ll}]+ works correctly with preg_match function. Test script: --------------- PHP Validation Code: function libxml_display_errors() { $errors = libxml_get_errors(); print_r($errors); libxml_clear_errors(); } libxml_use_internal_errors(true); $dom = new DOMDocument(); $dom->load('test.xml'); if ( !$dom->schemaValidate('test.xsd') ) { echo "XML Error\n"; libxml_display_errors(); } else { echo "XML ok\n"; } ------------------------------- XSD Schema: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:simpleType name="noLowerCase"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[\P{Ll}]+"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="DatiUtenteType"> <xsd:sequence> <xsd:element name="Cognome" type="noLowerCase"/> <xsd:element name="Nome" type="noLowerCase"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="DataExchangeFisso"> <xsd:sequence> <xsd:element name="DatiUtente" type="DatiUtenteType"/> </xsd:sequence> </xsd:complexType> <xsd:element name="ListOfDataExchange"> <xsd:complexType> <xsd:sequence> <xsd:element name="DataExchangeFisso" type="DataExchangeFisso" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> ------------------------------- XML File: <?xml version="1.0" encoding="UTF-8"?> <ListOfDataExchange> <DataExchangeFisso> <DatiUtente> <Cognome>FOO</Cognome> <Nome>BAR</Nome> </DatiUtente> </DataExchangeFisso> </ListOfDataExchange> Expected result: ---------------- XML ok Actual result: -------------- XML Error Array ( [0] => LibXMLError Object ( [level] => 2 [code] => 1839 [column] => 0 [message] => Element 'Cognome': [facet 'pattern'] The value 'FOO' is not accepted by the pattern '[\P{Ll}]+'. [file] => /var/www/html/test.xml [line] => 5 ) [1] => LibXMLError Object ( [level] => 2 [code] => 1824 [column] => 0 [message] => Element 'Cognome': 'FOO' is not a valid value of the atomic type 'noLowerCase'. [file] => /var/www/html/test.xml [line] => 5 ) [2] => LibXMLError Object ( [level] => 2 [code] => 1839 [column] => 0 [message] => Element 'Nome': [facet 'pattern'] The value 'BAR' is not accepted by the pattern '[\P{Ll}]+'. [file] => /var/www/html/test.xml [line] => 6 ) [3] => LibXMLError Object ( [level] => 2 [code] => 1824 [column] => 0 [message] => Element 'Nome': 'BAR' is not a valid value of the atomic type 'noLowerCase'. [file] => /var/www/html/test.xml [line] => 6 ) ) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=60651&edit=1

« previous php.bugs (#225988) next »