[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: DOCBOOK-APPS: RE: XML catalog resolution problems
At 11:12 2002 10 30 -0500, Daniel Veillard wrote: >On Wed, Oct 30, 2002 at 09:28:44AM -0600, Paul Grosso wrote: >> The XML Catalog spec makes it clear that system entries are for >> resolving external identifiers (production 75 in XML) and clearly >> says about URI entries [1]: > > And I have said to the XML Catalog comitee that an URI Reference is >an URI-Reference and that having to distinguish arbitrarilly one done >from a DOCTYPE entry from one done from an xi:include href entry >doesn't make any sense to me, and that I would not support the distinction >in my software unless getting a meaningful reason to distinguish >those. > I haven't received any justification yet from the commitee about the >reason to distinguish those exept "they are different", no sorry ... Well, when Microsoft said "I see no reason not to support empty end tags (i.e., </>) in XML", people rose in protest. One justification is that this is the standard, and you are refusing to follow it. But I will try again to give you a more technical explanation. The use of systemId in the XML Catalog is expressly to model production [75], ExternalID, of the XML spec. I think it is good architecture to model what the catalog does on what the XML spec is doing. XML has no concept of a URI. It only has a concept of ExternalID with a SystemLiteral. Furthermore, XML's SystemLiteral cannot have a fragment ID: "It is an error for a fragment identifier (beginning with a # character) to be part of a system identifier." So the datatype of the systemId entry is different from the datatype of the uri entry. Another reason it makes good architectural sense to have two different entry types. > I see ZERO reason why the two following URI-Reference made from a >single XML entity should lead to using different resource for >http://example.com/foo.dtd: > >------------------------------- ><DOCTYPE foo SYSTEM "http://example.com/foo.dtd> ><foo> ><xi:include href="http://example.com/foo.dtd" parse="text"/> ></foo> >------------------------------- In addition to my explanation above--and the fact that your example is not going to be a common one, so such "redundancy" is in fact going to be rare--there are other good reasons why these two URIs might want to be treated differently. Many XML processors provide an option to "compile" the external subset for certain optimized uses, so the system identifier (in the doctype line) might really resolve to some compiled form, but the URI in the xinclude element would want to resolve to the uncompiled form. Or I might know that my application ideally supports a slightly different version of the DTD, so I want to map the system id into some other file--maybe one on my local system, or maybe off to the latest test version of the DTD on sourceforge--but the version I want to include as text in my document should be the official current version of the DTD. paul
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC