[prev in list] [next in list] [prev in thread] [next in thread]
List: xmlbeans-dev
Subject: [jira] [Commented] (XMLBEANS-412) CLONE -Pattern facet regex requires dash - to be escaped
From: "Jerry Sy (Commented) (JIRA)" <xmlbeans-dev () xml ! apache ! org>
Date: 2012-04-05 21:50:24
Message-ID: 4115217.20004.1333662624586.JavaMail.tomcat () hel ! zones ! apache ! org
[Download RAW message or body]
[ https://issues.apache.org/jira/browse/XMLBEANS-412?page=com.atlassian.jira.plugi \
n.system.issuetabpanels:comment-tabpanel&focusedCommentId=13247735#comment-13247735 ] \
Jerry Sy commented on XMLBEANS-412:
-----------------------------------
I have created a fix to this issue and requesting the board to review the fix. I am \
attaching the patch and changed file. It basically allows unescaped '-' at the start \
or end of a positive char group.
svn diff ParserForXMLSchema.java
Index: ParserForXMLSchema.java
===================================================================
--- ParserForXMLSchema.java (revision 1245727)
+++ ParserForXMLSchema.java (working copy)
@@ -234,9 +234,9 @@
if (type == T_CHAR) {
if (c == '[') throw this.ex("parser.cc.6", this.offset-2);
if (c == ']') throw this.ex("parser.cc.7", this.offset-2);
- // (radup) XMLSchema 1.0 allows the '-' as the first character \
of a range,
- // but it looks like XMLSchema 1.1 will prohibit it - track this
- if (c == '-' && !firstloop) throw this.ex("parser.cc.8", \
this.offset-2); + \
//https://issues.apache.org/jira/browse/XMLBEANS-412 + //unescaped \
single char '-' is a valid char after '[' and before ']' positive range only + \
if (c== '-' && ((!firstloop && this.chardata!=']') || nrange)) throw \
this.ex("parser.cc.8", this.offset-2); }
if (this.read() != T_CHAR || this.chardata != '-') { // Here is no \
'-'. tok.addRange(c, c);
@@ -245,9 +245,15 @@
this.next(); // Skips '-'
if ((type = this.read()) == T_EOF) throw this.ex("parser.cc.2", \
this.offset);
// c '-' ']' -> '-' is a \
single-range.
- if ((type == T_CHAR && this.chardata == ']')
- || type == T_XMLSCHEMA_CC_SUBTRACTION) {
+ if (type == T_XMLSCHEMA_CC_SUBTRACTION) {
throw this.ex("parser.cc.8", this.offset-1);
+ } else if (type == T_CHAR && this.chardata == ']') {
+ //'-' occurs after a single-range but before ']'
+ if (!nrange) {
+ tok.addRange(c,c);
+ tok.addRange('-','-');
+ } else
+ throw this.ex("parser.cc.8", this.offset-1);
} else {
int rangeend = this.chardata;
if (type == T_CHAR) {
> CLONE -Pattern facet regex requires dash - to be escaped
> --------------------------------------------------------
>
> Key: XMLBEANS-412
> URL: https://issues.apache.org/jira/browse/XMLBEANS-412
> Project: XMLBeans
> Issue Type: Bug
> Components: Validator
> Affects Versions: Version 2, Version 2.1, Version 2.2, Version 2.2.1, Version 2.3, \
> Version 2.3.1
> Environment: Win 2000, JDK1.5
> Reporter: Radosław Ceszkiel
> Fix For: Version 2
>
> Attachments: ParserForXMLSchema.java, xmlbeans-412.patch
>
>
> Given the following xsd that should allow only a valid email address pattern:
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <xsd:element name="Email" type="EmailType" />
> <xsd:simpleType name="EmailType" >
> <xsd:restriction base="xsd:token">
> <xsd:pattern value="([\.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(([a-zA-Z0-9_-])*\.([a-zA-Z0-9_-])+)+"/>
> </xsd:restriction>
> </xsd:simpleType>
> </xsd:schema>
> Using the following simple xml instance:
> <Email>test@test.com</Email>
> Running:
> validate sample.xsd sample.xml
> generates:
> Schema invalid:
> D:\sample.xsd:7: error: pattern-regex: The regular expression \
> '([\.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(([a-zA-Z0-9_-])*\.([a-zA-Z0-9_-])+)+' is \
> malformed: '-' is an invalid character range. Write '\-'. A dash at the end or at \
> the beginning of a character range does not have to be escaped (see \
> http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html#nt-charRange "The \
> - character is a valid character range only at the beginning or end of a - positive \
> character group- .") The regular expression in the email example is a valid xsd \
> regexp and should be accepted by the XmlBeans validator.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: \
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more \
information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: dev-help@xmlbeans.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic