Re: Whose error is it anyway
Ihe Onwuka <[email protected]>
| Newsgroups | gmane.text.xml.saxon.help |
|---|---|
| Message-ID | <CALfs7+yUW61siPAaY+vTWPHwC_dM+rsAE+HKvZePsWxuYb2sDg@mail.gmail.com> |
There is a type declaration of map(xs:string,xs:string) on the map $actions. So if a zero length key or value showed up.......... On Sat, Aug 15, 2020 at 3:43 PM Ihe Onwuka <[email protected]> wrote: > The value of $action as at time of error contained a forward slash. > > I can recreate and answer any other questions that may follow now. > > 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