suggest validator prefer URI to FPI

In the validator catalog
http://dev.w3.org/cvsweb/validator/htdocs/sgml-lib/xml.soc?rev=1.8&content-type=text/x-cvsweb-markup

we have

PUBLIC  "-//W3C//DTD XHTML 1.0 Strict//EN"      
"REC-xhtml1-20020801/xhtml1-strict.dtd"
PUBLIC  "-//W3C//DTD XHTML 1.0 Transitional//EN" "REC-xhtml1-20020801/xhtml1-transitional.dtd"
PUBLIC  "-//W3C//DTD XHTML 1.0 Frameset//EN"     "REC-xhtml1-20020801/xhtml1-frameset.dtd"

I suggest adding entries that key on the URI before those entries,
ala:


SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
       "REC-xhtml1-20020801/xhtml1-transitional.dtd"

and likewise for the other PUBLIC entries.


Case in point... this page
  http://www.w3.org/2001/sw/BestPractices/
  $Revision: 1.78 $
  (and rev 1.77, for that matter)

has a somewhat curious document type delcaration:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

The validator seems to recognize the given FPI and
ignore the URI:

"This Page Is Valid XHTML 1.0 Strict!"
--
http://validator.w3.org/check?uri=http://www.w3.org/2001/sw/BestPractices/

I expected it to check the document agains the transitional DTD;
that is, I expect it to use the URI that was provided, since
FPIs don't give the same network effects
(cf http://www.w3.org/TR/webarch/#uri-benefits)



The XML spec doesn't seem to prefer either design:

[[
An XML processor attempting to retrieve the entity's content MAY use any
combination of the public and system identifiers as well as additional
information outside the scope of this specification to try to generate
an alternative URI reference.
]]
 -- http://www.w3.org/TR/2004/REC-xml-20040204/#sec-external-ent

It does require a URI while making the FPI optional.

Hmm... I wonder if it's wise to override relative URIs with
entries like...

 SYSTEM "spec.dtd" "http://www.w3.org/XML/1998/06/xmlspec-v20.dtd"

That's squatting on other people's URI space. If I write a
document at http://acme.example/myDoc.xml :

	<!DOCTYPE mySpec SYSTEM "spec.dtd">
	<mySpec>...</mySpec>

then that's a reference to the spec.dtd that's nearby, in URI space,
to my document. The validation service shouldn't decide what
  http://acme.example/spec.dtd
means; that's for acme to decide. Hmm... it seems the TAG hasn't
treated this explicitly in the webarch doc yet, but see
http://www.w3.org/2001/tag/issues.html#siteData-36



-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/

Received on Wednesday, 4 August 2004 11:29:59 UTC