[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xmlbeans-user
Subject:    RE: Two very similar beans, but no common class/interface
From:       "Radu Preotiuc-Pietro" <radup () bea ! com>
Date:       2008-04-25 22:32:33
Message-ID: BF6B6CA032BA0A429BD924F96765147DBF300B () repbex02 ! amer ! bea ! com
[Download RAW message or body]

Unfortunately, since in XMLSchema the two types don't share a common
base type, there is no way XMLBeans can factor out a superclass. The
inheritance hierarchy in the generated classes matches the one in the
source XMLSchema. If you really want to use only one interface, then you
would have to use the Extension Interfaces feature
(http://wiki.apache.org/xmlbeans/ExtensionInterfacesFeature) to have
both types extend a common interface that you implement, so then the
rest of your code only deals with this one interface. But the
implementation of this interface may turn out to be tedious.

Radu

> -----Original Message-----
> From: Nick Burch [mailto:nick@torchbox.com] 
> Sent: Friday, April 11, 2008 5:11 AM
> To: user@xmlbeans.apache.org
> Subject: Two very similar beans, but no common class/interface
> 
> Hi All
> 
> For Apache POI, we're using xmlbeans to generate a whole 
> bunch of classes based on the ooxml schema files. One problem 
> we've found is that some things hold a CT_RPr, and others 
> hold a CT_ParaRPr. Despite these two entries being very 
> similar, the two classes don't have a common class or 
> interface. So, we can't write code to work with the common 
> bits of both these entries very easily.
> 
> Is it possible to get xmlbeans to generate these two classes 
> to share a common superclass or interface, so we can easily 
> get at the common parts?
> 
> The full schema is at http://people.apache.org/~nick/wml.xsd, 
> and the relevent bit is:
> <xsd:complexType name="CT_RPr">
> <xsd:sequence>
> <xsd:group ref="EG_RPrContent" minOccurs="0"></xsd:group>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:complexType name="CT_ParaRPr">
> <xsd:sequence>
> <xsd:group ref="EG_ParaRPrTrackChanges" 
> minOccurs="0"></xsd:group>
> <xsd:group ref="EG_RPrBase" minOccurs="0"></xsd:group>
> <xsd:element name="rPrChange" type="CT_ParaRPrChange" 
> minOccurs="0">
> <xsd:annotation>
> <xsd:documentation>Revision 
> Information....</xsd:documentation>
> </xsd:annotation>
> </xsd:element>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:group name="EG_RPrContent">
> <xsd:sequence>
> <xsd:group ref="EG_RPrBase" minOccurs="0"></xsd:group>
> <xsd:element name="rPrChange" type="CT_RPrChange" minOccurs="0">
> <xsd:annotation>
> <xsd:documentation>Revision Information 
> for....</xsd:documentation>
> </xsd:annotation>
> </xsd:element>
> </xsd:sequence>
> </xsd:group>
> 
> (We're generally just after the common bits of EG_RPrBase on 
> both CT_RPr and CT_ParaRPr)
> 
> Thanks
> Nick
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
> For additional commands, e-mail: user-help@xmlbeans.apache.org
> 
> 

Notice:  This email message, together with any attachments, may contain information  \
of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated entities,  that may be \
confidential,  proprietary,  copyrighted  and/or legally privileged, and is intended \
solely for the use of the individual or entity named in this message. If you are not \
the intended recipient, and have received this message in error, please immediately \
return this by email and then delete it.

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic