Michael Kay wrote:
> I personally think xs:redefine is one of those facilities (xsi:nil is
> another) where you're better off pretending it doesn't exist. Implementors
> don't have that luxury, but users do.
Hmm. The DITA schemas depend entirely on xs:redefine in order to provide
the equivalent configurability to the parameter entities in the DTD
versions, that is, using schemas can redefine the members of groups that
are then referenced from the used schemas.
Without reliable implementations of xs:redefine, it might not be
possible to have any sort of useful re-usable and configurable schema
modules for DITA (one could always, of course, recreate the entire set
of declarations for each combination of specialization modules, but that
would be prohibitively difficult to implement and manage).
Note that, despite assertions to the contrary, substitution groups do
*not* satisfy this requirement, for reasons that have long been discussed.
It would be a very serious problem if a precise definition of what
xs:redefine means could not be arrived at.
Personally, I would not expect to be able to redefine a group by
reference to a schema that includes the group I want to redefine--you
should be redefining the schema document that directly contains the
group. (But then I think the use of include in general is a bad idea so
that helps to address the problem [although this doesn't help if your
schema isn't bound to a namespace, but you shouldn't do that either, so
I don't have much sympathy there.].)
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