|
Subject: Re: [xsl] Need an XPath expression which returns all xs:pattern elements containing a regex that permits an unbounded number of characters From: "David Carlisle d.p.carlisle@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 4 Apr 2024 14:20:19 -0000 |
On Thu, 4 Apr 2024 at 14:48, Willem Van Lishout willemvanlishout@xxxxxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> Is this even possible, theoretically speaking? As soon as you start using
> lookaheads, square brackets, and so on, your patterns will likely fail. I
> don't think regex can parse regex.
>
I don't think the regex needs to be parsed here: you can destructively
normalise it before testing eg
replace ( replace(replace(,.'\s','') , '\\.' , 'x'), `\{-0-9]*,\}`,'*`)
would get rid of all white space, replace \-quoted characters by x and a{
99, } constructs by a*
which should simplify looking for * and +
David
> 4 Apr 2024, at 20:15, "David Carlisle d.p.carlisle@xxxxxxxxx" <
> xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>>
>>
>>
>> On Thu, 4 Apr 2024 at 13:29, Roger L Costello costello@xxxxxxxxx <
>> xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>>
>>> Hi Folks,
>>>
>>> I want to find, in an XML Schema, all xs:pattern elements containing a
>>> regex that permits an unbounded number of characters.
>>>
>>> Here are examples of xs:pattern elements that I want to find:
>>>
>>> <xs:pattern value="A*"/>
>>> <xs:pattern value="A+"/>
>>> <xs:pattern value="A{0,.}"/>
>>> <xs:pattern value="A{1,.}"/>
>>>
>>>
>>> How to fix my XPath expression? Is the solution to add a second
>>> predicate:
>>>
>>> xs:pattern[
>>> contains(@value, '*') or
>>> contains(@value, '+') or
>>> contains(@value, '{1,}') or
>>> contains(@value, '{0,}')
>>> ][
>>> not(contains(@value, '\*')) and
>>> not(contains(@value, '\+'))
>>> ]
>>>
>>> Is that correct?
>>>
>>>
>> No.
>>
>> A pattern \\* matches an unbounded list of backslashes but fails your
>> test as it contains \*
>> A pattern X{5,} matches an unbounded list of X of at least 5 but
>> doesn't match your first predicate.
>>
>>
>>
>>
>> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
>> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/3166594> (by
>> email)
>>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/2739265> (by
> email <>)
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Need an XPath expression , Piez, Wendell A. (Fe | Thread | Re: [xsl] Need an XPath expression , Piez, Wendell A. (Fe |
| Re: [xsl] Need an XPath expression , Piez, Wendell A. (Fe | Date | Re: [xsl] indenting maps on write, Graydon graydon@xxxx |
| Month |