Werner, I have added an attachment following the proper guidelines. Sorry for providing an incorrect attachment earlier.
---------------------------------------------- Justin Permar Research Programmer Department of Biomedical Informatics The Ohio State University Phone: 614-292-9845 Fax: 614-688-6600 [EMAIL PROTECTED] > -----Original Message----- > From: Werner Guttmann [mailto:[EMAIL PROTECTED] > Sent: Tuesday, May 22, 2007 4:04 PM > To: [email protected] > Subject: Re: [castor-user] code generation: schema type restriction > "re-defines" the type of an attribute from the base type > > Whilst I have not had the time to look at this Jira issue yet, I wonder > why following the bug submission guidelines available at > > http://www.castor.org/how-to-submit-an-xml-bug.html > > is so hard to follow .. ;-). I really appreciate your effort(s), but > uploading an Eclipse project (incl. e.g. binaries) does not really > help. > I always thought that the templates we provide are a perfect starting > point for creating a bug submission. Given the (highish) number of > people (still) insisting on attaching Ant/Eclipse projects, I wonder > whether there's anything missing that simply is not obvious to us. > > Regards > Werner > > PS I hope you don't take any offence by my reply. It looks like your > (kind) Jira attachement triggered something inside of me .. ;-) > > Justin Permar wrote: > > I have created a Jira issue here: > > > > > > > > http://jira.codehaus.org/browse/CASTOR-1984 > > > > > > > > I've also posted an attachment of an ant/eclipse project that > reproduces > > the problem. Thank you for looking into this! > > > > > > > > ---------------------------------------------- > > > > Justin Permar > > > > Research Programmer > > > > Department of Biomedical Informatics > > > > The Ohio State University > > > > > > > > *From:* Justin Permar [mailto:[EMAIL PROTECTED] > > *Sent:* Tuesday, May 22, 2007 10:32 AM > > *To:* [email protected] > > *Subject:* RE: [castor-user] code generation: schema type restriction > > "re-defines" the type of an attribute from the base type > > > > > > > > Thanks for your response Werner. I'm working on creating a small ant > > project and schema that produces the problem now. I'll create a Jira > > issue shortly. > > > > > > > > ---------------------------------------------- > > > > Justin Permar > > > > Research Programmer > > > > Department of Biomedical Informatics > > > > The Ohio State University > > > > > > > > *From:* Werner Guttmann [mailto:[EMAIL PROTECTED] > > *Sent:* Tuesday, May 22, 2007 9:40 AM > > *To:* [email protected] > > *Subject:* AW: [castor-user] code generation: schema type restriction > > "re-defines" the type of an attribute from the base type > > > > > > > > Justin, > > > > > > > > I really need to look into this in more detail. Can you please create > a > > new Jira issue at http://jira.codehaus.org/browse/CASTOR, and attach > a > > minimal XML schema for me to be able to reproduce environment. In > > addition, I'd appreciate if you attached e.g. builder properties, XML > > sample document, .... > > > > > > > > Werner Guttmann > > > > > > > > PS Thanks for going through the effort to describe your problem. I am > > sure all of this will find its way into the Jira issue as well .. ;- > ). > > > > > > > > --------------------------------------------------------------------- > --- > > > > *Von:* Justin Permar [mailto:[EMAIL PROTECTED] > > *Gesendet:* Dienstag, 22. Mai 2007 05:40 > > *An:* [email protected] > > *Betreff:* [castor-user] code generation: schema type restriction > > "re-defines" the type of an attribute from the base type > > > > > > > > All, > > > > > > > > I am using Castor to generate classes directly from a rather large > and > > complex schema. I use automatic conflict resolution set to true as > part > > of the following binding properties: > > > > > > > > org.exolab.castor.builder.javaclassmapping=type > > > > org.exolab.castor.builder.javaVersion=5.0 > > > > org.exolab.castor.builder.automaticConflictResolution=true > > > > > > > > Nearly all the code that is generated works very well, but there is > just > > one type of definition in the schema that Castor seems to have a bit > of > > trouble with. > > > > > > > > I have a type that is defined as follows: > > > > > > > > <xs:complexType name="ON" mixed="true"> > > > > <xs:annotation> > > > > <xs:documentation> > > > > A name for an organization. A > > sequence of name parts. > > > > </xs:documentation> > > > > </xs:annotation> > > > > <xs:complexContent mixed="true"> > > > > <xs:restriction base="EN"> > > > > <xs:sequence> > > > > > <xs:choice > > minOccurs="0" maxOccurs="unbounded"> > > > > > > <xs:element name="delimiter"> > > > > > > <xs:complexType mixed="true"> > > > > > > <xs:complexContent mixed="true"> > > > > > > <xs:restriction base="en.del"> > > > > > > <xs:attribute name="partType" type="cs_OrganizationNamePartType" > > fixed="DEL"/> <!-This partType "overrides" the > > partType in en.del with a new type cs_OrganizationNamePartType à > > > > > > </xs:restriction> > > > > > > </xs:complexContent> > > > > > > </xs:complexType> > > > > > > </xs:element> > > > > ... <!-snip à > > > > </xs:complexType> > > > > > > > > Note that the above element named "delimiter" is a restriction of a > type > > named "en.del". This type is defined as follows: > > > > > > > > <xs:complexType name="en.del" mixed="true"> > > > > <xs:complexContent mixed="true"> > > > > <xs:restriction base="ENXP"> > > > > <xs:attribute > > name="partType" type="cs_EntityNamePartType" fixed="DEL"/> > > <!-cs_EntityNamePartType is the type specified for this attribute > here à > > > > </xs:restriction> > > > > </xs:complexContent> > > > > </xs:complexType> > > > > > > > > Notice that attribute "partType" is defined in the "en.del" > complexType > > and also "re-defined" in "delimiter" element in the complex type > "ON". I > > say re-defined because the type of the attribute named "partType" is > > "cs_EntityNamePartType" in the "en.del" complex type, whereas it is > of > > type "cs_OrganizationNamePartType" in the "delimiter" attribute in > the > > complex type named "ON". > > > > > > > > I'm sure you can already tell that this is quite "suspicious"! > > > > > > > > When I try to generate code for the ON complex type, there is > something > > like this that is the output: > > > > > > > > *public* *class* ONDelimiter *extends* castor.test.En_del > > > > *implements* java.io.Serializable > > > > { > > > > > > > > > > > > //----------------/ > > > > //- Constructors -/ > > > > //----------------/ > > > > > > > > *public* ONDelimiter() { > > > > *super*(); > > > > > > > setPartType(castor.test.types.Cs_OrganizationNamePartType./valueOf/("DE > L")); > > ///ERROR!!!! > > > > setContent(""); > > > > } > > > > > > > > ... <snip> > > > > > > > > Now, the En_del class is generated with a method of the following > signature: > > > > > > > > /** > > > > * Field _partType. > > > > */ > > > > *private* castor.test.types.Cs_EntityNamePartType _partType = > > castor.test.types.Cs_EntityNamePartType./valueOf/("DEL"); > > > > > > > > > > > > //----------------/ > > > > //- Constructors -/ > > > > //----------------/ > > > > > > > > *public* En_del() { > > > > *super*(); > > > > > > > setPartType(castor.test.types.Cs_EntityNamePartType./valueOf/("DEL")); > > > > setContent(""); > > > > } > > > > > > > > > > > > //-----------/ > > > > //- Methods -/ > > > > //-----------/ > > > > > > > > <snip!> > > > > > > > > /** > > > > * Returns the value of field 'partType'. > > > > * > > > > * [EMAIL PROTECTED] the value of field 'PartType'. > > > > */ > > > > *public* castor.test.types.Cs_EntityNamePartType getPartType( > > > > ) { > > > > *return* *this*._partType; > > > > } > > > > > > > > <snip!> > > > > > > > > /** > > > > * Sets the value of field 'partType'. > > > > * > > > > * [EMAIL PROTECTED] partType the value of field 'partType'. > > > > */ > > > > *public* *void* setPartType( > > > > *final* castor.test.types.Cs_EntityNamePartType partType) > { > > > > *this*._partType = partType; > > > > } > > > > > > > > <snip!> > > > > > > > > Of course the ONDelimiter class extends from the En_del class. The > > En_del class has a field named _partType that is of type > > castor.test.types.Cs_EntityNamePartType. Because ONDelimiter > subclasses > > En_del, it can't set _partType to a > > castor.test.types.Cs_OrganizationNamePartType instance like it > attempts > > to in the ONDelimiter constructor. And the ONDelimiter class has no > > field of that type either. > > > > > > > > If it helps, here are the definition of Cs_EntityNamePartType and > > Cs_OrganizationNamePartType snippets of the schema: > > > > > > > > <xs:simpleType name="cs_EntityNamePartType"> > > > > <xs:restriction base="cs"> > > > > <xs:enumeration value="FAM"/> > > > > <xs:enumeration value="GIV"/> > > > > <xs:enumeration value="PFX"/> > > > > <xs:enumeration value="SFX"/> > > > > <xs:enumeration value="DEL"/> > > > > </xs:restriction> > > > > </xs:simpleType> > > > > > > > > <xs:simpleType name="cs_OrganizationNamePartType"> > > > > <xs:restriction base="cs_EntityNamePartType"> > > > > <xs:enumeration value="PFX"/> > > > > <xs:enumeration value="SFX"/> > > > > <xs:enumeration value="DEL"/> > > > > </xs:restriction> > > > > </xs:simpleType> > > > > > > > > > > > > > > > > I'm hoping that you might be able to help me with either a workaround > > (changing the code directly is ok with me because this is the only > type > > of error in the Castor-generated code). I say "type" of error because > > this schema has this kind of definition a number of places and the > > errors are all similar. Of course, if there is a modification to the > > binding file that I can make for either of these types then that is > > better! One idea might be to not have one type extend from another, > and > > just have all the classes separate concrete classes. Is that a > > possibility in Castor? > > > > > > > > Thank you in advance for taking some time with this matter. I > appreciate > > any feedback and/or help you can give me. > > > > > > > > ---------------------------------------------- > > > > Justin Permar > > > > Research Programmer > > > > Department of Biomedical Informatics > > > > The Ohio State University > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe from this list please visit: > > http://xircles.codehaus.org/manage_email --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email

