[ https://issues.apache.org/jira/browse/XERCESJ-1456?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Khaled Noaman resolved XERCESJ-1456. ------------------------------------ Fix Version/s: 2.11.0 Resolution: Fixed Fix checked in > 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 > Assignee: Khaled Noaman > Fix For: 2.11.0 > > > 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: j-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: j-dev-h...@xerces.apache.org