Great! thanks for sharing your knowledge Wolfgang.
I had to use this in the header to get things working:
xmlns:jaxb="
http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0"
Version was needed apparently.
But my IDE can't find any reference with
http://java.sun.com/xml/ns/jaxb
I tried xmlns:jaxb="
http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
which is found, but got an error.
No way to get a unique ObjectFactory for several namespaces I guess?
cheers
-jean
Wolfgang Laun-2 wrote:
>
> This customization forces the Java enum name to be whatever is the
> value of @name.
>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
> targetNamespace="model"
> jaxb:version="2.0">
> <xs:simpleType name="psType">
> <xs:annotation>
> <xs:appinfo>
> <jaxb:typesafeEnumClass>
> <jaxb:typesafeEnumMember name="BETA2" value="beta2"/>
> </jaxb:typesafeEnumClass>
> </xs:appinfo>
> </xs:annotation>
> <xs:restriction base="xs:string">
> <xs:enumeration value="one"/>
> <xs:enumeration value="two"/>
> <xs:enumeration value="beta2">
> ...
>
> -W
>
>
> On 26 October 2010 14:23, Jean_at_Eastcode <jean.eastcode_at_gmail.com> wrote:
>>
>> Hi Wolfgang,
>>
>> very good piece of example, highly helpful for me.
>>
>> I finally made it with my enums in a specific "model" package, and with
>> one
>> invocation of XJC only.
>> Somehow, I get two ObjectFactory.java generated, one per
>> package/namespace.
>> But the one for the "model" is just empty. Isn't there a way to generate
>> one
>> only?
>>
>> I've got a bigger problem though, hopefully easy to solve through some
>> configuration that I can't find:
>>
>> I've got an Enum that has a value BETA2, containing a number. This
>> triggers
>> the generation of a specific Java enum class, as follow:
>>
>> public enum TrainingOrigin {
>>
>> EXTRANET("EXTRANET"),
>> INTRANET("INTRANET"),
>> @XmlEnumValue("BETA2")
>> BETA_2("BETA2");
>> private final String value;
>>
>> TrainingOrigin(String v) {
>> value = v;
>> }
>>
>> public String value() {
>> return value;
>> }
>>
>> public static TrainingOrigin fromValue(String v) {
>> for (TrainingOrigin c: TrainingOrigin.values()) {
>> if (c.value.equals(v)) {
>> return c;
>> }
>> }
>> throw new IllegalArgumentException(v);
>> }
>> }
>>
>> I need to keep the value as BETA2, and not BETA_2.
>>
>> Would you happen to know how to control this in the generation?
>>
>> cheers
>> -jean
>>
>>
>> Wolfgang Laun-2 wrote:
>>>
>>> You just put the simple type into another schema with another namespace.
>>>
>>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>>> xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
>>> targetNamespace="model"
>>> version="2.0">
>>>
>>> <xs:simpleType name="psType">
>>> <xs:restriction base="xs:string">
>>> <xs:enumeration value="one"/>
>>> <xs:enumeration value="two"/>
>>> </xs:restriction>
>>> </xs:simpleType>
>>>
>>> </xs:schema>
>>>
>>> This is imported from the other schema:
>>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>>> xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
>>> targetNamespace="package"
>>> xmlns:m="model"
>>> xmlns:p="package"
>>> version="2.0">
>>>
>>> <xs:import namespace="model" schemaLocation="enum.xsd"/>
>>>
>>> <xs:element name="doc" type="p:DocType"/>
>>>
>>> <xs:complexType name="DocType">
>>> <xs:sequence>
>>> <xs:element name="Topo" type="m:psType"/>
>>> <xs:element name="Count" type="xs:int" default="1" minOccurs="0"/>
>>> </xs:sequence>
>>> </xs:complexType>
>>>
>>> </xs:schema>
>>>
>>> -W
>>>
>>>
>>>
>>>
>>>
>>>
>>> On 26 October 2010 09:37, Jean_at_Eastcode <jean.eastcode_at_gmail.com> wrote:
>>>
>>>>
>>>> Actually, the Enum XJC generates are fine.
>>>> I just want to be able to specify their package, as I don't want it to
>>>> be
>>>> the same as the other generated classes.
>>>>
>>>> Is this at all possible?
>>>>
>>>> -jean
>>>>
>>>>
>>>> Wolfgang Laun-2 wrote:
>>>> >
>>>> > xjc generates enum types from xs:string with restriction/enumeration.
>>>> It
>>>> > should, however, be possible to use an Adapter to map the Schema type
>>>> > to your model enum types.
>>>> > -W
>>>> >
>>>> > On 25 October 2010 12:20, Jean_at_Eastcode <jean.eastcode_at_gmail.com>
>>>> wrote:
>>>> >
>>>> >>
>>>> >> Hi,
>>>> >>
>>>> >> I'm using jaxb2-maven-plugin to get automatic generation of my Java
>>>> >> bindings
>>>> >> from XSDs.
>>>> >>
>>>> >> I'm introducing the use of Enums, hence I have to create simpleTypes
>>>> that
>>>> >> maps the Java Enum values.
>>>> >>
>>>> >> The XSD as well as the generated classes are all in a binding
>>>> "package"
>>>> >>
>>>> >> The enums are in a different package since they are not
>>>> autogenerated,
>>>> >> called "model".
>>>> >>
>>>> >> I want the generated classes to use the original Java "model" enum,
>>>> but
>>>> >> jaxb
>>>> >> keep generating them into "binding".
>>>> >>
>>>> >> I've split all the simpleType corresponding to the Java enums in a
>>>> >> EnumTypes.xsd that I put in "model" but still, corresponding Java
>>>> enums
>>>> >> are
>>>> >> always created in "binding".
>>>> >>
>>>> >> Is there a way to generate EnumsTypes.xsd classes in "model", and to
>>>> have
>>>> >> classes generated into "binding" be linked to them?
>>>> >>
>>>> >> FYI, here's my plugin config:
>>>> >>
>>>> >> <plugin>
>>>> >> <groupId>org.codehaus.mojo</groupId>
>>>> >> <artifactId>jaxb2-maven-plugin</artifactId>
>>>> >> <version>1.3</version>
>>>> >> <executions>
>>>> >> <execution>
>>>> >> <id>binding</id>
>>>> >> <goals>
>>>> >> <goal>xjc</goal>
>>>> >> </goals>
>>>> >> <configuration>
>>>> >>
>>>> >>
>>>> >>
>>>> <schemaDirectory>src/main/resources/com//comp/project/app/common/binding</schemaDirectory>
>>>> >>
>>>> >> <packageName>com.comp.project.app.common.binding</packageName>
>>>> >>
>>>> >> <outputDirectory>src/main/generated</outputDirectory>
>>>> >> <clearOutputDir>false</clearOutputDir>
>>>> >> </configuration>
>>>> >> </execution>
>>>> >> <execution>
>>>> >> <id>model</id>
>>>> >> <goals>
>>>> >> <goal>xjc</goal>
>>>> >> </goals>
>>>> >> <configuration>
>>>> >>
>>>> >>
>>>> >>
>>>> <schemaDirectory>src/main/resources/com/comp/project/app/common/model</schemaDirectory>
>>>> >>
>>>> >> <packageName>com.comp.project.app.common.model</packageName>
>>>> >>
>>>> >> <outputDirectory>src/main/generated</outputDirectory>
>>>> >> <clearOutputDir>false</clearOutputDir>
>>>> >> </configuration>
>>>> >> </execution>
>>>> >> </executions>
>>>> >>
>>>> >> cheers
>>>> >>
>>>> >>
>>>> >> --
>>>> >> View this message in context:
>>>> >>
>>>> http://old.nabble.com/Generating-Java-bindings-in-different-packages-tp30046469p30046469.html
>>>> >> Sent from the java.net - jaxb users mailing list archive at
>>>> Nabble.com.
>>>> >>
>>>> >>
>>>> >>
>>>> ---------------------------------------------------------------------
>>>> >> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
>>>> >> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>>>> >>
>>>> >>
>>>> >
>>>> >
>>>>
>>>> --
>>>> View this message in context:
>>>> http://old.nabble.com/Generating-Java-bindings-in-different-packages-tp30046469p30054965.html
>>>> Sent from the java.net - jaxb users mailing list archive at Nabble.com.
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
>>>> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>>>>
>>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/Generating-Java-bindings-in-different-packages-tp30046469p30056982.html
>> Sent from the java.net - jaxb users mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
>> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>
>
>
--
View this message in context: http://old.nabble.com/Generating-Java-bindings-in-different-packages-tp30046469p30064011.html
Sent from the java.net - jaxb users mailing list archive at Nabble.com.