Regular expression is incorrectly handled in pattern facet
----------------------------------------------------------

                 Key: XERCESJ-1456
                 URL: https://issues.apache.org/jira/browse/XERCESJ-1456
             Project: Xerces2-J
          Issue Type: Bug
          Components: XML Schema 1.0 Datatypes
    Affects Versions: 2.10.0
         Environment: JDK 1.5.0
            Reporter: Christian Schröder


I have the following schema:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
    <xsd:element name="test" type="Test"/>
    <xsd:simpleType name="Test">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="[0-9]{0,3}([0-9]{3})*"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:schema>

And this xml file:

<?xml version="1.0" encoding="windows-1252"?>
<test>1010000</test>

I try to validate the file with the following test code:

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setNamespaceAware(true);
    DocumentBuilder builder = dbf.newDocumentBuilder();
    Document xsd = 
builder.parse(Main.class.getResource("/test.xsd").toString());

    SchemaFactory sf = 
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    Schema schema = sf.newSchema(new DOMSource(xsd));
    Validator validator = schema.newValidator();

    Document test = 
builder.parse(Main.class.getResource("/test.xml").toString());
    validator.validate(new DOMSource(test));

I get an org.xml.sax.SAXParseException: cvc-pattern-valid: Value '1010000' is 
not facet-valid with respect to pattern '[0-9]{0,3}([0-9]{3})*' for type 'Test'.

In my opinion, the given value should be valid for the given pattern. Even the 
following code prints "true":

    RegularExpression re = new RegularExpression("[0-9]{0,3}([0-9]{3})*");
    System.out.println(re.matches("1010000"));

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to