Diamond problem using extensions and substitution groups

Dear all,

I have the following schema element types:


Vehicle  <---   MyVehicle

     ^               ^  
     |               |

    Car    <-- 	 MyCar


Vehicle is the base element type. Car extends from Vehicle.

I want to add new elements to Vehicle, so I've created MyVehicle.
Now I want to extend Car with MyCar, but I want MyCar also to have MyVehicle
new child elements.


Any idea about how to get this? I don't want to change or redefine Vehicle
or Car as they are official elements, but I want to be able to extend them
to add new child elements.

The problem in Java or other languages is only solved for operations (using
interfaces) but not for properties.

I was thinking in using element groups instead of inheritance but then I
can't use substitution groups. I want to use them so I could be able to use
MyVehicle in all places in a XML document where Vehicle is allowed. 

Thank you very much.

Kind Regards,
Leo Antoli

Received on Wednesday, 16 August 2006 16:36:32 UTC