Re: XPath 3.1 F&O spec, and HTML ASCII case insensitive collation
Michael Kay <[email protected]> Fri, 18 Aug 2023 11:28:02 +0100
| Newsgroups | gmane.text.xml.devel |
|---|---|
| Message-ID | <[email protected]> |
--Apple-Mail=_0E29BA94-6D71-4296-9CA1-ABF569A46DC9 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii >>=20 >> (A lot of people are still using XSLT 1.0, which defines = format-number() with a normative reference to JDK 1.1 documentation, = which is no longer obtainable on the web, as far as I can tell. >=20 > Would that work ? > = https://www.cs.princeton.edu/courses/archive/fall97/cs461/jdkdocs/index.ht= ml = <https://www.cs.princeton.edu/courses/archive/fall97/cs461/jdkdocs/index.h= tml> >=20 > Jean-Christophe Helary=20 >=20 Useful but not sufficient. XSLT 1.0 says: The format pattern string is in the syntax specified by the JDK 1.1 = DecimalFormat = <http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.htm= l> class. The format pattern string is in a localized notation: the = decimal-format determines what characters have a special meaning in the = pattern (with the exception of the quote character, which is not = localized). The format pattern must not contain the currency sign = (#x00A4); support for this feature was added after the initial release = of JDK 1.1. So it's clear that the spec changed even during the life of JDK 1.1, and = working out exactly what's allowed and what isn't therefore needs much = more than a snapshot of the documentation at 1.1.4. Which is why we changed it in XSLT 2.0 to remove the dependency... At = the time we did that, the JDK 1.1 documentation was still online. But it = was still challenging, because the documentation was woefully imprecise = - people implementing XSLT processors in languages other than Java had a = pretty tough time. Michael Kay Saxonica --Apple-Mail=_0E29BA94-6D71-4296-9CA1-ABF569A46DC9 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""><div><blockquote type=3D"cite" class=3D""><div = class=3D""><blockquote type=3D"cite" style=3D"font-family: Helvetica; = font-size: 13px; font-style: normal; font-variant-caps: normal; = font-weight: 400; 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; text-decoration: none;" class=3D""><br = class=3D"">(A lot of people are still using XSLT 1.0, which defines = format-number() with a normative reference to JDK 1.1 documentation, = which is no longer obtainable on the web, as far as I can tell.<br = class=3D""></blockquote><br style=3D"caret-color: rgb(0, 0, 0); = font-family: Helvetica; font-size: 13px; font-style: normal; = font-variant-caps: normal; font-weight: 400; 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: 400; 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"">Would that work ?</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: 400; 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://www.cs.princeton.edu/courses/archive/fall97/cs461/jdkdocs/= index.html" style=3D"font-family: Helvetica; font-size: 13px; = font-style: normal; font-variant-caps: normal; font-weight: 400; = 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://www.cs.princeton.edu/courses/archive/fall97/cs461/jdkdo= cs/index.html</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: 400; 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 style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 13px; font-style: normal; font-variant-caps: = normal; font-weight: 400; 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: 400; 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"">Jean-Christophe= Helary<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: 400; = 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 = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 13px; font-style: normal; font-variant-caps: normal; font-weight: 400; = 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></blockquote><br class=3D""></div><div>Useful but not = sufficient. XSLT 1.0 says:</div><div><br class=3D""></div><div><i = class=3D""><span style=3D"font-family: sans-serif; font-size: medium; = background-color: rgb(255, 255, 255);" class=3D"">The format pattern = string is in the syntax specified by the JDK 1.1 </span><a = href=3D"http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFor= mat.html" style=3D"color: rgb(102, 0, 153); font-family: sans-serif;" = class=3D"">DecimalFormat</a><span style=3D"font-family: sans-serif; = font-size: medium; background-color: rgb(255, 255, 255);" = class=3D""> class. The format pattern string is in a localized = notation: the decimal-format determines what characters have a special = meaning in the pattern (with the exception of the quote character, which = is not localized). The format pattern must not contain the currency sign = (#x00A4); support for this feature was added after the initial release = of JDK 1.1.</span></i></div><div><span style=3D"font-family: sans-serif; = font-size: medium; background-color: rgb(255, 255, 255);" class=3D""><br = class=3D""></span></div><div><span style=3D"font-family: sans-serif; = font-size: medium; background-color: rgb(255, 255, 255);" class=3D"">So = it's clear that the spec changed even during the life of JDK 1.1, and = working out exactly what's allowed and what isn't therefore needs much = more than a snapshot of the documentation at = 1.1.4.</span></div><div><span style=3D"font-family: sans-serif; = font-size: medium; background-color: rgb(255, 255, 255);" class=3D""><br = class=3D""></span></div><div><span style=3D"font-family: sans-serif; = font-size: medium; background-color: rgb(255, 255, 255);" class=3D"">Which= is why we changed it in XSLT 2.0 to remove the dependency... At the = time we did that, the JDK 1.1 documentation was still online. But it was = still challenging, because the documentation was woefully imprecise - = people implementing XSLT processors in languages other than Java had a = pretty tough time.</span></div><div><span style=3D"font-family: = sans-serif; font-size: medium; background-color: rgb(255, 255, 255);" = class=3D""><br class=3D""></span></div><div><span style=3D"font-family: = sans-serif; font-size: medium; background-color: rgb(255, 255, 255);" = class=3D"">Michael Kay</span></div><div><span style=3D"font-family: = sans-serif; font-size: medium; background-color: rgb(255, 255, 255);" = class=3D"">Saxonica</span></div><br class=3D""></body></html>= --Apple-Mail=_0E29BA94-6D71-4296-9CA1-ABF569A46DC9--