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: "Lucida Sans Unicode", "Lucida = Grande", sans-serif; font-size: 13.333333015441895px; = background-color: rgb(255, 255, 255);" 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.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: "Lucida Sans Unicode", "Lucida Grande", = sans-serif; font-size: 13.333333015441895px; background-color: rgb(255, = 255, 255);" 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.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: "Lucida Sans Unicode", = "Lucida Grande", sans-serif; font-size: 13.333333015441895px; = background-color: rgb(255, 255, 255);" class=3D"">, </span><b = style=3D"margin: 0px; padding: 0px; border: 0px; font-family: = "Lucida Sans Unicode", "Lucida Grande", 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: "Lucida Sans Unicode", "Lucida Grande", = sans-serif; font-size: 13.333333015441895px; background-color: rgb(255, = 255, 255);" class=3D"">, </span><b style=3D"margin: 0px; padding: = 0px; border: 0px; font-family: "Lucida Sans Unicode", = "Lucida Grande", 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: "Lucida Sans Unicode", "Lucida = Grande", sans-serif; font-size: 13.333333015441895px; = background-color: rgb(255, 255, 255);" class=3D"">, </span><b = style=3D"margin: 0px; padding: 0px; border: 0px; font-family: = "Lucida Sans Unicode", "Lucida Grande", 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: "Lucida = Sans Unicode", "Lucida Grande", sans-serif; font-size: = 13.333333015441895px; background-color: rgb(255, 255, 255);" 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.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: "Lucida Sans Unicode", = "Lucida Grande", sans-serif; font-size: 13.333333015441895px; = background-color: rgb(255, 255, 255);" 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"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 <<a = href=3D"mailto:[email protected]" = class=3D"">[email protected]</a>> 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 <<a = href=3D"mailto:[email protected]" = 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-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 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-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. </div><div class=3D""><br class=3D""></div><div class=3D"">{ = "name": ["Michael", "Kay"],</div><div class=3D""> <span = class=3D"Apple-converted-space"> </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"Apple-converted-space"> </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"> </span></div></div></div>___________= ____________________________________<br class=3D"">saxon-help mailing = list archived at<span class=3D"Apple-converted-space"> </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"> </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"> </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"> </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"> </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"> </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"> </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==--