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">&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: 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&nbsp;</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"">&nbsp;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--