Architectural Forms (was Re: Content roles in XML)

David Megginson ak117 at
Thu Jan 22 21:01:06 GMT 1998

Richard Light writes:

 > Can't you just declare an attribute list for Method which includes
 > a MethodRole attribute?  That way, the information is still
 > available in the parsed document.  Using parameter entities in the
 > way you suggest is really not a good idea for the reasons you
 > outline - your intent is clear to a human reader looking at your
 > DTD, but the subtle distinction is long gone by the time software
 > gets to look at your instances!

The opposite solution would be to allow all of the different element
types, but to derive them all from the same architectural form in a
base architecture (say, "java-generic"):

  <?IS10744:arch name="java-generic"?>


  <!ATTLIST addListenerMethod
    java-generic NMTOKEN #FIXED "Method">

  <!ATTLIST removeListenerMethod
    java-generic NMTOKEN #FIXED "Method">

  <!ATTLIST eventMethod
    java-generic NMTOKEN #FIXED "Method">

Now, during processing, you can look at the value of the
"java-generic" attribute to see what generic class any element belongs
to (authors don't need to specify the attribute value, because it's
already provided in the DTD).

Architectural forms are defined in annex A to ISO 10744: see

for the XML-specific syntax, and

for all the gory details.  Eliot Kimber has posted the URL for a
simpler tutorial, but I don't have it on hand right now.

All the best,


David Megginson                 ak117 at
Microstar Software Ltd.         dmeggins at

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list