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


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: [xml-dev] Why you should avoid Notation Declarations (by Kohsuke

[ Lists Home | Date Index | Thread Index ]

At 2005-02-23 07:53 -0500, Elliotte Harold wrote:
>Henry S. Thompson wrote:
>>You have a place in your XML document type for (e.g. hex-encoded)
>>BLOBs to be included or referenced.  Each BLOB in turn should be an
>>encoding of something using one of a delimited set of more-or-less
>>standard encodings.  You want to allow or require document authors to
>>signal which encoding they're using.
>How do notations improve on, for example, <data mime:type="image/jpeg" 
>href="somefile.jpg"/>? Normally I like additional layers of indirection, 
>but the NOTATION indirection has never seemed all that useful. What am I 

As I see it, a NOTATION declaration is necessary to complete an unparsed 
entity declaration.  A relative value for the SYSTEM URI of an unparsed 
entity declaration is resolved to an absolute URI.

I use unparsed entities in my publishing.

Where you have href="somefile.jpg" ... that could be seen just as a string 
... nothing in the system resolves that to an absolute URI specification.

However, if you had an unparsed general entity declaration:

   <!ENTITY house SYSTEM "somefile.jpg" NDATA "JPEG">

and you referenced it as:

   <data ent="house">

then in XSLT you use:


you end up with "file:///c:/your/path/here/somefile.jpg" resolved according 
to the location of the parameter entity fie in which your unparsed general 
entity is declared.

So, when publishing from a suite of files, you end up with an absolute URI 
pointing directly to the file, without having to know things like the 
current directory.  If you move your environment around, and adjust your 
declarations accordingly (which may not need any changing), the 
unparsed-entity-uri() gets you what you need.

I don't see much utility for unparsed entity declarations in a web based 
application for web pages ... you aren't trying to resolve absolute URIs 
into your publishing environment when creating a web page.

So, now you've got this unparsed general entity declaration ... to be 
complete the notation referenced has to be declared in a notation 
declaration, hence the need for <!NOTATION>.  I've often wondered why the 
XSLT commmittee would give us unparsed-entity-uri() without giving us 
unparsed-entity-notation-name() and unparsed-entity-notation-uri() as well, 
but I'll never know.

Therefore, NOTATION is in support of unparsed entities which are useful.

I hope this helps.

...................... Ken

World-wide on-site corporate, govt. & user group XML/XSL training.
G. Ken Holman                 mailto:gkholman@CraneSoftwrights.com
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/x/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Breast Cancer Awareness  http://www.CraneSoftwrights.com/x/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


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

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