Re: XPath 3.1 F&O spec, and HTML ASCII case insensitive collation

Michael Kay <[email protected]> Fri, 18 Aug 2023 11:14:18 +0100
Newsgroups gmane.text.xml.devel
Message-ID <[email protected]>
--Apple-Mail=_8D96DB49-1353-4116-B8A8-065A3C991543
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

That's the problem with a living spec - anyone daring to refer to it =
risks the reference becoming dead.

The relevant text now appears to be in section 4.6 Strings:

A string <https://infra.spec.whatwg.org/#string> A is an ASCII =
case-insensitive <https://infra.spec.whatwg.org/#ascii-case-insensitive> =
match for a string <https://infra.spec.whatwg.org/#string> B, if the =
ASCII lowercase <https://infra.spec.whatwg.org/#ascii-lowercase> of A is =
the ASCII lowercase <https://infra.spec.whatwg.org/#ascii-lowercase> of =
B.

It would probably have been wiser to copy the normative definition into =
the F&O spec, and add a note saying it was equivalent to something in =
HTML.

(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. We've become very =
undisciplined - all this important stuff should be deposited on paper =
copies in bricks-and-mortar libraries).

Michael Kay
Saxonica

> On 18 Aug 2023, at 10:21, Mukul Gandhi <[email protected]> =
wrote:
>=20
> Hi all,
>     I've been reading the following XPath 3.1 F&O spec section, =
https://www.w3.org/TR/xpath-functions-31/#html-ascii-case-insensitive-coll=
ation =
<https://www.w3.org/TR/xpath-functions-31/#html-ascii-case-insensitive-col=
lation> (section 5.3.4 of the XPath 3.1 F&O spec).
>=20
> This XPath 3.1 F&O spec section says following,
>=20
> <quote>
> The collation URI =
http://www.w3.org/2005/xpath-functions/collation/html-ascii-case-insensiti=
ve =
<http://www.w3.org/2005/xpath-functions/collation/html-ascii-case-insensit=
ive> must be recognized by every implementation.
>=20
> It is used to refer to the HTML ASCII case-insensitive collation as =
defined in [HTML5: A vocabulary and associated APIs for HTML and XHTML] =
(section 2.5, Case sensitivity and string comparison).
> </quote>
>=20
> The XPath 3.1 F&O spec within its normative references, provides =
following link to HTML5 spec : https://html.spec.whatwg.org/multipage/ =
<https://html.spec.whatwg.org/multipage/> (the one page HTML5 spec is =
following, https://html.spec.whatwg.org/ =
<https://html.spec.whatwg.org/>).
>=20
> I'm not able to find the, phrase "Case sensitivity" within the above =
cited HTML5 spec link (i.e, HTML5 spec's link as cited above, doesn't =
seem to have definition(s) related to "Case sensitivity and string =
comparison").
>=20
> Due to the above stated facts, can an XPath 3.1 implementation as of =
now, omit complying to XPath 3.1 F&O spec spection =
https://www.w3.org/TR/xpath-functions-31/#html-ascii-case-insensitive-coll=
ation =
<https://www.w3.org/TR/xpath-functions-31/#html-ascii-case-insensitive-col=
lation>?
>=20
>=20
> --=20
> Regards,
> Mukul Gandhi


--Apple-Mail=_8D96DB49-1353-4116-B8A8-065A3C991543
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" =
class=3D"">That's the problem with a living spec - anyone daring to =
refer to it risks the reference becoming dead.<div class=3D""><br =
class=3D""></div><div class=3D"">The relevant text now appears to be in =
section 4.6 Strings:</div><div class=3D""><br class=3D""></div><div =
class=3D""><span style=3D"font-family: &quot;Helvetica Neue&quot;, =
sans-serif, &quot;Droid Sans Fallback&quot;; font-size: 16px; =
background-color: rgb(255, 255, 255);" class=3D"">A&nbsp;</span><a =
data-link-type=3D"dfn" href=3D"https://infra.spec.whatwg.org/#string" =
id=3D"ref-for-string=E2=91=A3=E2=91=A0" style=3D"text-decoration-color: =
rgba(0, 0, 0, 0.3); color: rgb(102, 0, 153); cursor: pointer; =
font-family: &quot;Helvetica Neue&quot;, sans-serif, &quot;Droid Sans =
Fallback&quot;; font-size: 16px;" class=3D"">string</a><span =
style=3D"font-family: &quot;Helvetica Neue&quot;, sans-serif, =
&quot;Droid Sans Fallback&quot;; font-size: 16px; background-color: =
rgb(255, 255, 255);" class=3D"">&nbsp;</span><var style=3D"font-family: =
&quot;Helvetica Neue&quot;, sans-serif, &quot;Droid Sans Fallback&quot;; =
font-size: 16px;" class=3D"">A</var><span style=3D"font-family: =
&quot;Helvetica Neue&quot;, sans-serif, &quot;Droid Sans Fallback&quot;; =
font-size: 16px; background-color: rgb(255, 255, 255);" =
class=3D"">&nbsp;is an&nbsp;</span><dfn data-dfn-type=3D"dfn" =
data-export=3D"" id=3D"ascii-case-insensitive" style=3D"font-style: =
normal; animation: 3s ease 0s 1 normal none running fade-target; =
font-family: &quot;Helvetica Neue&quot;, sans-serif, &quot;Droid Sans =
Fallback&quot;; font-size: 16px;" class=3D"">ASCII case-insensitive<a =
class=3D"self-link" =
href=3D"https://infra.spec.whatwg.org/#ascii-case-insensitive" =
style=3D"text-decoration-color: rgba(0, 0, 0, 0.3); color: white; =
text-decoration: none; cursor: pointer; position: absolute; top: auto; =
left: auto; width: 1.5em; height: 1.5em; text-align: center; transition: =
opacity 0.2s ease 0s, background-color 0.2s ease 0s, color 0.2s ease 0s; =
opacity: 0; background-color: gray;"></a></dfn><span style=3D"font-family:=
 &quot;Helvetica Neue&quot;, sans-serif, &quot;Droid Sans =
Fallback&quot;; font-size: 16px; background-color: rgb(255, 255, 255);" =
class=3D"">&nbsp;match for a&nbsp;</span><a data-link-type=3D"dfn" =
href=3D"https://infra.spec.whatwg.org/#string" id=3D"ref-for-string=E2=91=A3=
=E2=91=A1" style=3D"text-decoration-color: rgba(0, 0, 0, 0.3); color: =
rgb(102, 0, 153); cursor: pointer; font-family: &quot;Helvetica =
Neue&quot;, sans-serif, &quot;Droid Sans Fallback&quot;; font-size: =
16px;" class=3D"">string</a><span style=3D"font-family: &quot;Helvetica =
Neue&quot;, sans-serif, &quot;Droid Sans Fallback&quot;; font-size: =
16px; background-color: rgb(255, 255, 255);" class=3D"">&nbsp;</span><var =
style=3D"font-family: &quot;Helvetica Neue&quot;, sans-serif, =
&quot;Droid Sans Fallback&quot;; font-size: 16px;" class=3D"">B</var><span=
 style=3D"font-family: &quot;Helvetica Neue&quot;, sans-serif, =
&quot;Droid Sans Fallback&quot;; font-size: 16px; background-color: =
rgb(255, 255, 255);" class=3D"">, if the&nbsp;</span><a =
data-link-type=3D"dfn" =
href=3D"https://infra.spec.whatwg.org/#ascii-lowercase" =
id=3D"ref-for-ascii-lowercase" style=3D"text-decoration-color: rgba(0, =
0, 0, 0.3); color: rgb(102, 0, 153); cursor: pointer; font-family: =
&quot;Helvetica Neue&quot;, sans-serif, &quot;Droid Sans Fallback&quot;; =
font-size: 16px;" class=3D"">ASCII lowercase</a><span =
style=3D"font-family: &quot;Helvetica Neue&quot;, sans-serif, =
&quot;Droid Sans Fallback&quot;; font-size: 16px; background-color: =
rgb(255, 255, 255);" class=3D"">&nbsp;of&nbsp;</span><var =
style=3D"font-family: &quot;Helvetica Neue&quot;, sans-serif, =
&quot;Droid Sans Fallback&quot;; font-size: 16px;" class=3D"">A</var><span=
 style=3D"font-family: &quot;Helvetica Neue&quot;, sans-serif, =
&quot;Droid Sans Fallback&quot;; font-size: 16px; background-color: =
rgb(255, 255, 255);" class=3D"">&nbsp;is the&nbsp;</span><a =
data-link-type=3D"dfn" =
href=3D"https://infra.spec.whatwg.org/#ascii-lowercase" =
id=3D"ref-for-ascii-lowercase=E2=91=A0" style=3D"text-decoration-color: =
rgba(0, 0, 0, 0.3); color: rgb(102, 0, 153); cursor: pointer; =
font-family: &quot;Helvetica Neue&quot;, sans-serif, &quot;Droid Sans =
Fallback&quot;; font-size: 16px;" class=3D"">ASCII lowercase</a><span =
style=3D"font-family: &quot;Helvetica Neue&quot;, sans-serif, =
&quot;Droid Sans Fallback&quot;; font-size: 16px; background-color: =
rgb(255, 255, 255);" class=3D"">&nbsp;of&nbsp;</span><var =
style=3D"font-family: &quot;Helvetica Neue&quot;, sans-serif, =
&quot;Droid Sans Fallback&quot;; font-size: 16px;" class=3D"">B</var><span=
 style=3D"font-family: &quot;Helvetica Neue&quot;, sans-serif, =
&quot;Droid Sans Fallback&quot;; font-size: 16px; background-color: =
rgb(255, 255, 255);" class=3D"">.</span></div><div class=3D""><span =
style=3D"font-family: &quot;Helvetica Neue&quot;, sans-serif, =
&quot;Droid Sans Fallback&quot;; font-size: 16px; background-color: =
rgb(255, 255, 255);" class=3D""><br class=3D""></span></div><div =
class=3D""><span style=3D"font-family: &quot;Helvetica Neue&quot;, =
sans-serif, &quot;Droid Sans Fallback&quot;; font-size: 16px; =
background-color: rgb(255, 255, 255);" class=3D"">It would probably have =
been wiser to copy the normative definition into the F&amp;O spec, and =
add a note saying it was equivalent to something in =
HTML.</span></div><div class=3D""><span style=3D"font-family: =
&quot;Helvetica Neue&quot;, sans-serif, &quot;Droid Sans Fallback&quot;; =
font-size: 16px; background-color: rgb(255, 255, 255);" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family: =
&quot;Helvetica Neue&quot;, sans-serif, &quot;Droid Sans Fallback&quot;; =
font-size: 16px; background-color: rgb(255, 255, 255);" 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. We've become very =
undisciplined - all this important stuff should be deposited on paper =
copies in bricks-and-mortar libraries).</span></div><div class=3D""><font =
face=3D"Helvetica Neue, sans-serif, Droid Sans Fallback" size=3D"3" =
class=3D""><span style=3D"background-color: rgb(255, 255, 255);" =
class=3D""><br class=3D""></span></font></div><div class=3D""><font =
face=3D"Helvetica Neue, sans-serif, Droid Sans Fallback" size=3D"3" =
class=3D""><span style=3D"background-color: rgb(255, 255, 255);" =
class=3D"">Michael Kay</span></font></div><div class=3D""><font =
face=3D"Helvetica Neue, sans-serif, Droid Sans Fallback" size=3D"3" =
class=3D""><span style=3D"background-color: rgb(255, 255, 255);" =
class=3D"">Saxonica<br class=3D""></span></font><div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">On 18 =
Aug 2023, at 10:21, Mukul Gandhi &lt;<a =
href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div dir=3D"ltr" =
class=3D"">Hi all,<br class=3D"">&nbsp; &nbsp; I've been reading the =
following XPath 3.1 F&amp;O spec section, <a =
href=3D"https://www.w3.org/TR/xpath-functions-31/#html-ascii-case-insensit=
ive-collation" =
class=3D"">https://www.w3.org/TR/xpath-functions-31/#html-ascii-case-insen=
sitive-collation</a> (section 5.3.4 of the XPath 3.1 F&amp;O spec).<br =
class=3D""><br class=3D"">This XPath 3.1 F&amp;O spec section says =
following,<br class=3D""><br class=3D"">&lt;quote&gt;<br class=3D"">The =
collation URI <a =
href=3D"http://www.w3.org/2005/xpath-functions/collation/html-ascii-case-i=
nsensitive" =
class=3D"">http://www.w3.org/2005/xpath-functions/collation/html-ascii-cas=
e-insensitive</a> must be recognized by every implementation.<br =
class=3D""><br class=3D"">It is used to refer to the HTML ASCII =
case-insensitive collation as defined in [HTML5: A vocabulary and =
associated APIs for HTML and XHTML] (section 2.5, Case sensitivity and =
string comparison).<br class=3D"">&lt;/quote&gt;<br class=3D""><br =
class=3D"">The XPath 3.1 F&amp;O spec within its normative references, =
provides following link to HTML5 spec : <a =
href=3D"https://html.spec.whatwg.org/multipage/" =
class=3D"">https://html.spec.whatwg.org/multipage/</a> (the one page =
HTML5 spec is following, <a href=3D"https://html.spec.whatwg.org/" =
class=3D"">https://html.spec.whatwg.org/</a>).<br class=3D""><br =
class=3D"">I'm not able to find the, phrase "Case sensitivity" within =
the above cited HTML5 spec link (i.e, HTML5 spec's link as cited above, =
doesn't seem to have definition(s) related to "Case sensitivity and =
string comparison").<br class=3D""><br class=3D"">Due to the above =
stated facts, can an XPath 3.1 implementation as of now, omit complying =
to XPath 3.1 F&amp;O spec spection <a =
href=3D"https://www.w3.org/TR/xpath-functions-31/#html-ascii-case-insensit=
ive-collation" =
class=3D"">https://www.w3.org/TR/xpath-functions-31/#html-ascii-case-insen=
sitive-collation</a>?<div class=3D""><br clear=3D"all" class=3D""><div =
class=3D""><br class=3D""></div><span class=3D"gmail_signature_prefix">-- =
</span><br class=3D""><div dir=3D"ltr" class=3D"gmail_signature" =
data-smartmail=3D"gmail_signature"><div dir=3D"ltr" class=3D""><div =
class=3D"">Regards,<br class=3D""></div><div class=3D"">Mukul =
Gandhi</div></div></div></div></div>
</div></blockquote></div><br class=3D""></div></body></html>=

--Apple-Mail=_8D96DB49-1353-4116-B8A8-065A3C991543--