Re: DTD Fragments and XML

Paul Prescod writes:
| Let's say that I am an XML user. I am happy with, say, the DocBook DTD,
| but need to insert a chemical formula in CML format. Or perhaps I want
| to insert something more mundane, some small element that does not have
| an expression in DocBook: <GRADE> for a student's grade on a project. In
| the SGML world I would combine the two DTDs manually. This is probably a
| painful process of examining content models and parameter entities and
| finding the right place to shoe-horn in my element type. 

This is not Paul's main concern in this post.  To set the record straight,
for Docbook you would construct a customization layer consisting of
additional overriding parameter entities and associated stuff.  You
wouldn't have to touch the DTD for most purposes.  However, Docbook's
means of achieving this uses empty parameter entities, which I now
understand to be invalid in XML.  I'll spend part of this weekend
removing them from my XMLized version of 3.0, which is now called
XDB 0.2 (available at http://www.sonic.net/~tallen/xdb02.zip).
I'd welcome correction on this point, or suggestions for other
methods of customization that are valid in XML.

| I don't think that we can make it easy to combine DTDs without changing
| SGML. But maybe we can figure out a way to declare a namespace for
| elements: to "import" element names in a standard way. You wouldn't be
| able to validate the document but at least it would be clear what the
| elements MEAN.

A universal typology of human knowledge would do that for you, but
there will never be one.  All you can do is refer to well known
external semantics, e.g., via fixed attributes.  This is not an
XML issue; the problem is the same in SGML.



Regards,

  Terry Allen    Electronic Publishing Consultant    tallen[at]sonic.net
                   http://www.sonic.net/~tallen/
    Davenport and DocBook:  http://www.ora.com/davenport/index.html
          T.A. at Passage Systems:  terry.allen[at]passage.com 

Received on Saturday, 3 May 1997 12:06:48 UTC