Subject: Re: [xsl] Algorithm for setting a variable number of attributes From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 2 Aug 2022 21:43:51 -0000 |
On 02.08.2022 23:35, Martin Honnen martin.honnen@xxxxxx wrote: > > > On 02.08.2022 22:11, Steven D. Majewski steve.majewski@xxxxxxxxx wrote: >> >> Not a direct answer to this question, but I was just thinking, while >> going thru the Invisible XML https://invisiblexml.org intro and >> tutorial that it would sure be handy if the parser was a callable >> function from XSLT or XQuery b writing a grammar for things like >> human written variations of dates would be nicer to deal with than >> regex code. There are XQuery and XSLT implementations, so maybe itbs >> doable. > > > Right, online sample using Saxon HE Java 11 and Norman's Coffeepot is > at this link > <https://martin-honnen.github.io/xml-workbench/?code=%3C%3Fxml+version%3D%221 .0%22+encoding%3D%22utf-8%22%3F%3E%0A%3Cxsl%3Astylesheet+xmlns%3Axsl%3D%22htt p%3A%2F%2Fwww.w3.org%2F1999%2FXSL%2FTransform%22%0A++version%3D%223.0%22%0A++ xmlns%3Axs%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%22%0A++xmlns%3Acs% 3D%22http%3A%2F%2Fnineml.com%2Fns%2Fcoffeesacks%22%0A++exclude-result-prefixe s%3D%22%23all%22%0A++expand-text%3D%22yes%22%3E%0A++%0A++%3Cxsl%3Atemplate+ma tch%3D%22subtask%22%3E%0A++++%3Cxsl%3Acopy%3E%0A++++++%3Cxsl%3Aapply-template s+select%3D%22cs%3Aparse-string%28cs%3Agrammar-string%28%24grammar%29%2C+.%29 %2Fnode%28%29%22+mode%3D%22attributes%22%2F%3E%0A++++%3C%2Fxsl%3Acopy%3E%0A++ %3C%2Fxsl%3Atemplate%3E%0A++%0A++%3Cxsl%3Aoutput+method%3D%22xml%22+indent%3D %22yes%22%2F%3E%0A%0A++%3Cxsl%3Amode+on-no-match%3D%22shallow-copy%22%2F%3E%0 A++%0A++%3Cxsl%3Amode+name%3D%22attributes%22+on-no-match%3D%22shallow-skip%2 2%2F%3E%0A++%0A++%3Cxsl%3Atemplate+match%3D%22result%2F*%22+mode%3D%22attribu tes%22%3E%0A++++%3Cxsl%3Aattribute+name%3D%22%7Blocal-name%28%29%7D%22+select %3D%22.%22%2F%3E%0A++%3C%2Fxsl%3Atemplate%3E%0A%0A++%3Cxsl%3Atemplate+match%3 D%22%2F%22+name%3D%22xsl%3Ainitial-template%22%3E%0A++++%3Cxsl%3Anext-match%2 F%3E%0A++++%3Cxsl%3Acomment%3ERun+with+%7Bsystem-property%28%27xsl%3Aproduct- name%27%29%7D+%7Bsystem-property%28%27xsl%3Aproduct-version%27%29%7D+%7Bsyste m-property%28%27Q%7Bhttp%3A%2F%2Fsaxon.sf.net%2F%7Dplatform%27%29%7D%3C%2Fxsl %3Acomment%3E%0A++%3C%2Fxsl%3Atemplate%3E%0A%0A++%3Cxsl%3Aparam+name%3D%22gra mmar%22+as%3D%22xs%3Astring%22+expand-text%3D%22no%22%3Eresult+%3D+-%5B%27A%2 7-%27Z%27%5D%2B%2C+-space%2C+chapnbr%2C+-delimiter%2C+sectnbr%2C+-delimiter%2 C+subnbr%2C+-delimiter%2C+func%2C+-delimiter%2C+seq%2C+-space%2C+-delimiter%2 C+-space%2C+%27%28%27%2C+revdate%2C+%27%29%27.%0Adelimiter+%3D+%27-%27.%0Aspa ce+%3D+%27+%27.%0Achapnbr+%3D+%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D.% 0Asectnbr+%3D+%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D.%0Asubnbr+%3D+%5B %270%27-%279%27%5D%2C%5B%270%27-%279%27%5D.%0Afunc+%3D+%5B%270%27-%279%27%5D% 2C%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D.%0Aseq+%3D+%5B%270%27-%279%27 %5D%2C%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D.%0Arevdate+%3D+%5B%270%27 -%279%27%5D%2C%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D%2C%5B%270%27-%279 %27%5D%2C%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5 D%2C%5B%270%27-%279%27%5D.%3C%2Fxsl%3Aparam%3E%0A%0A%3C%2Fxsl%3Astylesheet%3E %0A&input=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A%3Croo t%3E%0A++%3Csubtask%3ESUBTASK+25-31-04-714-080+-+%2820130315%29%3C%2Fsubtask% 3E%0A%3C%2Froot%3E%0A&code-type=XSLT&input-type=XML>. > Or, with a grammar directly creating the attributes, the sample is here <https://martin-honnen.github.io/xml-workbench/?code=%3C%3Fxml+version%3D%221 .0%22+encoding%3D%22utf-8%22%3F%3E%0A%3Cxsl%3Astylesheet+xmlns%3Axsl%3D%22htt p%3A%2F%2Fwww.w3.org%2F1999%2FXSL%2FTransform%22%0A++version%3D%223.0%22%0A++ xmlns%3Axs%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%22%0A++xmlns%3Acs% 3D%22http%3A%2F%2Fnineml.com%2Fns%2Fcoffeesacks%22%0A++exclude-result-prefixe s%3D%22%23all%22%0A++expand-text%3D%22yes%22%3E%0A++%0A++%3Cxsl%3Atemplate+ma tch%3D%22subtask%22%3E%0A++++%3Cxsl%3Acopy%3E%0A++++++%3Cxsl%3Aapply-template s+select%3D%22cs%3Aparse-string%28cs%3Agrammar-string%28%24grammar%29%2C+.%29 %2Fnode%28%29%22+mode%3D%22attributes%22%2F%3E%0A++++%3C%2Fxsl%3Acopy%3E%0A++ %3C%2Fxsl%3Atemplate%3E%0A++%0A++%3Cxsl%3Aoutput+method%3D%22xml%22+indent%3D %22yes%22%2F%3E%0A%0A++%3Cxsl%3Amode+on-no-match%3D%22shallow-copy%22%2F%3E%0 A++%0A++%3Cxsl%3Amode+name%3D%22attributes%22+on-no-match%3D%22shallow-skip%2 2%2F%3E%0A++%0A++%3Cxsl%3Atemplate+match%3D%22%40*%22+mode%3D%22attributes%22 %3E%0A++++%3Cxsl%3Acopy%2F%3E%0A++%3C%2Fxsl%3Atemplate%3E%0A%0A++%3Cxsl%3Atem plate+match%3D%22%2F%22+name%3D%22xsl%3Ainitial-template%22%3E%0A++++%3Cxsl%3 Anext-match%2F%3E%0A++++%3Cxsl%3Acomment%3ERun+with+%7Bsystem-property%28%27x sl%3Aproduct-name%27%29%7D+%7Bsystem-property%28%27xsl%3Aproduct-version%27%2 9%7D+%7Bsystem-property%28%27Q%7Bhttp%3A%2F%2Fsaxon.sf.net%2F%7Dplatform%27%2 9%7D%3C%2Fxsl%3Acomment%3E%0A++%3C%2Fxsl%3Atemplate%3E%0A%0A++%3Cxsl%3Aparam+ name%3D%22grammar%22+as%3D%22xs%3Astring%22+expand-text%3D%22no%22%3Eresult+% 3D+-%5B%27A%27-%27Z%27%5D%2B%2C+-space%2C+chapnbr%2C+-delimiter%2C+sectnbr%2C +-delimiter%2C+subnbr%2C+-delimiter%2C+func%2C+-delimiter%2C+seq%2C+-space%2C +-delimiter%2C+-space%2C+%27%28%27%2C+revdate%2C+%27%29%27.%0Adelimiter+%3D+% 27-%27.%0Aspace+%3D+%27+%27.%0A%40chapnbr+%3D+%5B%270%27-%279%27%5D%2C%5B%270 %27-%279%27%5D.%0A%40sectnbr+%3D+%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5 D.%0A%40subnbr+%3D+%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D.%0A%40func+% 3D+%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D.%0A% 40seq+%3D+%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27% 5D.%0A%40revdate+%3D+%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D%2C%5B%270% 27-%279%27%5D%2C%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D%2C%5B%270%27-%2 79%27%5D%2C%5B%270%27-%279%27%5D%2C%5B%270%27-%279%27%5D.%3C%2Fxsl%3Aparam%3E %0A%0A%3C%2Fxsl%3Astylesheet%3E%0A&input=%3C%3Fxml+version%3D%221.0%22+encodi ng%3D%22UTF-8%22%3F%3E%0A%3Croot%3E%0A++%3Csubtask%3ESUBTASK+25-31-04-714-080 +-+%2820130315%29%3C%2Fsubtask%3E%0A%3C%2Froot%3E%0A&code-type=XSLT&input-typ e=XML>.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Algorithm for setting a v, Martin Honnen martin | Thread | Re: [xsl] Algorithm for setting a v, Joel Kalvesmaki dire |
Re: [xsl] Algorithm for setting a v, Martin Honnen martin | Date | Re: [xsl] Algorithm for setting a v, Joel Kalvesmaki dire |
Month |