Re: Whose error is it anyway
Trevor Nash <[email protected]>
| Newsgroups | gmane.text.xml.saxon.help |
|---|---|
| Message-ID | <[email protected]> |
Does the inconsistency with \W and \s mean that
{map:get($actions,$action)} could evaluate to empty exactly as the
(second) error message suggests? In other words the match expression
does not guarantee that $action is found in the map.
Trevor
On 14/08/2020 13:54, Ihe Onwuka wrote:
> I have since changed the code but this is the rest of the template
> rule but trying to reconstruct it
>
> <xsl:template
> match="*[map:contains($actions,tokenize(.,'\W')[1][matches(.,'\i\c*')])]">
>
> <xsl:variable name="action" as="xs:string+"
> select="tokenize(.,'\s')[1]"/>
> <xsl:copy>
> <xsl:variable name="encodedAction">
> <xsl:element
> name="{map:get($actions,$action)}">{normalize-space(substring-after(.,$action))}</xsl:element>
> </xsl:variable>
> <xsl:apply-templates select="$encodedAction"/>
> </xsl:copy>
> </xsl:template>
>
> Note an error I overlooked - the first tokenize used '\W' and the
> second '\s' which led to the situation.
>
> I wasn't going to mention this but now that I have pasted the whole
> code when I corrected the 2nd tokenize to '\W' the transform threw a
> bash shell error (invalid fork argument)
>
>
>
>
> On Fri, Aug 14, 2020 at 8:46 AM Ihe Onwuka <[email protected]
> <mailto:[email protected]>> wrote:
>
> line 67
> <xsl:element
> name="{map:get($actions,$action)}">{normalize-space(substring-after(.,$action))}</xsl:element>
>
> where the @name did not evaluate to a valid XML name.
>
> On Fri, Aug 14, 2020 at 8:20 AM Michael Kay <mike-JkSD5nQpfvpWk0Htik3J/[email protected]
> <mailto:mike-JkSD5nQpfvpWk0Htik3J/[email protected]>> wrote:
>
> What's on line 67? Is it the declaration of global variable
> $actions? Otherwise, I can't see why evaluating this pattern
> should result in a call on xsl:element.
>
> Michael Kay
> Saxonica
>
>> On 14 Aug 2020, at 13:04, Ihe Onwuka <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> Happened again.
>>
>> My code. <xsl:template
>> match="*[map:contains($actions,tokenize(.,'\W')[1][matches(.,'\i\c*')])]">
>>
>> Clearly it doesn't like the zero length string.
>>
>> Warning at char 1 in xsl:template/@match on line 63 column 92
>> of *****.xsl:
>> XPTY0004 An error occurred matching pattern
>>
>> {element()[Q{http://www.w3.org/2005/xpath-functions/map}contains($actions
>> <http://www.w3.org/2005/xpath-functions/map%7Dcontains($actions>,
>> exactly-one((first(tokenize(convertUntyped(data(.)), "\W",
>> "")))[matches(., "\i\c*", "")]))]}:
>> Error at char 9 in expression in xsl:element/@name on line 67
>> column 55 of ******.xsl:
>> XTDE0820 Supplied element name is a zero-length string
>>
>> On Thu, Aug 13, 2020 at 6:40 PM Ihe Onwuka
>> <[email protected] <mailto:[email protected]>> wrote:
>>
>> I tried but cannot reconstruct a snippet that reproduces.
>> The hint as to what happened in my use case was the best
>> I could offer.
>>
>> On Thu, Aug 13, 2020 at 6:15 PM Michael Kay
>> <mike-JkSD5nQpfvpWk0Htik3J/[email protected] <mailto:mike-JkSD5nQpfvpWk0Htik3J/[email protected]>> wrote:
>>
>> If you post a repro that we can run, that's useful as
>> we can examine the error messages, see what's causing
>> them, and test any improvements. With only snippets
>> like this, there's not really any effective action we
>> can take.
>>
>> Michael Kay
>> Saxonica
>>
>>> On 13 Aug 2020, at 18:53, Ihe Onwuka
>>> <[email protected] <mailto:[email protected]>>
>>> wrote:
>>>
>>> I can tell you that the error went away when I
>>> eliminated the possibility of the context element
>>> being empty. I struggle to correlate that back to
>>> the error message that was displayed.
>>>
>>> On Thu, Aug 13, 2020 at 10:16 AM Graydon
>>> <[email protected] <mailto:[email protected]>>
>>> wrote:
>>>
>>> Both? The hints about what the optimizer thinks
>>> is happening are useful right up until I can't
>>> tell where the error is.
>>>
>>> On August 13, 2020 1:40:48 PM UTC, Michael Kay
>>> <mike-JkSD5nQpfvpWk0Htik3J/[email protected] <mailto:mike-JkSD5nQpfvpWk0Htik3J/[email protected]>>
>>> wrote:
>>> >Yes, we should probably retain the original
>>> pattern as a string rather
>>> >than trying to reconstitute it from the
>>> compiled form.
>>> >
>>> >Michael Kay
>>> >Saxonica
>>> >
>>> >> On 13 Aug 2020, at 13:52, Ihe Onwuka
>>> <[email protected]
>>> <mailto:[email protected]>> wrote:
>>> >>
>>> >> This is not my code.
>>> >>
>>> >> Warning at char 1 in xsl:template/@match on
>>> line 62 column 72 of
>>> >******.xsl:
>>> >> XPTY0004 An error occurred matching pattern
>>> >>
>>> >{element()[Q{http://www.w3.org/2005/xpath-functions/map}contains($actions
>>> <http://www.w3.org/2005/xpath-functions/map%7Dcontains($actions>
>>> ><http://www.w3.org/2005/xpath-functions/map%7Dcontains($actions>,
>>> >>
>>> exactly-one(first(tokenize(convertUntyped(data(.)),
>>> "\s", ""))))]}:
>>> >>
>>> >> My code was
>>> >>
>>> >>
>>> >> <xsl:template
>>> >match="*[map:contains($actions,tokenize(.,'\s')[1])]">
>>> >> _______________________________________________
>>> >> saxon-help mailing list archived at
>>> http://saxon.markmail.org/
>>> >> [email protected]
>>> <mailto:[email protected]>
>>> >>
>>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>>> >
>>> >_______________________________________________
>>> >saxon-help mailing list archived at
>>> http://saxon.markmail.org/
>>> >[email protected]
>>> <mailto:[email protected]>
>>> >https://lists.sourceforge.net/lists/listinfo/saxon-help
>>>
>>> -- Sent from my p≡p for
>>> Android._______________________________________________
>>> saxon-help mailing list archived at
>>> http://saxon.markmail.org/
>>> [email protected]
>>> <mailto:[email protected]>
>>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>>>
>>>
>>> _______________________________________________
>>> saxon-help mailing list archived at
>>> http://saxon.markmail.org/
>>> [email protected]
>>> <mailto:[email protected]>
>>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>>
>
>
>
> _______________________________________________
> saxon-help mailing list archived at http://saxon.markmail.org/
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/saxon-help
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[email protected]
https://lists.sourceforge.net/lists/listinfo/saxon-help