Re: xml-to-json() function under SaxonJS
Michael Kay <mike-JkSD5nQpfvpWk0Htik3J/[email protected]> Thu, 23 Sep 2021 12:42:12 +0100
| Newsgroups | gmane.text.xml.saxon.help |
|---|---|
| Message-ID | <[email protected]> |
--===============5034785778194740282== Content-Type: multipart/alternative; boundary="Apple-Mail=_2D4A10FB-2637-4EE5-ADCF-1EB645F5B9FA" --Apple-Mail=_2D4A10FB-2637-4EE5-ADCF-1EB645F5B9FA Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii I guess what you're missing is that when talking about conformance, = "feature" is a technical term referring to one of the conformance = features in the spec. The serialize() function is part of the = Serialization feature, the xml-to-json() function is part of Basic = conformance. Michael Kay Saxonica > On 23 Sep 2021, at 01:09, Wendell Piez <[email protected]> wrote: >=20 > Hi Mike, >=20 > That's what I'm looking at exactly. I see "several of the optional = features" and I see "and not others". >=20 > There appears to be no mention of serialize() specifically, but then = no mention of xml-to-json() either. :-) >=20 > If what I should see is indenting (when the serialization option says = to indent), I will look again more closely at the code to see what could = be wrong. (That's exactly what I am trying to confirm.) >=20 > Thanks! Wendell >=20 >=20 > On Wed, Sep 22, 2021 at 6:10 PM Michael Kay <mike-JkSD5nQpfvpWk0Htik3J/[email protected] = <mailto:mike-JkSD5nQpfvpWk0Htik3J/[email protected]>> wrote: > What page are you looking at exactly? At >=20 > = https://www.saxonica.com/saxon-js/documentation/index.html#!conformance/xs= lt30 = <https://www.saxonica.com/saxon-js/documentation/index.html#!conformance/x= slt30> >=20 > I read >=20 > Saxon-JS implements XSLT 3.0 Basic Level, and several of the optional = features that are not included in the W3C-defined Basic level - = specifically the XSLT 1.0 backwards compatibility, Dynamic Evaluation, = XPath 3.1, Serialization, and Higher-Order Functions features, with = minor differences noted below. >=20 > Michael Kay > Saxonica >=20 >=20 >> On 22 Sep 2021, at 18:11, Wendell Piez <[email protected] = <mailto:[email protected]>> wrote: >>=20 >> Hi again, >>=20 >> Today I write just to double check the same question on the = serialize() function, and where at the top of the page at = /conformance/xslt30 it says it does not implement the serialization = spec, I should take that to mean I am my own also with formatting = serialized XML on the page? >>=20 >> I can live with this (indeed it gives me some control I would like -- = I try to look at the bright side of things) but again I wanted to make = sure I am not missing anything. >>=20 >> Thanks, >> Wendell >>=20 >>=20 >>=20 >>=20 >> On Tue, Sep 21, 2021 at 3:02 PM Wendell Piez <[email protected] = <mailto:[email protected]>> wrote: >> Hello Mike and Martin, >>=20 >> Thank you for confirming this. It's the escaping even more than the = indentation that worries me. >>=20 >> In my experience, there is no set of whitespace rules that everyone = will agree is ideal or even very nice. But it is also not so difficult = to do better than the brick. >>=20 >> I will definitely look at that XSLT (in the spec). I could perhaps = use Javascript .stringify except I would like to inject the raw JSON for = display into the page, which is so easy to do in SaxonJS. Indeed, in = this case I am afraid the 'right way' is to do it in XSLT. A variant = could produce markup for syntax coloring. >>=20 >> Thanks, Wendell >>=20 >>=20 >> On Tue, Sep 21, 2021 at 12:02 PM Michael Kay <[email protected] = <mailto:[email protected]>> wrote: >> Confirmed, we haven't implemented indent:yes in the JSON serializer = in Saxon-JS. >>=20 >> Doing a nice indentation algorithm is actually quite tricky, and we = like to keep the code small, but I guess doing a simple-minded = indentation might be better than none at all. The main complication is = deciding when it makes sense to put things on the same line, e.g.=20 >>=20 >> { "name": ["Michael", "Kay"], >> "company": "Saxonica" >> } >>=20 >> It would be tempting to just generate the JSON and then call parse =3D>= stringify, but that would almost certainly apply escaping rules that = make the result non-conformant. >>=20 >> Michael Kay >> Saxonica >>=20 >>> On 21 Sep 2021, at 15:12, Wendell Piez <[email protected] = <mailto:[email protected]>> wrote: >>>=20 >>> Hello Saxonians, >>>=20 >>> Today I am a bit surprised to find I get no luck, using SaxonJS in = the browser, when trying to serialize JSON as anything but a data brick, = when produced by the function xml-to-json(). It is supposed to accept = $options and 'indent' is the option available, but unless I am missing = something, map{ 'indent':true() } is not operative. >>>=20 >>> The documentation says that the function json-to-xml() does not = support $options but xml-to-json() is not mentioned. Can I confirm that = it is (not) user error that is preventing me from getting the JSON = indented, instead of prettified? >>>=20 >>> If this is not supported what is the recommended workaround: perhaps = a JSON serializer is not so hard to write? (I have not thought about it = much.) >>>=20 >>> Thanks for any insight or advice, >>> Wendell >>>=20 >>> --=20 >>> ...Wendell Piez... ...wendell -at- nist -dot- gov... >>> ...wendellpiez.com <http://wendellpiez.com/>... = ...pellucidliterature.org <http://pellucidliterature.org/>... = ...pausepress.org <http://pausepress.org/>... >>> ...github.com/wendellpiez. <http://github.com/wendellpiez.>.. = ...gitlab.coko.foundation/wendell...=20 >>> _______________________________________________ >>> saxon-help mailing list archived at http://saxon.markmail.org/ = <http://saxon.markmail.org/> >>> [email protected] = <mailto:[email protected]> >>> https://lists.sourceforge.net/lists/listinfo/saxon-help = <https://lists.sourceforge.net/lists/listinfo/saxon-help> >> _______________________________________________ >> saxon-help mailing list archived at http://saxon.markmail.org/ = <http://saxon.markmail.org/> >> [email protected] = <mailto:[email protected]> >> https://lists.sourceforge.net/lists/listinfo/saxon-help = <https://lists.sourceforge.net/lists/listinfo/saxon-help> >>=20 >> --=20 >> ...Wendell Piez... ...wendell -at- nist -dot- gov... >> ...wendellpiez.com <http://wendellpiez.com/>... = ...pellucidliterature.org <http://pellucidliterature.org/>... = ...pausepress.org <http://pausepress.org/>... >> ...github.com/wendellpiez. <http://github.com/wendellpiez.>.. = ...gitlab.coko.foundation/wendell...=20 >>=20 >>=20 >> --=20 >> ...Wendell Piez... ...wendell -at- nist -dot- gov... >> ...wendellpiez.com <http://wendellpiez.com/>... = ...pellucidliterature.org <http://pellucidliterature.org/>... = ...pausepress.org <http://pausepress.org/>... >> ...github.com/wendellpiez. <http://github.com/wendellpiez.>.. = ...gitlab.coko.foundation/wendell...=20 >> _______________________________________________ >> saxon-help mailing list archived at http://saxon.markmail.org/ = <http://saxon.markmail.org/> >> [email protected] = <mailto:[email protected]> >> https://lists.sourceforge.net/lists/listinfo/saxon-help = <https://lists.sourceforge.net/lists/listinfo/saxon-help> > _______________________________________________ > saxon-help mailing list archived at http://saxon.markmail.org/ = <http://saxon.markmail.org/> > [email protected] = <mailto:[email protected]> > https://lists.sourceforge.net/lists/listinfo/saxon-help = <https://lists.sourceforge.net/lists/listinfo/saxon-help> >=20 > --=20 > ...Wendell Piez... ...wendell -at- nist -dot- gov... > ...wendellpiez.com... ...pellucidliterature.org... = ...pausepress.org... > ...github.com/wendellpiez. <http://github.com/wendellpiez.>.. = ...gitlab.coko.foundation/wendell... > _______________________________________________ > saxon-help mailing list archived at http://saxon.markmail.org/ > [email protected] > https://lists.sourceforge.net/lists/listinfo/saxon-help --Apple-Mail=_2D4A10FB-2637-4EE5-ADCF-1EB645F5B9FA Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; = charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">I = guess what you're missing is that when talking about conformance, = "feature" is a technical term referring to one of the conformance = features in the spec. The serialize() function is part of the = Serialization feature, the xml-to-json() function is part of Basic = conformance.<div class=3D""><br class=3D""></div><div class=3D"">Michael = Kay</div><div class=3D"">Saxonica<br class=3D""><div><br = class=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">On 23 = Sep 2021, at 01:09, Wendell Piez <<a = href=3D"mailto:[email protected]" = class=3D"">[email protected]</a>> wrote:</div><br = class=3D"Apple-interchange-newline"><div class=3D""><div dir=3D"ltr" = class=3D"">Hi Mike,<div class=3D""><br class=3D""></div><div = class=3D"">That's what I'm looking at exactly. I see "several of the = optional features" and I see "and not others".<div class=3D""><br = class=3D""></div><div class=3D"">There appears to be no mention of = serialize() specifically, but then no mention of xml-to-json() either. = :-)</div><div class=3D""><br class=3D""></div><div class=3D"">If what I = should see is indenting (when the serialization option says to indent), = I will look again more closely at the code to see what could be wrong. = (That's exactly what I am trying to confirm.)</div><div class=3D""><br = class=3D""></div><div class=3D"">Thanks! Wendell</div></div><div = class=3D""><br class=3D""></div></div><br class=3D""><div = class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Sep = 22, 2021 at 6:10 PM Michael Kay <<a href=3D"mailto:mike-JkSD5nQpfvpWk0Htik3J/[email protected]" = target=3D"_blank" class=3D"">mike-JkSD5nQpfvpWk0Htik3J/[email protected]</a>> wrote:<br = class=3D""></div><blockquote class=3D"gmail_quote" style=3D"margin:0px = 0px 0px 0.8ex;border-left:1px solid = rgb(204,204,204);padding-left:1ex"><div class=3D"">What page are you = looking at exactly? At<div class=3D""><br class=3D""></div><div = class=3D""><a = href=3D"https://www.saxonica.com/saxon-js/documentation/index.html#!confor= mance/xslt30" target=3D"_blank" = class=3D"">https://www.saxonica.com/saxon-js/documentation/index.html#!con= formance/xslt30</a></div><div class=3D""><br class=3D""></div><div = class=3D"">I read</div><div class=3D""><br class=3D""></div><div = class=3D""><span style=3D"color:rgb(61,91,150);font-family:"Lucida = Sans Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;background-color:rgb(255,255,2= 55)" class=3D"">Saxon-JS implements XSLT 3.0 </span><b = style=3D"margin:0px;padding:0px;border:0px;font-family:"Lucida Sans = Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;font-stretch:inherit;line-heig= ht:inherit;vertical-align:baseline;color:rgb(61,91,150)" = class=3D"">Basic</b><span = style=3D"color:rgb(61,91,150);font-family:"Lucida Sans = Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;background-color:rgb(255,255,2= 55)" class=3D""> Level, and several of the optional features that = are not included in the W3C-defined Basic level - specifically = the </span><b = style=3D"margin:0px;padding:0px;border:0px;font-family:"Lucida Sans = Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;font-stretch:inherit;line-heig= ht:inherit;vertical-align:baseline;color:rgb(61,91,150)" class=3D"">XSLT = 1.0 backwards compatibility</b><span = style=3D"color:rgb(61,91,150);font-family:"Lucida Sans = Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;background-color:rgb(255,255,2= 55)" class=3D"">, </span><b = style=3D"margin:0px;padding:0px;border:0px;font-family:"Lucida Sans = Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;font-stretch:inherit;line-heig= ht:inherit;vertical-align:baseline;color:rgb(61,91,150)" = class=3D"">Dynamic Evaluation</b><span = style=3D"color:rgb(61,91,150);font-family:"Lucida Sans = Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;background-color:rgb(255,255,2= 55)" class=3D"">, </span><b = style=3D"margin:0px;padding:0px;border:0px;font-family:"Lucida Sans = Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;font-stretch:inherit;line-heig= ht:inherit;vertical-align:baseline;color:rgb(61,91,150)" class=3D"">XPath = 3.1</b><span style=3D"color:rgb(61,91,150);font-family:"Lucida Sans = Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;background-color:rgb(255,255,2= 55)" class=3D"">, </span><b = style=3D"margin:0px;padding:0px;border:0px;font-family:"Lucida Sans = Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;font-stretch:inherit;line-heig= ht:inherit;vertical-align:baseline;color:rgb(61,91,150)" = class=3D"">Serialization</b><span = style=3D"color:rgb(61,91,150);font-family:"Lucida Sans = Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;background-color:rgb(255,255,2= 55)" class=3D"">, and </span><b = style=3D"margin:0px;padding:0px;border:0px;font-family:"Lucida Sans = Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;font-stretch:inherit;line-heig= ht:inherit;vertical-align:baseline;color:rgb(61,91,150)" = class=3D"">Higher-Order Functions</b><span = style=3D"color:rgb(61,91,150);font-family:"Lucida Sans = Unicode","Lucida = Grande",sans-serif;font-size:13.3333px;background-color:rgb(255,255,2= 55)" class=3D""> features, with minor differences noted = below.</span></div><div class=3D""><font color=3D"#3d5b96" face=3D"Lucida = Sans Unicode, Lucida Grande, sans-serif" size=3D"2" class=3D""><span = style=3D"background-color:rgb(255,255,255)" class=3D""><br = class=3D""></span></font></div><div class=3D""><font color=3D"#3d5b96" = face=3D"Lucida Sans Unicode, Lucida Grande, sans-serif" size=3D"2" = class=3D""><span style=3D"background-color:rgb(255,255,255)" = class=3D"">Michael Kay</span></font></div><div class=3D""><font = color=3D"#3d5b96" face=3D"Lucida Sans Unicode, Lucida Grande, = sans-serif" size=3D"2" class=3D""><span = style=3D"background-color:rgb(255,255,255)" = class=3D"">Saxonica</span></font></div><div class=3D""><font = color=3D"#3d5b96" face=3D"Lucida Sans Unicode, Lucida Grande, = sans-serif" size=3D"2" class=3D""><span = style=3D"background-color:rgb(255,255,255)" class=3D""><br = class=3D""></span></font><div class=3D""><br class=3D""><blockquote = type=3D"cite" class=3D""><div class=3D"">On 22 Sep 2021, at 18:11, = Wendell Piez <<a href=3D"mailto:[email protected]" = target=3D"_blank" class=3D"">[email protected]</a>> = wrote:</div><br class=3D""><div class=3D""><div dir=3D"ltr" = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none" class=3D"">Hi again,<div class=3D""><br = class=3D""></div><div class=3D"">Today I write just to double check the = same question on the serialize() function, and where at the top of the = page at /conformance/xslt30 it says it does not implement the = serialization spec, I should take that to mean I am my own also with = formatting serialized XML on the page?</div><div class=3D""><br = class=3D""></div><div class=3D"">I can live with this (indeed it gives = me some control I would like -- I try to look at the bright side of = things) but again I wanted to make sure I am not missing = anything.</div><div class=3D""><br class=3D""></div><div = class=3D"">Thanks,</div><div class=3D"">Wendell</div><div class=3D""><br = class=3D""></div><div class=3D""><br class=3D""></div><div class=3D""><br = class=3D""></div></div><br = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none" class=3D""><div class=3D"gmail_quote" = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Sep 21, = 2021 at 3:02 PM Wendell Piez <<a href=3D"mailto:[email protected]"= target=3D"_blank" class=3D"">[email protected]</a>> wrote:<br = class=3D""></div><blockquote class=3D"gmail_quote" style=3D"margin:0px = 0px 0px 0.8ex;border-left:1px solid = rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr" class=3D"">Hello = Mike and Martin,<div class=3D""><br class=3D""></div><div class=3D"">Thank= you for confirming this. It's the escaping even more than the = indentation that worries me.</div><div class=3D""><br = class=3D""></div><div class=3D"">In my experience, there is no set of = whitespace rules that everyone will agree is ideal or even very nice. = But it is also not so difficult to do better than the = brick.</div><div class=3D""><br class=3D""></div><div class=3D"">I will = definitely look at that XSLT (in the spec). I could perhaps use = Javascript .stringify except I would like to inject the raw JSON for = display into the page, which is so easy to do in SaxonJS. Indeed, in = this case I am afraid the 'right way' is to do it in XSLT. A variant = could produce markup for syntax coloring.</div><div class=3D""><br = class=3D""></div><div class=3D"">Thanks, Wendell</div><div class=3D""><br = class=3D""></div></div><br class=3D""><div class=3D"gmail_quote"><div = dir=3D"ltr" class=3D"gmail_attr">On Tue, Sep 21, 2021 at 12:02 PM = Michael Kay <<a href=3D"mailto:[email protected]" = target=3D"_blank" class=3D"">[email protected]</a>> wrote:<br = class=3D""></div><blockquote class=3D"gmail_quote" style=3D"margin:0px = 0px 0px 0.8ex;border-left:1px solid = rgb(204,204,204);padding-left:1ex"><div class=3D"">Confirmed, we haven't = implemented indent:yes in the JSON serializer in Saxon-JS.<div = class=3D""><br class=3D""></div><div class=3D"">Doing a nice indentation = algorithm is actually quite tricky, and we like to keep the code small, = but I guess doing a simple-minded indentation might be better than none = at all. The main complication is deciding when it makes sense to put = things on the same line, e.g. </div><div class=3D""><br = class=3D""></div><div class=3D"">{ "name": ["Michael", "Kay"],</div><div = class=3D""> <span class=3D""> </span>"company": = "Saxonica"</div><div class=3D"">}</div><div class=3D""><br = class=3D""></div><div class=3D"">It would be tempting to just generate = the JSON and then call parse =3D> stringify, but that would almost = certainly apply escaping rules that make the result = non-conformant.</div><div class=3D""><br class=3D""></div><div = class=3D"">Michael Kay</div><div class=3D"">Saxonica</div><div = class=3D""><div class=3D""><br class=3D""><blockquote type=3D"cite" = class=3D""><div class=3D"">On 21 Sep 2021, at 15:12, Wendell Piez <<a = href=3D"mailto:[email protected]" target=3D"_blank" = class=3D"">[email protected]</a>> wrote:</div><br class=3D""><div = class=3D""><div dir=3D"ltr" class=3D"">Hello Saxonians,<div class=3D""><br= class=3D""></div><div class=3D"">Today I am a bit surprised to find I = get no luck, using SaxonJS in the browser, when trying to serialize JSON = as anything but a data brick, when produced by the function = xml-to-json(). It is supposed to accept $options and 'indent' is the = option available, but unless I am missing something, map{ = 'indent':true() } is not operative.</div><div class=3D""><br = class=3D""></div><div class=3D"">The documentation says that the = function json-to-xml() does not support $options but xml-to-json() is = not mentioned. Can I confirm that it is (not) user error that is = preventing me from getting the JSON indented, instead of = prettified?</div><div class=3D""><br class=3D""></div><div class=3D"">If = this is not supported what is the recommended workaround: perhaps a JSON = serializer is not so hard to write? (I have not thought about it = much.)</div><div class=3D""><br class=3D""></div><div class=3D"">Thanks = for any insight or advice,</div><div class=3D"">Wendell<br clear=3D"all" = class=3D""><div class=3D""><br class=3D""></div>--<span = class=3D""> </span><br class=3D""><div dir=3D"ltr" = class=3D"">...Wendell Piez... ...wendell -at- nist -dot- gov...<br = class=3D"">...<a href=3D"http://wendellpiez.com/" target=3D"_blank" = class=3D"">wendellpiez.com</a>... ...<a = href=3D"http://pellucidliterature.org/" target=3D"_blank" = class=3D"">pellucidliterature.org</a>... ...<a = href=3D"http://pausepress.org/" target=3D"_blank" = class=3D"">pausepress.org</a>...<br class=3D"">...<a = href=3D"http://github.com/wendellpiez." target=3D"_blank" = class=3D"">github.com/wendellpiez.</a>.. = ...gitlab.coko.foundation/wendell...<span = class=3D""> </span></div></div></div>________________________________= _______________<br class=3D"">saxon-help mailing list archived at<span = class=3D""> </span><a href=3D"http://saxon.markmail.org/" = target=3D"_blank" class=3D"">http://saxon.markmail.org/</a><br = class=3D""><a href=3D"mailto:[email protected]" = target=3D"_blank" class=3D"">[email protected]</a><br = class=3D""><a = href=3D"https://lists.sourceforge.net/lists/listinfo/saxon-help" = target=3D"_blank" = class=3D"">https://lists.sourceforge.net/lists/listinfo/saxon-help</a></di= v></blockquote></div><br = class=3D""></div></div>_______________________________________________<br = class=3D"">saxon-help mailing list archived at<span = class=3D""> </span><a href=3D"http://saxon.markmail.org/" = rel=3D"noreferrer" target=3D"_blank" = class=3D"">http://saxon.markmail.org/</a><br class=3D""><a = href=3D"mailto:[email protected]" target=3D"_blank" = class=3D"">[email protected]</a><br class=3D""><a = href=3D"https://lists.sourceforge.net/lists/listinfo/saxon-help" = rel=3D"noreferrer" target=3D"_blank" = class=3D"">https://lists.sourceforge.net/lists/listinfo/saxon-help</a></bl= ockquote></div><br clear=3D"all" class=3D""><div class=3D""><br = class=3D""></div>--<span class=3D""> </span><br class=3D""><div = dir=3D"ltr" class=3D"">...Wendell Piez... ...wendell -at- nist -dot- = gov...<br class=3D"">...<a href=3D"http://wendellpiez.com/" = target=3D"_blank" class=3D"">wendellpiez.com</a>... ...<a = href=3D"http://pellucidliterature.org/" target=3D"_blank" = class=3D"">pellucidliterature.org</a>... ...<a = href=3D"http://pausepress.org/" target=3D"_blank" = class=3D"">pausepress.org</a>...<br class=3D"">...<a = href=3D"http://github.com/wendellpiez." target=3D"_blank" = class=3D"">github.com/wendellpiez.</a>.. = ...gitlab.coko.foundation/wendell...<span = class=3D""> </span></div></blockquote></div><br clear=3D"all" = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none" class=3D""><div = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none" class=3D""><br class=3D""></div><span = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none;float:none;display:inline" class=3D"">--<span = class=3D""> </span></span><br = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none" class=3D""><div dir=3D"ltr" = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none" class=3D"">...Wendell Piez... ...wendell -at- nist = -dot- gov...<br class=3D"">...<a href=3D"http://wendellpiez.com/" = target=3D"_blank" class=3D"">wendellpiez.com</a>... ...<a = href=3D"http://pellucidliterature.org/" target=3D"_blank" = class=3D"">pellucidliterature.org</a>... ...<a = href=3D"http://pausepress.org/" target=3D"_blank" = class=3D"">pausepress.org</a>...<br class=3D"">...<a = href=3D"http://github.com/wendellpiez." target=3D"_blank" = class=3D"">github.com/wendellpiez.</a>.. = ...gitlab.coko.foundation/wendell...<span = class=3D""> </span></div><span = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none;float:none;display:inline" = class=3D"">_______________________________________________</span><br = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none" class=3D""><span = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none;float:none;display:inline" class=3D"">saxon-help = mailing list archived at<span class=3D""> </span></span><a = href=3D"http://saxon.markmail.org/" = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" = target=3D"_blank" class=3D"">http://saxon.markmail.org/</a><br = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none" class=3D""><a = href=3D"mailto:[email protected]" = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" = target=3D"_blank" class=3D"">[email protected]</a><br = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none" class=3D""><a = href=3D"https://lists.sourceforge.net/lists/listinfo/saxon-help" = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" = target=3D"_blank" = class=3D"">https://lists.sourceforge.net/lists/listinfo/saxon-help</a><spa= n = style=3D"font-family:Helvetica;font-size:13px;font-style:normal;font-varia= nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t= ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;tex= t-decoration:none;float:none;display:inline" = class=3D""></span></div></blockquote></div><br = class=3D""></div></div>_______________________________________________<br = class=3D""> saxon-help mailing list archived at <a href=3D"http://saxon.markmail.org/"= rel=3D"noreferrer" target=3D"_blank" = class=3D"">http://saxon.markmail.org/</a><br class=3D""> <a href=3D"mailto:[email protected]" target=3D"_blank" = class=3D"">[email protected]</a><br class=3D""> <a href=3D"https://lists.sourceforge.net/lists/listinfo/saxon-help" = rel=3D"noreferrer" target=3D"_blank" = class=3D"">https://lists.sourceforge.net/lists/listinfo/saxon-help</a> = </blockquote></div><br clear=3D"all" class=3D""><div class=3D""><br = class=3D""></div>-- <br class=3D""><div dir=3D"ltr" class=3D"">...Wendell = Piez... ...wendell -at- nist -dot- gov...<br class=3D"">...<a = href=3D"http://wendellpiez.com" class=3D"">wendellpiez.com</a>... ...<a = href=3D"http://pellucidliterature.org" = class=3D"">pellucidliterature.org</a>... ...<a = href=3D"http://pausepress.org" class=3D"">pausepress.org</a>...<br = class=3D"">...<a href=3D"http://github.com/wendellpiez." target=3D"_blank"= class=3D"">github.com/wendellpiez.</a>.. = ...gitlab.coko.foundation/wendell... </div> _______________________________________________<br class=3D"">saxon-help = mailing list archived at <a href=3D"http://saxon.markmail.org/" = class=3D"">http://saxon.markmail.org/</a><br class=3D""><a = href=3D"mailto:[email protected]" = class=3D"">[email protected]</a><br = class=3D"">https://lists.sourceforge.net/lists/listinfo/saxon-help = </div></blockquote></div><br class=3D""></div></body></html>= --Apple-Mail=_2D4A10FB-2637-4EE5-ADCF-1EB645F5B9FA-- --===============5034785778194740282== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --===============5034785778194740282== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ saxon-help mailing list archived at http://saxon.markmail.org/ [email protected] https://lists.sourceforge.net/lists/listinfo/saxon-help --===============5034785778194740282==--