OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: URNs as SYSTEM IDs

[ Lists Home | Date Index | Thread Index ]
  • From: "Simon St.Laurent" <simonstl@simonstl.com>
  • To: michaelm@netsol.com
  • Date: Mon, 27 Nov 2000 10:55:19 -0500

At 08:17 AM 11/27/00 -0500, Michael Mealling wrote:
>This really isn't intended to be the general case. It came up because
>I was writing a standard that had a DTD in it. XML won't let you
>use a PUBLIC id without a SYSTEM id so I was stuck with three options
>for what to put in the standards document:
>1) use "file:/dev/null"

Unusual, and prohibits processing of your documents by validating XML
parsers which don't have entity resolvers set up (by far the majority at
present, in my experience).  It also sends a strange message to developers,
since /dev/null has acquired semantics...

>2) use a real URL and watch that poor server get the hell banged out of
>   it because everyone was downloading the DTD because they were to lazy
>   to use an entity resolver

This is the approach the W3C takes with XHTML.  I'd suggest this makes more
sense than the alternatives, since the PUBLIC identifier allows processors
which support entity resolution to use it (as Mozilla does with XHTML) but
provides a canonical URL which developers who've never heard of entity
resolvers (lots of them) can still use.

The proposal [1] states in Section 1, para 1:
>It is standard practice within W3C
>standards to forego the use of the PUBLIC identifier in favor of
>'well known' SYSTEM identifiers.

I don't think this statement is true, at least for W3C standards which
reference DTDs.  For Schemas, there's an open and rather ugly question.
Even the DTD for Schemas, though, includes these comments:
<!-- DTD for XML Schemas: Part 1: Structures
              Public Identifier: "-//W3C//DTD XMLSCHEMA 200010//EN"
              Official Location: http://www.w3.org/2000/10/XMLSchema.dtd -->

>3) use soemthing that wasn't resolvable but had more name like qualities that
>   would force the implementor to use an entity resolver...

I'm not sure forcing the implementor to use an entity resolver by feeding
them 'bad' URLs is going to make developers happy.

>What should I have done? This will come up often and we (the IETF) needs
>to right solution. I can easily remove any mention of DTDs and URNs
>if needed....

For namespaces, I think the proposal's solution does an excellent job.  For
DTDs and schemas, resolvability really matters.  I'd stick to the
combination of a public identifier and a 'guaranteed' URI (number 2 above),
 but make clear that the public identifier is the critical piece and the
SystemLiteral is only provided for backup.

Among other things, that would let people without entity resolvers point to
local URLs while still identifying the document with the right PUBLIC
identifier.  Should reduce the hell-banging.

[1] -

Simon St.Laurent
XML Elements of Style / XML: A Primer, 2nd Ed.
XHTML: Migrating Toward XML
http://www.simonstl.com - XML essays and books


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS