Uploaded image for project: 'XMLBeans'
  1. XMLBeans
  2. XMLBEANS-224

Pattern facet regex requires dash - to be escaped

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Invalid
    • Affects Version/s: Version 2
    • Fix Version/s: Version 2
    • Component/s: Validator
    • Labels:
      None
    • Environment:
      Win 2000, JDK1.5

      Description

      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 '-'.

      Question: Why should I have to escape the dashes??

      Then escaping the dashes, you can actually get the schema to compile. But then you have a new problem. The regex does validate valid email addresses!!

      So two bugs AFAIK - shouldn't need to escape slashes. Something in the regex is not recognised by xmlbeans regex parser.

        Attachments

        Issue Links

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              peterlynch Peter lynch

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment