Scott, looks like the EnumerationFactory has some problems with bindings for INT based enumerations (as opposed to string based). Can I please ask you to create a new JIra issue at http://jira.codehaus.org/browse/CASTOR, and attach all relevent files (XML schema, binding).
Thanks Werner Scott Arnold wrote: > I am having trouble figuring out how enumBinding in a custom bindings file is > supposed to work with Castor 1.1. I am working with a schema developed by > another organization and am evaluating whether or not I can effectively use > Castor with it. Given how they formatted their schema and using my example, > the typesafe objects created by Castor by default are named VALUE_5810 and > VALUE_5820. Ideally, I would like to have them named something more like > COMMUNITY_NON_PROFIT and PRIVATE. From the documentation, it would seem I > should be able to accomplish this using a bindings file. Below are examples > of the schema, a bindings file I tried to use (which only tries to rename the > first enumerated value), along with examples of the generated code I got > versus the code I was actually expecting. The code generator runs without > any errors, but the bindings file has no effect. I am quite sure it is > reading the bindings file because if I add something invalid to it, it will > cause an exception. Any idea what is going on here? > > Thank you, > > Scott Arnold > Analyst > BJCHealthCare > > > Example of schema layout: > > > <?xml version="1.0" encoding="UTF-8"?> > <xs:schema xmlns="http://www.boone.org" > xmlns:xs="http://www.w3.org/2001/XMLSchema" > targetNamespace="http://www.boone.org" elementFormDefault="qualified" > attributeFormDefault="unqualified"> > <xs:simpleType name="OrganizationalType"> > <xs:restriction base="xs:integer"> > <xs:enumeration value="5810"> > <xs:annotation> > <xs:documentation>Community, > Non-Profit</xs:documentation> > </xs:annotation> > </xs:enumeration> > <xs:enumeration value="5820"> > <xs:annotation> > > <xs:documentation>Private</xs:documentation> > </xs:annotation> > </xs:enumeration> > </xs:restriction> > </xs:simpleType> > <xs:element name="OrganizationalInfo"> > <xs:complexType> > <xs:sequence> > <xs:element name="FirstOrgType" type="OrganizationalType"/> > > <xs:element name="SecondOrgType" type="OrganizationalType"/> > </xs:sequence> > </xs:complexType> > </xs:element> > </xs:schema> > > > Example of bindings file: > > > <binding xmlns="http://www.boone.org" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.boone.org > E:\\java\\schematest\\enumBindingTest.xsd" > defaultBinding="element"> > <enumBinding name="/enumType:OrganizationalType"> > <enum-def> > <enumMember> > <value>5810</value> > <javaName>COMMUNITY_NON_PROFIT</javaName> > </enumMember> > </enum-def> > </enumBinding> > </binding> > > > Executed from command line: > > > java org.exolab.castor.builder.SourceGeneratorMain -i > schematest\enumBindingTest.xsd -package org.boone.btest -binding-file > testbinding.xml > > > What I got in the OrganizationalType class: > > > /** > * The 5810 type > */ > public static final int VALUE_5810_TYPE = 0; > > /** > * The instance of the 5810 type > */ > public static final OrganizationalType VALUE_5810 = new > OrganizationalType(VALUE_5810_TYPE, "5810"); > > > What I was expecting: > > > /** > * The 5810 type > */ > public static final int COMMUNITY_NON_PROFIT_TYPE = 0; > > /** > * The instance of the 5810 type > */ > public static final OrganizationalType COMMUNITY_NON_PROFIT = new > OrganizationalType(COMMUNITY_NON_PROFIT_TYPE, "5810"); > > > > > --------------------------------------------------------------------- > 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

