Eric Sirois wrote:
> 1) The DITA DTD Architecture binds the class attribute declaration via an
> ATTLIST declaration. The current DITA XML Schema does not bind the class
> attribute to the element. It binds the class attribute to the complexType.
> I think we should make the appropriate changes to the schemas in order to
> have the class attributes bound to the element declaration. It means a
> sweeping change to the schemas, one that would be hidden from the end user
> and it would affect existing specializations as long as they did not use
> extensions in the past.
Without this change to the schemas it is impossible to declare a
specialized element that directly uses the complex type of its
specialization base. As Eric points out, this means that even when all
you're doing is renaming an element in your specialization without
otherwise changing the content model, you must still re-declare the
content model as defined in the base declaration.
With this change, you can do two new things:
- Declare specializations that differ only in element type name from
their base type
- Declare specializations of elements that use XSD's extension feature
to add additional element types to the content model without redeclaring
the entire base type's content model.
But it's more than convenience--I think the new pattern is the more
accurate expression of the semantic of the class= attribute, which is in
effect a replacement for the element type name (because the class
attribute must reflect the name of the specialized element, as well as
its specialization ancestry).
Cheers,
Eliot
--
W. Eliot Kimber
Professional Services
Innodata Isogen
8500 N. Mopac, Suite 402
Austin, TX 78759
(214) 954-5198
ekimber@innodata-isogen.com
www.innodata-isogen.com