Next in thread → Next in month →

Re: [xml-dev] Using the question mark symbol in a simpleType - legal and illegal usage

From
Mukul Gandhi <>
To
Roger L Costello <>
Date
2021-12-10T06:06:16Z
ID
<>
Thread
Re: [xml-dev] Using the question mark symbol in a simpleType - legal and illegal usage
On Thu, Dec 9, 2021 at 12:04 AM Roger L Costello <[email protected]> wrote:
The value of the pattern facet is a regular expression (regex) and the question mark is a reserved symbol (it is a meta-symbol). To indicate that we want the question mark (not the meta-symbol) we must escape it:

    <xs:simpleType name="Test2">
        <xs:restriction base="xs:string">
            <xs:pattern value="A|B|\?" />
        </xs:restriction>
    </xs:simpleType>

With XML Schema 1.1, I sometimes prefer <xs:assertion test="matches(..)"/> over <xs:pattern value=".."/>, particularly for complex regexes. With XPath 2.0 fn:matches, we can use regex flags as defined by XPath 2.0 F&O spec (https://www.w3.org/TR/xquery-operators/#regex-syntax), to break long regex into multiple lines for readability. For e.g, translating above cited XSD simpleType would look like following (not tested) with  xs:assertion,

<xs:simpleType name="Test2">
        <xs:restriction base="xs:string">
            <xs:assertion test="matches($value, 'A
                                                                        | B
                                                                        | \?', 'mx')" />
        </xs:restriction>
</xs:simpleType>

(this can be even more helpful, when regexes are much more complex)


--
Regards,
Mukul Gandhi
Next in thread → Next in month →