XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] Using the question mark symbol in a simpleType - legaland illegal usage

On Thu, Dec 9, 2021 at 12:04 AM Roger L Costello <costello@mitre.org> 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


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS