Re: redefine and interoperability problems

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

Received on Thursday, 5 April 2007 00:38:34 UTC