- From: Dan Connolly <connolly@w3.org>
- Date: Wed, 04 Aug 2004 10:29:55 -0500
- To: www-validator@w3.org
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