Jamie,

 

Indeed there is a problem in your scenario. The problem is because of the 
substitution group uses and not because of type derivation. 

 

You can have base types and in your first schema and derived types in the 
second one, and you can compile them separately. Everything should work as if 
the were compiled at once.

 

This is no longer valid with substitution groups, and this is because the 
substituted element has to know all it valid substitution at the moment of 
compilation, I know this is a drawback but solving this the right way would 
have a big impact on performance. The short answer is that if you modify a 
substitution you need to also include in the compilation the file of the 
substituted element.

 

 

Hope this helps,

Cezar

 

________________________________

From: Jamie Johnson [mailto:[EMAIL PROTECTED] 
Sent: Friday, October 03, 2008 3:03 PM
To: [email protected]
Subject: Re: Substitution Groups and Abstract Types

 

I believe the answer to this is yes for anyone else that is interested.

On Fri, Oct 3, 2008 at 8:56 AM, Jamie Johnson <[EMAIL PROTECTED]> wrote:

I am attempting to build a set of schemas that uses substitution groups and 
abstract types which works flawlessly if I compile all the schemas together 
(i.e. one big jar) but if I build them all separately by first building the 
abstract type then building all the types that extend the abstract type with 
the abstracttype on the classpath XmlBeans substitution doesn't seem to work.  
Do all objects that extend the AbstractType need to be available at build time 
for XmlBeans to properly recognize the substitution groups?

What is strange is when looking at a class that extends the AbstractType it 
clearly indicates that the AbstractType is it's base, but if I try to do 
(Extended)AbstractType.substitute(ExtendedDocument.impl.type, Extended.type); I 
received a class cast exception.  Any idea how to address this without having 
to recompile the Abstract Schema everytime I want to add a type that extends 
the AbstractType?

Jamie

 

Reply via email to