Reputation: 322
This snippet
<xsd:element name="HomePhone" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="^+[0-9]{1,2}-[0-9]{1,2}-[0-9]{3}[0-9]{0,1}-[0-9]{3}[0-9]{0,1}$"></xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
is returning the error
XSD: The regular expression '^+[0-9]{1,2}-[0-9]{1,2}-[0-9]{3}[0-9]{0,1}-[0-9]{3}[0-9]{0,1}$' failed to validate at location 1: Unexpected meta character.
Any idea what is wrong?
Thanks in advance
Upvotes: 0
Views: 2244
Reputation: 75232
In the XML Schema regex flavor, all matches are implicitly anchored at both ends, so you don't need to add the ^
and $
. According to the spec, those two characters are supposed to be treated as literal text. But if it that were the case, the ^+
in your regex would try to match one or more ^
characters, not throw an exception.
I suspect they're being treated as anchors despite the spec. And it makes no sense to match an anchor more than once, so the +
is treated as an error. Come to think of it, it makes no sense to have a quantifier in that position in any case; what was the +
supposed to do? Anyway, your regex should work if you delete that character.
Upvotes: 2
Reputation: 70490
^ Start of line
+ preceding character one or more times
There is no 'preceding character'.
Upvotes: 2