Re: xml-to-json() function under SaxonJS

Michael Kay <mike-JkSD5nQpfvpWk0Htik3J/[email protected]> Wed, 22 Sep 2021 22:50:27 +0100
Newsgroups gmane.text.xml.saxon.help
Message-ID <[email protected]>
--===============6784395032477332246==
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_CC8EAA49-2148-48BF-8597-3F86CC5C72A6"


--Apple-Mail=_CC8EAA49-2148-48BF-8597-3F86CC5C72A6
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

What page are you looking at exactly? At

=
https://www.saxonica.com/saxon-js/documentation/index.html#!conformance/xs=
lt30

I read

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.

Michael Kay
Saxonica


> On 22 Sep 2021, at 18:11, Wendell Piez <[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... ...pellucidliterature.org... =
...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>

--Apple-Mail=_CC8EAA49-2148-48BF-8597-3F86CC5C72A6
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"">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" =
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"caret-color: rgb(61, 91, 150); color: rgb(61, =
91, 150); font-family: &quot;Lucida Sans Unicode&quot;, &quot;Lucida =
Grande&quot;, sans-serif; font-size: 13.333333015441895px; =
background-color: rgb(255, 255, 255);" class=3D"">Saxon-JS implements =
XSLT 3.0&nbsp;</span><b style=3D"margin: 0px; padding: 0px; border: 0px; =
font-family: &quot;Lucida Sans Unicode&quot;, &quot;Lucida Grande&quot;, =
sans-serif; font-size: 13.333333015441895px; font-stretch: inherit; =
line-height: inherit; vertical-align: baseline; caret-color: rgb(61, 91, =
150); color: rgb(61, 91, 150);" class=3D"">Basic</b><span =
style=3D"caret-color: rgb(61, 91, 150); color: rgb(61, 91, 150); =
font-family: &quot;Lucida Sans Unicode&quot;, &quot;Lucida Grande&quot;, =
sans-serif; font-size: 13.333333015441895px; background-color: rgb(255, =
255, 255);" class=3D"">&nbsp;Level, and several of the optional features =
that are not included in the W3C-defined Basic level - specifically =
the&nbsp;</span><b style=3D"margin: 0px; padding: 0px; border: 0px; =
font-family: &quot;Lucida Sans Unicode&quot;, &quot;Lucida Grande&quot;, =
sans-serif; font-size: 13.333333015441895px; font-stretch: inherit; =
line-height: inherit; vertical-align: baseline; caret-color: rgb(61, 91, =
150); color: rgb(61, 91, 150);" class=3D"">XSLT 1.0 backwards =
compatibility</b><span style=3D"caret-color: rgb(61, 91, 150); color: =
rgb(61, 91, 150); font-family: &quot;Lucida Sans Unicode&quot;, =
&quot;Lucida Grande&quot;, sans-serif; font-size: 13.333333015441895px; =
background-color: rgb(255, 255, 255);" class=3D"">,&nbsp;</span><b =
style=3D"margin: 0px; padding: 0px; border: 0px; font-family: =
&quot;Lucida Sans Unicode&quot;, &quot;Lucida Grande&quot;, sans-serif; =
font-size: 13.333333015441895px; font-stretch: inherit; line-height: =
inherit; vertical-align: baseline; caret-color: rgb(61, 91, 150); color: =
rgb(61, 91, 150);" class=3D"">Dynamic Evaluation</b><span =
style=3D"caret-color: rgb(61, 91, 150); color: rgb(61, 91, 150); =
font-family: &quot;Lucida Sans Unicode&quot;, &quot;Lucida Grande&quot;, =
sans-serif; font-size: 13.333333015441895px; background-color: rgb(255, =
255, 255);" class=3D"">,&nbsp;</span><b style=3D"margin: 0px; padding: =
0px; border: 0px; font-family: &quot;Lucida Sans Unicode&quot;, =
&quot;Lucida Grande&quot;, sans-serif; font-size: 13.333333015441895px; =
font-stretch: inherit; line-height: inherit; vertical-align: baseline; =
caret-color: rgb(61, 91, 150); color: rgb(61, 91, 150);" class=3D"">XPath =
3.1</b><span style=3D"caret-color: rgb(61, 91, 150); color: rgb(61, 91, =
150); font-family: &quot;Lucida Sans Unicode&quot;, &quot;Lucida =
Grande&quot;, sans-serif; font-size: 13.333333015441895px; =
background-color: rgb(255, 255, 255);" class=3D"">,&nbsp;</span><b =
style=3D"margin: 0px; padding: 0px; border: 0px; font-family: =
&quot;Lucida Sans Unicode&quot;, &quot;Lucida Grande&quot;, sans-serif; =
font-size: 13.333333015441895px; font-stretch: inherit; line-height: =
inherit; vertical-align: baseline; caret-color: rgb(61, 91, 150); color: =
rgb(61, 91, 150);" class=3D"">Serialization</b><span style=3D"caret-color:=
 rgb(61, 91, 150); color: rgb(61, 91, 150); font-family: &quot;Lucida =
Sans Unicode&quot;, &quot;Lucida Grande&quot;, sans-serif; font-size: =
13.333333015441895px; background-color: rgb(255, 255, 255);" class=3D"">, =
and&nbsp;</span><b style=3D"margin: 0px; padding: 0px; border: 0px; =
font-family: &quot;Lucida Sans Unicode&quot;, &quot;Lucida Grande&quot;, =
sans-serif; font-size: 13.333333015441895px; font-stretch: inherit; =
line-height: inherit; vertical-align: baseline; caret-color: rgb(61, 91, =
150); color: rgb(61, 91, 150);" class=3D"">Higher-Order =
Functions</b><span style=3D"caret-color: rgb(61, 91, 150); color: =
rgb(61, 91, 150); font-family: &quot;Lucida Sans Unicode&quot;, =
&quot;Lucida Grande&quot;, sans-serif; font-size: 13.333333015441895px; =
background-color: rgb(255, 255, 255);" class=3D"">&nbsp;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"caret-color: rgb(61, =
91, 150); 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"caret-color: rgb(61, 91, 150); =
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"caret-color: rgb(61, 91, 150); =
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"caret-color: rgb(61, =
91, 150); background-color: rgb(255, 255, 255);" class=3D""><br =
class=3D""></span></font><div><br class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D"">On 22 Sep 2021, at 18:11, Wendell Piez &lt;<a =
href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><meta =
charset=3D"UTF-8" class=3D""><div dir=3D"ltr" style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 13px; font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-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"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 13px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><div class=3D"gmail_quote" =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
13px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><div dir=3D"ltr" =
class=3D"gmail_attr">On Tue, Sep 21, 2021 at 3:02 PM Wendell Piez &lt;<a =
href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a>&gt; wrote:<br =
class=3D""></div><blockquote class=3D"gmail_quote" style=3D"margin: 0px =
0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; =
border-left-color: 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&nbsp;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 &lt;<a href=3D"mailto:[email protected]" =
target=3D"_blank" class=3D"">[email protected]</a>&gt; wrote:<br =
class=3D""></div><blockquote class=3D"gmail_quote" style=3D"margin: 0px =
0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; =
border-left-color: 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.&nbsp;</div><div class=3D""><br class=3D""></div><div class=3D"">{ =
"name": ["Michael", "Kay"],</div><div class=3D"">&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</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&gt; 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 &lt;<a =
href=3D"mailto:[email protected]" target=3D"_blank" =
class=3D"">[email protected]</a>&gt; 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"Apple-converted-space">&nbsp;</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"Apple-converted-space">&nbsp;</span></div></div></div>___________=
____________________________________<br class=3D"">saxon-help mailing =
list archived at<span class=3D"Apple-converted-space">&nbsp;</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"Apple-converted-space">&nbsp;</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"Apple-converted-space">&nbsp;</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"=
 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...<span =
class=3D"Apple-converted-space">&nbsp;</span></div></blockquote></div><br =
clear=3D"all" style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 13px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><div style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 13px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><br class=3D""></div><span style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 13px; font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">--<span class=3D"Apple-converted-space">&nbsp;</span></span><br=
 style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
13px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><div =
dir=3D"ltr" class=3D"gmail_signature" style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 13px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;">...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...<span =
class=3D"Apple-converted-space">&nbsp;</span></div><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
13px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" =
class=3D"">_______________________________________________</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
13px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
13px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" class=3D"">saxon-help mailing list archived =
at<span class=3D"Apple-converted-space">&nbsp;</span></span><a =
href=3D"http://saxon.markmail.org/" style=3D"font-family: Helvetica; =
font-size: 13px; font-style: normal; font-variant-caps: normal; =
font-weight: normal; letter-spacing: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;" =
class=3D"">http://saxon.markmail.org/</a><br style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 13px; font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><a =
href=3D"mailto:[email protected]" style=3D"font-family: =
Helvetica; font-size: 13px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;" =
class=3D"">[email protected]</a><br style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 13px; font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-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-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" =
class=3D"">https://lists.sourceforge.net/lists/listinfo/saxon-help</a><spa=
n style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
13px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" =
class=3D""></span></div></blockquote></div><br =
class=3D""></div></body></html>=

--Apple-Mail=_CC8EAA49-2148-48BF-8597-3F86CC5C72A6--


--===============6784395032477332246==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============6784395032477332246==
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 
--===============6784395032477332246==--