Lists Home |
Date Index |
"Wayne Steele" <email@example.com> wrote:
| Downsides to this system:
| 1. It uses DTDs
| 2. It uses Notations
| 3. It requires a non-xml syntax to be created (to represent link behavour
| and semantics, with is then stuffed into a Notation's Public ID)
Demonizing DTDs is one thing, but to call declaration syntax "non-xml" is
nothing more than prejudice. If it were true, the XML *spec* wouldn't
have bothered with specifying syntax for declarations. I mean, really.
Notations are a poor cousin in XML because data attributes didn't make the
cut for XML 1.0. Nobody in the XML world uses notations because (a) they
don't know what to do with them, and (b) not much can be done with them
| Inspiration for this suggestion was provided by the "Datatypes for DTDs"
| note [http://www.w3.org/TR/dt4dtd].
| Notations and External Unparsed Entities provide a place to attach two
| pieces of arbitrary semantics to an element, via an attribute declared of
| type ENTITY or ENTITIES.
| <object href="http://example.org/1.gif" />
| can have this in the DTD:
| <!NOTATION stdlink PUBLIC "xlink: show=new actuate=onLoad" >
| <!ENTITY std_href SYSTEM "@href" NDATA stdlink>
| <!ATTLIST object
| LINKS ENTITIES "std_href"
This will blow up on an SGML parser ("XML documents are SGML documents").
Unfortunately, XML (a) doesn't have the DATA declared value defined in the
WebSGML TC and (b) doesn't have data attributes (attributes on notations).
Otherwise, you could have something like this:
PUBLIC "-//IETF/RFC 2396//NOTATION
Uniform Resource Identifiers (URI):Generic Syntax"
<!ATTLIST #NOTATION Uri -- interpret URI as a typed locator --
show (replace|embed|new|etc) "replace"
actuate (onLoad|onRequest|etc) "OnRequest"
-- etc --
href DATA Uri #REQUIRED
foo DATA Uri [show="new"] #IMPLIED
bar DATA Uri [actuate="OnLoad"] #IMPLIED
--- etc --
(This isn't completely clean either, as it sort of implies that 'show',
'actuate' etc are explained in RFC 2396. But it "works" if every URI in
the document has an interpretation in the same linking schema.)