From:             jknoos at kth dot se
Operating system: Arch Linux
PHP version:      5.4.10
Package:          DOM XML related
Bug Type:         Bug
Bug description:schemaValidate pattern fails with quantities

Description:
------------
When using the function DOMDocument::schemaValidate, the string x@ is
matched by ".(\.{0,1}){0}@" but not by ".(\.?){0}@" (i.e., the only
difference is {0,1} vs. ?).

Test script:
---------------
Code:
    $xdoc = new DomDocument;
    $xdoc->loadXML( file_get_contents( 'xml.xml' ) );
    $xdoc->schemaValidate( 'schema.xsd' );

Schema, schema.xsd:
    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";>
        <xs:element name="a">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:pattern value=".(\.{0,1}){0}@"></xs:pattern>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
    </xs:schema>

xml.xml:
    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <a>x@</a>

Expected result:
----------------
Validation expected.

Actual result:
--------------
Warning: DOMDocument::schemaValidate(): Element 'a': [facet 'pattern'] The
value 'x@' is not accepted by the pattern '.(\.{0,1}){0}@'.

-- 
Edit bug report at https://bugs.php.net/bug.php?id=63942&edit=1
-- 
Try a snapshot (PHP 5.4):   
https://bugs.php.net/fix.php?id=63942&r=trysnapshot54
Try a snapshot (PHP 5.3):   
https://bugs.php.net/fix.php?id=63942&r=trysnapshot53
Try a snapshot (trunk):     
https://bugs.php.net/fix.php?id=63942&r=trysnapshottrunk
Fixed in SVN:               https://bugs.php.net/fix.php?id=63942&r=fixed
Fixed in release:           https://bugs.php.net/fix.php?id=63942&r=alreadyfixed
Need backtrace:             https://bugs.php.net/fix.php?id=63942&r=needtrace
Need Reproduce Script:      https://bugs.php.net/fix.php?id=63942&r=needscript
Try newer version:          https://bugs.php.net/fix.php?id=63942&r=oldversion
Not developer issue:        https://bugs.php.net/fix.php?id=63942&r=support
Expected behavior:          https://bugs.php.net/fix.php?id=63942&r=notwrong
Not enough info:            
https://bugs.php.net/fix.php?id=63942&r=notenoughinfo
Submitted twice:            
https://bugs.php.net/fix.php?id=63942&r=submittedtwice
register_globals:           https://bugs.php.net/fix.php?id=63942&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=63942&r=php4
Daylight Savings:           https://bugs.php.net/fix.php?id=63942&r=dst
IIS Stability:              https://bugs.php.net/fix.php?id=63942&r=isapi
Install GNU Sed:            https://bugs.php.net/fix.php?id=63942&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=63942&r=float
No Zend Extensions:         https://bugs.php.net/fix.php?id=63942&r=nozend
MySQL Configuration Error:  https://bugs.php.net/fix.php?id=63942&r=mysqlcfg

Reply via email to