XSchema Spec - Content Model Declarations (Section 2.3), Draft 4

Ron Bourret rbourret at dvs1.informatik.tu-darmstadt.de
Mon Jul 13 14:18:15 BST 1998

John Cowan wrote:

> Ron Bourret wrote:
> > One can imagine an XSchema where the top-level element declarations 
> > are relatively useless but exist so that an XLink can refer to their content
> > models.  This is a bit hacky, but it's the only way I can see to duplicate 
> > horiz.model and vert.model entities in John Cowan's Itsy B
> > Bitsy Teeny Weeny Simple Hypertext DTD.
> Very kludgy indeed.
> I have one new proposal and one old one.  I'm thinking that several more
> elements should be allowed at top level, namely AttDef, Choice, Sequence,
> Mixed, NotationType, and EnumerationType.  These would then exist
> as free-floating resources which could be referred to by idrefs
> elsewhere.
> The old proposal is for an AttGroup element, with a content model
> of (Doc?, AttDef+), and available at top level and also within an Element
> model.  This would allow multiple attributes to be treated as a
> single thing for either documentation or reference.

I think what both of these suggestions and the discussion about root elements 
describe is the tension between two overlapping aims of XSchema.

The first aim is to provide what I will call an instance syntax -- that is, the 
syntax of an XML document that people should follow exactly.  The second aim is 
to provide a bag of definitions that can be used elsewhere.  Note that while 
XSchemas in the first case can, with a bit of work, be reused as the second 
case, the opposite is unlikely to be true.

Our current syntax satisfies the first aim.  John's first suggestion satisfies 
the second aim.  The XSchema subelement is a mechanism for grouping definitions: 
a group of attributes (negates the need for AttGroup), a group of element 
declarations, a complete content model, etc.  To reference such a group, all you 
need is the XPointer xschema-subelement-id.child(all).

I therefore think we should do the following:

1) Add the following sentence to the end of the first paragraph in section 2.1 
after the syntax:

"... The XSC:XSchema element may also contain other XSC:XSchema elements nested 
inside of it. ****This allows one XSchema document to contain other XSchema 
documents.  It also serves as a way to group XSchema elements for inclusion in 
other XSchema documents.****"

2) As John suggests, expand the legal elements beneath an XSchema element.  In   
 particular, add AttDef, Choice, Sequence, Mixed, and Ref to the XSchema 
element.  (NotationType and EnumerationType no longer exist.  I have added Ref 
to John's list.)

-- Ron Bourret

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

More information about the Xml-dev mailing list