ID:               49325
 Updated by:       ie...@php.net
 Reported By:      bernardo at datamex dot com dot br
-Status:           Open
+Status:           Bogus
 Bug Type:         DOM XML related
 Operating System: Freebsd 7
 PHP Version:      5.2.10
 Assigned To:      iekpo
 New Comment:

This looks like there is a problem with the regular expression in the
XSD.

I took the regular expression '[0-9]{0,14}|ISENTO|PR[0-9]{4,8}' and
attempted to validate it against the string "ISENTO" and it still did
not work. However, 123456789 works.

I also attempted to validated the XML file directly with LIBXML2 and it
still failed.

The Java library you are using is possibly using POSIX regular
expression syntax.

The libxml2 library used in the validation process is very likely using
PCRE.

PCRE is not necessary compatible with POSIX.

Which implies that even though it may work with the Java library, it
does necessarily have to work with libxml2 which is what the DOM
extension uses internally.

I would recommend that you tweek your regex to work with both regular
expression types if that is possible.

Test it first with preg_match() and if it works with both POSIX and
PCRE then update your XSD with the new regex.

I will update the documentation to make a note of this after I conclude
my findings with the Java library and what regular expression syntax it
uses in parsing the regex in XSD.

This is definitely not a bug in PHP.

Thank you for filing this bug report though and thank you for using
PHP.



Previous Comments:
------------------------------------------------------------------------

[2009-10-05 16:56:05] bernardo at datamex dot com dot br

If you see the message below (generated by xsd validator php)

Error: Element '{http://www.portalfiscal.inf.br/nfe}IE': [facet
'pattern'] The value 'ISENTO' is not accepted by the pattern
'[0-9]{0,14}|ISENTO|PR[0-9]{4,8}'.

she says that "ISENTO" is not valid in expression
'[0-9]{0,14}|ISENTO|PR[0-9]{4,8}'

if I use the same XSD and same xml in java is valid

the problem is not with the files

------------------------------------------------------------------------

[2009-10-05 16:07:31] ie...@php.net


This was actually not a bug with the PHP code.

So this bug should be closed.

The error was in the instance XML document. 

The contents of the element node did not conform to what is specified
in the XSD.

The original file is here :

http://israelekpo.com/php_bugs/NFe/43090803116611000198550010000000010700000127.xml

The corrected version is here :

http://israelekpo.com/php_bugs/NFe/43090803116611000198550010000000010700000127.correct.xml

PHP Code to verify success :

http://israelekpo.com/php_bugs/NFe/bug_49325.phps

<?php

$xml = new DomDocument();
$xml->load('43090803116611000198550010000000010700000127.correct.xml');

$tempDom = new DOMDocument();

$tempDom->loadXML(utf8_encode($xml->saveXML()));

if ($tempDom->schemaValidate('nfe_v1.10.xsd'))
{
    echo "ok";
    
} else {

    echo "erro";
}

?>

Expected result:
----------------
ok

Actual result:
--------------
ok


------------------------------------------------------------------------

[2009-10-05 15:18:27] ie...@php.net

I am going to take on this one.

I will provide feedback later in the day.

------------------------------------------------------------------------

[2009-08-21 19:47:00] bernardo at datamex dot com dot br

Description:
------------
erros na validação de xsd coisas do tipo

Error: Element '{http://www.portalfiscal.inf.br/nfe}IE': [facet
'pattern'] The value 'ISENTO' is not accepted by the pattern
'[0-9]{0,14}|ISENTO|PR[0-9]{4,8}'.

o php esta em iso-8859-1 
o xml esta em utf-8

xsds in http://www.bernardosilva.com.br/NFe.rar
xml in
http://www.bernardosilva.com.br/43090803116611000198550010000000010700000127.xml

Reproduce code:
---------------
$xml = new DomDocument();
$xml->load('43090803116611000198550010000000010700000127.xml')

$tempDom = new DOMDocument();
$tempDom->loadXML(utf8_encode($xml->saveXML()));

if ($tempDom->schemaValidate('nfe_v1.10.xsd'))
 echo "ok"
else
 echo "erro"
 

Expected result:
----------------
ok

Actual result:
--------------
erro


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=49325&edit=1

Reply via email to