Re: Whose error is it anyway
Ihe Onwuka <[email protected]>
| Newsgroups | gmane.text.xml.saxon.help |
|---|---|
| Message-ID | <CALfs7+wW8Jpm13mfDn8v1T7D4zOKs07=2D+=ScetZ7f+4wBcjw@mail.gmail.com> |
I don't know what it means. All I can tell you is what happened. The first error was when they were both \s. Changing to \W was an attempt to generalize the regex since I thought I wanted a more generalized delimiter. It turns out that is wrong for my application but it generated the error that I posted. When they were both \W I got invalid fork argument from the shell. It is evidently something to do with $action not being found in the map and or $action computed to a zero-length string. I can't pin it down more than that. On Fri, Aug 14, 2020 at 5:09 PM Trevor Nash <[email protected]> wrote: > 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]> 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]> 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]> 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, >>> 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]> 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]> 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]> 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]> 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]> >>>>>> 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]> 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>, >>>>>> >> 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] >>>>>> >> 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 >>>>>> >>>>>> -- Sent from my p≡p for >>>>>> Android._______________________________________________ >>>>>> 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 >>>>> >>>>> >>>>> >>> > > _______________________________________________ > saxon-help mailing list archived at http://saxon.markmail.org/[email protected]://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