Thanks a lot it worked
On Mon, May 3, 2010 at 11:50 PM, Wolfgang Laun <wolfgang.laun_at_gmail.com>wrote:
> OK, but you realize that a string "other" if it appears in the XML is *not
> *valid XML
> because it contradicts the XML schema?!
>
> There is a way to force JAXB to create java.lang.String types for *all*types
> where <restriction><enumeration...>... is in the XML schema. Specify the
> following bindings file (replace the XXXXXXXXXXXX with the path to your XML
> schema) when you call xjc.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <jxb:bindings version="1.0"
> xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <jxb:bindings schemaLocation="XXXXXXXXXXXXX.xsd" node="/xs:schema">
> <jaxb:globalBindings typesafeEnumMaxMembers="1"/>
> </jxb:bindings>
> </jxb:bindings>
>
> -W
>
>
>
> On Mon, May 3, 2010 at 7:39 PM, Rochak Gupta <rochak005_at_gmail.com> wrote:
> > it will be string value. we are not facing this in marshalling. it is
> before
> > that while populating the JAXB Generated pojo.
> > .
> > This is error i am getting when we have some value other than defined in
> > enum like SA, SO. we are setting in the pojo "other" which is not
> defined
> > in enum
> >
> >
> > p2j1 - Exception while generating WFM information for order C10016B0
> >
> > java.lang.IllegalArgumentException: No enum const class
> > com.bellsouth.snt.broadbandos.idm.xml.wfm.schema.SubSystemEnumDef.Other
> >
> > at java.lang.Enum.valueOf(Enum.java:196)
> >
> > at
> >
> com.bellsouth.snt.broadbandos.idm.xml.wfm.schema.SubSystemEnumDef.valueOf(SubSystemEnumDef.java:30)
> >
> > at
> >
> com.bellsouth.snt.broadbandos.idm.xml.wfm.schema.SubSystemEnumDef.fromValue(SubSystemEnumDef.java:42)
> >
>
> >
> >
> > On Mon, May 3, 2010 at 9:46 PM, Wolfgang Laun <wolfgang.laun_at_gmail.com>
> > wrote:
> >>
> >> As I wrote: It depends on how that enum type for ReturnCode is being
> used
> >> in
> >> other places.
> >>
> >> Which values do you need to process in input XML?
> >>
> >> I suppose you don't have problems while marshalling?
> >>
> >> What kind of "strange error" are you getting?
> >>
> >> I can't begin to think about a solution if all I know is "strange
> error".
> >>
> >> -W
> >>
> >>
> >> On Mon, May 3, 2010 at 5:05 PM, Rochak Gupta <rochak005_at_gmail.com>
> wrote:
> >> > problem is this is the way it was done in Jaxb1 and my application is
> >> > running with that. Now i am migrating this to jaxb2.0 and i cannot
> >> > change
> >> > the XSD. What can i do now ?
> >> >
> >> > Is there any way to define external binding to add values for
> enum that
> >> > are
> >> > not in XSD? or any other work around to overcome this ?
> >> > Thanks and regards,
> >> > Rochak
> >> > On Mon, May 3, 2010 at 5:35 PM, Wolfgang Laun <
> wolfgang.laun_at_gmail.com>
> >> > wrote:
> >> >>
> >> >> How an absent element or attribute is handled is not a question of
> the
> >> >> class of that element or attribute (and therefore the code of enum
> >> >> ReturnCode does not matter).
> >> >>
> >> >> If ReturnType is used as an attribute, the attribute definition may
> >> >> define use="optional" and default="whatever". Then, xjc will generate
> >> >> code giving you the default in return for an absent attribute.
> >> >>
> >> >> If ReturnCode is used as the type of an XML element, then XML Schema
> >> >> lets you specify minOccurs="0" with that element, indicating it may
> be
> >> >> absent, but there is no way to define a default value in XML Schema
> >> >> for that. (Any application that is not prepared to handle an absent
> >> >> element that may be omitted has a serious bug.)
> >> >>
> >> >> If the XML does contain a value, but not matching one of the
> >> >> <enumeration> values, then the XML is in error, and if this throws an
> >> >> exception, it is not a "strange error".
> >> >>
> >> >> -W
> >> >>
> >> >>
> >> >> On Mon, May 3, 2010 at 1:16 PM, Rochak Gupta <rochak005_at_gmail.com>
> >> >> wrote:
> >> >> > Hi ,
> >> >> >
> >> >> > We are getting strange error while upgrading our code from JAXB1.x
> >> >> > to
> >> >> > JAXB2.x .
> >> >> >
> >> >> > Here
> >> >> >
> >> >> > <simpleType name="ReturnCode">
> >> >> >
> >> >> > <restriction base="string">
> >> >> >
> >> >> > <enumeration value="Mal-formed Input"/>
> >> >> >
> >> >> > <enumeration value="TN/CLS and SO combination is not
> >> >> > found"/>
> >> >> >
> >> >> > <enumeration value="SO failed provisioning"/>
> >> >> >
> >> >> > <enumeration value="SO not found"/>
> >> >> >
> >> >> > </restriction>
> >> >> >
> >> >> > </simpleType>
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> > In JAXB2.X Returncode enum type is created. I have used the
> >> >> > decompiler
> >> >> > and
> >> >> > pasted here
> >> >> >
> >> >> > // Decompiled by DJ v3.7.7.81 Copyright 2004 Atanas Neshkov Date:
> >> >> > 5/1/2010
> >> >> > 3:21:30 PM
> >> >> >
> >> >> > // Home Page : http://members.fortunecity.com/neshkov/dj.html -
> >> >> > Check
> >> >> > often
> >> >> > for new version!
> >> >> >
> >> >> > // Decompiler options: packimports(3)
> >> >> >
> >> >> > // Source File Name: ReturnCode.java
> >> >> >
> >> >> > package com.bellsouth.snt.broadbandos.idm.xml.techaccess.schema;
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> > public final class ReturnCode extends Enum
> >> >> >
> >> >> > {
> >> >> >
> >> >> >
> >> >> >
> >> >> > public static ReturnCode[] values()
> >> >> >
> >> >> > {
> >> >> >
> >> >> > return (ReturnCode[])$VALUES.clone();
> >> >> >
> >> >> > }
> >> >> >
> >> >> >
> >> >> >
> >> >> > public static ReturnCode valueOf(String name)
> >> >> >
> >> >> > {
> >> >> >
> >> >> > return
> >> >> >
> >> >> >
> >> >> >
> (ReturnCode)Enum.valueOf(com/bellsouth/snt/broadbandos/idm/xml/techaccess/schema/ReturnCode,
> >> >> > name);
> >> >> >
> >> >> > }
> >> >> >
> >> >> >
> >> >> >
> >> >> > private ReturnCode(String s, int i, String v)
> >> >> >
> >> >> > {
> >> >> >
> >> >> > super(s, i);
> >> >> >
> >> >> > value = v;
> >> >> >
> >> >> > }
> >> >> >
> >> >> >
> >> >> >
> >> >> > public String value()
> >> >> >
> >> >> > {
> >> >> >
> >> >> > return value;
> >> >> >
> >> >> > }
> >> >> >
> >> >> >
> >> >> >
> >> >> > public static ReturnCode fromValue(String v)
> >> >> >
> >> >> > {
> >> >> >
> >> >> > ReturnCode arr$[] = values();
> >> >> >
> >> >> > int len$ = arr$.length;
> >> >> >
> >> >> > for(int i$ = 0; i$ < len$; i$++)
> >> >> >
> >> >> > {
> >> >> >
> >> >> > ReturnCode c = arr$[i$];
> >> >> >
> >> >> > if(c.value.equals(v))
> >> >> >
> >> >> > return c;
> >> >> >
> >> >> > }
> >> >> >
> >> >> >
> >> >> >
> >> >> > throw new IllegalArgumentException(v);
> >> >> >
> >> >> > }
> >> >> >
> >> >> >
> >> >> >
> >> >> > public static final ReturnCode MAL_FORMED_INPUT;
> >> >> >
> >> >> > public static final ReturnCode
> >> >> > TN_CLS_AND_SO_COMBINATION_IS_NOT_FOUND;
> >> >> >
> >> >> > public static final ReturnCode SO_FAILED_PROVISIONING;
> >> >> >
> >> >> > public static final ReturnCode SO_NOT_FOUND;
> >> >> >
> >> >> > private final String value;
> >> >> >
> >> >> > private static final ReturnCode $VALUES[];
> >> >> >
> >> >> >
> >> >> >
> >> >> > static
> >> >> >
> >> >> > {
> >> >> >
> >> >> > MAL_FORMED_INPUT = new ReturnCode("MAL_FORMED_INPUT", 0,
> >> >> > "Mal-formed
> >> >> > Input");
> >> >> >
> >> >> > TN_CLS_AND_SO_COMBINATION_IS_NOT_FOUND = new
> >> >> > ReturnCode("TN_CLS_AND_SO_COMBINATION_IS_NOT_FOUND", 1, "TN/CLS and
> >> >> > SO
> >> >> > combination is not found");
> >> >> >
> >> >> > SO_FAILED_PROVISIONING = new
> >> >> > ReturnCode("SO_FAILED_PROVISIONING", 2,
> >> >> > "SO failed provisioning");
> >> >> >
> >> >> > SO_NOT_FOUND = new ReturnCode("SO_NOT_FOUND", 3, "SO not
> >> >> > found");
> >> >> >
> >> >> > $VALUES = (new ReturnCode[] {
> >> >> >
> >> >> > MAL_FORMED_INPUT,
> TN_CLS_AND_SO_COMBINATION_IS_NOT_FOUND,
> >> >> > SO_FAILED_PROVISIONING, SO_NOT_FOUND
> >> >> >
> >> >> > });
> >> >> >
> >> >> > }
> >> >> >
> >> >> > }
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> > Now if there is any other value it throws exception . Our concern
> is
> >> >> > can
> >> >> > we
> >> >> > some way or through some external binding some default value to the
> >> >> > enum
> >> >> > so
> >> >> > that if its null it takes default value .
> >> >> >
> >> >> > Thanks and regards,
> >> >> >
> >> >> > Rochak
> >> >>
> >> >> ---------------------------------------------------------------------
> >> >> 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
> >>
> >
> >
>
>