various issues

Joe English jenglish at
Fri Apr 11 21:33:03 BST 1997

Peter at (Peter Murray-Rust) wrote:
> For discussion assume that the declarations belong to MYDTD
> David Megginson writes:
> >
> >   <?ArcBase html?> <?ArcBase math?>
> So in C++ terms MYDTD has two base  classes, HTML and MATH.

It may be easier to understand architectural forms if you
_don't_ think of it in C++ terms...  The mechanism is more like,
in Java, declaring that a class (DTD) implements an interface
(architecture) than inheriting an implementation from a base

Even this is not really accurate, since in SGML elements don't 
_do_ anything, they just _are_; it's up to the application to 
interpret them.  The architectural mapping simply tells applications
that know how to process the architectural forms ("meta"-DTD) 
how to interpret instances conforming to a document type ("real" DTD)
based on that architecture.

> >   <!ELEMENT para ...>
> >   <!ATTLIST para
> >     html      NAME    #FIXED "p">
> This means that PARA (in MYDTD) inherits properties from P (in HTML).  Does
> that mean it automatically inherits the content model and the attributes?

I'm not sure I understand the question.  If you're asking if
it's now possible to write:


(where the ALIGN attribute is defined in the HTML meta-DTD
but not in MYDTD), the answer is no.  However, when it's 
interpreted by an HTML-architecture-aware processor, any 
"P" attributes with a default or #FIXED value in the meta-DTD 
will be (considered to be) present.

> For example, the content model of P is
> 	(%text)*
> which expands to
> 	(#PCDATA | IMG | BR | EM)*  <!-- several missed out -->
> Can PARA assume these or does it have to map each of these (e.g. IMG) onto
> html:
> 	<!ELEMENT image ...>
> 	<!ATTLIST image
> 	  html    NAME #FIXED "img>

A "PARA" element can contain whatever is allowed by its content
model in MYDTD.  The only restriction is that when the children
of a PARA element are mapped to HTML, the result must conform
to "P"s content model in the meta-DTD.

> similarly does PARA have to explicity declare the same attributes as P in HTM
> L?

Only if it wants to use those attributes in the source document.

> >   <!ELEMENT sym ...>
> >   <!ATTLIST symbol
> >     html      NAME    #FIXED "sym"
> >     math      NAME    #FIXED "symbol">
> >
> This is - presumably - multiple inheritance in that SYMBOL inherits something
> from HTML.SYM and MATH.SYMBOL (though I'm not clear what).  How does the
> content of SYMBOL relate to either of its two base classes?

When an HTML-architecture processor encounters a SYMBOL element, 
it treats it like an HTML "SYM" element (which does
not exist AFAIK, so this would probably be an error).
When a MATH-architecture processor encounters a SYMBOL element 
(in a document conforming to MYDTD) it treats it like a
SYMBOL element (as defined in the MATH meta-DTD).

--Joe English

  jenglish at

xml-dev: A list for W3C XML Developers
Archived as:
To unsubscribe, send to majordomo at the following message;
unsubscribe xml-dev
List coordinator, Henry Rzepa (rzepa at

More information about the Xml-dev mailing list