complexType using attributeGroup

This example shows complexType using attributeGroup as well as anonymous type from attribute defintion. Please see section 4 and 5 for bean and marshaler generated for the anonymous type.

1 schema

    <complexType name="Struct4">
        <all/>
        <attributeGroup ref="AttrGroup1"/>
    </complexType>
                                                                           
    <attributeGroup name="AttrGroup1">
        <attribute name="str1">
            <simpleType>
                <restriction base="xsd:string">
                    <enumeration value="air"/>
                    <enumeration value="groung"/>
                    <enumeration value="any"/>
                </restriction>
            </simpleType>
        </attribute>
        <attribute name="str2" type="xsd:string" use="prohibited"/>         
        <attribute name="int1" type="xsd:int"/>
        <attribute name="int2" type="xsd:int" use="optional"/>
        <attribute name="cal1" type="xsd:dateTime"  use="required"/>
    </attributeGroup>

2 Struct4 Bean

// Generated from complex.xsd
// On Mon Dec 08 11:11:34 EST 2003
                                                                           
package complex;
                                                                           
public class Struct4
    implements java.io.Serializable
{
    public Struct4() {}
                                                                           
    public Struct4(complex.Struct4Str1 str1Val, java.lang.String str2Val, java.lang.Integer int1Val, java.lang.Integer int2Val, java.util.Calendar cal1Val) {
    |   setStr1(str1Val);
    |   setStr2(str2Val);
    |   setInt1(int1Val);
    |   setInt2(int2Val);
    |   setCal1(cal1Val);
        }
    private complex.Struct4Str1 _str1;
                                                                           
    public complex.Struct4Str1 getStr1() {
    |   return _str1;
    }
                                                                           
    public void setStr1(complex.Struct4Str1 str1Val) {
    |   _str1 = str1Val;
    }
                                                                           
    private java.lang.String _str2;
                                                                           
    public java.lang.String getStr2() {
    |   return _str2;
    }
                                                                           
    public void setStr2(java.lang.String str2Val) {
    |   _str2 = str2Val;
    }
                                                                           
    private java.lang.Integer _int1;
                                                                           
    public java.lang.Integer getInt1() {
    |   return _int1;
    }
                                                                           
    public void setInt1(java.lang.Integer int1Val) {
    |   _int1 = int1Val;
    }
                                                                           
    private java.lang.Integer _int2;
                                                                           
    public java.lang.Integer getInt2() {
    |   return _int2;
    }
                                                                           
    public void setInt2(java.lang.Integer int2Val) {
    |   _int2 = int2Val;
    }
                                                                           
    private java.util.Calendar _cal1;
                                                                           
    public java.util.Calendar getCal1() {
    |   return _cal1;
    }
                                                                           
    public void setCal1(java.util.Calendar cal1Val) {
    |   _cal1 = cal1Val;
    }
                                                                           
    public java.lang.String toString() {
    |   java.lang.StringBuffer buffer = new java.lang.StringBuffer();
    |   buffer.append("complex.Struct4={");
    |   buffer.append("_str1="+_str1);
    |   buffer.append(",");
    |   buffer.append("_str2="+_str2);
    |   buffer.append(",");
    |   buffer.append("_int1="+_int1);
    |   buffer.append(",");
    |   buffer.append("_int2="+_int2);
    |   buffer.append(",");
    |   buffer.append("_cal1="+_cal1);
    |   buffer.append("}");
    |   return buffer.toString();
    }
                                                                           
    public boolean equals(java.lang.Object object) {
    |   if (object == null) return false;
    |   if (!(complex.Struct4.class.isAssignableFrom(object.getClass()))) return false;
    |   complex.Struct4 obj = (complex.Struct4) object;
    |                                                                      
    |   if (_str1 == null) {
    |   |   if (obj._str1 != null) return false;
    |   } else if (!_str1.equals(obj._str1)) return false;
    |                                                                      
    |   if (_str2 == null) {
    |   |   if (obj._str2 != null) return false;
    |   } else if (!_str2.equals(obj._str2)) return false;
    |                                                                      
    |   if (_int1 == null) {
    |   |   if (obj._int1 != null) return false;
    |   } else if (!_int1.equals(obj._int1)) return false;
    |                                                                      
    |   if (_int2 == null) {
    |   |   if (obj._int2 != null) return false;
    |   } else if (!_int2.equals(obj._int2)) return false;
    |                                                                      
    |   if (_cal1 == null) {
    |   |   if (obj._cal1 != null) return false;
    |   } else if (!_cal1.equals(obj._cal1)) return false;
    |                                                                      
    |                                                                      
    |                                                                      
    |   return true;
    }
                                                                           
    public int hashCode() { return toString().hashCode(); }
                                                                           
}

3 Struct4 Marshaler

// Generated from complex.xsd
// On Mon Dec 08 11:11:34 EST 2003
                                                                           
package complex;
                                                                           
public class Struct4Marshaler
 implements com.sssw.jbroker.web.encoding.Marshaler
{
    // attributes
    private static final javax.xml.namespace.QName _STR1 = new javax.xml.namespace.QName("http://www.structs.com", "str1");
    private static final javax.xml.namespace.QName _STR2 = new javax.xml.namespace.QName("http://www.structs.com", "str2");
    private static final javax.xml.namespace.QName _INT1 = new javax.xml.namespace.QName("http://www.structs.com", "int1");
    private static final javax.xml.namespace.QName _INT2 = new javax.xml.namespace.QName("http://www.structs.com", "int2");
    private static final javax.xml.namespace.QName _CAL1 = new javax.xml.namespace.QName("http://www.structs.com", "cal1");
                                                                           
                                                                           
    // elements
                                                                           
    public void serialize(com.sssw.jbroker.web.portable.OutputStream os, java.lang.Object object) throws java.io.IOException
    {
    |   complex.Struct4 obj = (complex.Struct4) object;
    }
                                                                           
    public java.lang.Object deserialize(com.sssw.jbroker.web.portable.InputStream is, java.lang.Class javaType) throws java.io.IOException
    {
    |   if (!complex.Struct4.class.isAssignableFrom(javaType))
    |       throw new
    |           com.sssw.jbroker.web.ServiceException("can not deserialize " + javaType.getName());
    |                                                                      
    |   // get attributes
    |   java.util.Map attributes = readAttributes(is.getAttributes());
    |   complex.Struct4 obj = null;
    |   try {
    |   |   obj = (complex.Struct4) javaType.newInstance();
    |   } catch(Throwable e) {
    |   |   throw new com.sssw.jbroker.web.ServiceException("error instantiating " + javaType.getName());
    |   }
    |   deserializeAttributes(obj, attributes);
    |                                                                      
    |                                                                      
    |   return obj;
    }
    public com.sssw.jbroker.web.encoding.Attribute[] getAttributes(java.lang.Object object)
    {
    |   javax.xml.namespace.QName qname = null;
    |   java.lang.String attVal = null;
    |   java.util.ArrayList attribs = new java.util.ArrayList();
    |   com.sssw.jbroker.web.encoding.Attribute[] attrs = null;
    |   com.sssw.jbroker.web.encoding.Attribute attr = null;
    |   complex.Struct4 obj = (complex.Struct4) object;
    |                                                                      
    |   if (obj.getStr1() != null) {
    |   |   qname = new javax.xml.namespace.QName("", "str1");
    |   |   attVal = java.lang.String.valueOf(obj.getStr1());
    |   |   attr = new com.sssw.jbroker.web.encoding.Attribute(qname, attVal);
    |   |   attribs.add(attr);
    |   }
    |                                                                      
    |   if (obj.getStr2() != null) {
    |   |   qname = new javax.xml.namespace.QName("", "str2");
    |   |   attVal = obj.getStr2();
    |   |   if (attVal != null) throw new IllegalArgumentException("{http://www.structs.com}str2 attribute is prohibited");
    |   |   attr = new com.sssw.jbroker.web.encoding.Attribute(qname, attVal);
    |   |   attribs.add(attr);
    |   }
    |                                                                      
    |   if (obj.getInt1() != null) {
    |   |   qname = new javax.xml.namespace.QName("", "int1");
    |   |   attVal = java.lang.String.valueOf(obj.getInt1());
    |   |   attr = new com.sssw.jbroker.web.encoding.Attribute(qname, attVal);
    |   |   attribs.add(attr);
    |   }
    |                                                                      
    |   if (obj.getInt2() != null) {
    |   |   qname = new javax.xml.namespace.QName("", "int2");
    |   |   attVal = java.lang.String.valueOf(obj.getInt2());
    |   |   attr = new com.sssw.jbroker.web.encoding.Attribute(qname, attVal);
    |   |   attribs.add(attr);
    |   }
    |                                                                      
    |   if (obj.getCal1() != null) {
    |   |   qname = new javax.xml.namespace.QName("", "cal1");
    |   |   attVal = com.sssw.jbroker.web.soap.mapping.CalendarMapping.serialize(obj.getCal1());
    |   |   if (attVal == null) throw new IllegalArgumentException("{http://www.structs.com}cal1 attribute is required");
    |   |   attr = new com.sssw.jbroker.web.encoding.Attribute(qname, attVal);
    |   |   attribs.add(attr);
    |   }
    |                                                                      
    |   attrs = new com.sssw.jbroker.web.encoding.Attribute[attribs.size()];
    |   attribs.toArray(attrs);
    |   return attrs;
    }
                                                                           
    private void deserializeAttributes(complex.Struct4 obj, java.util.Map attributes)
    throws java.io.IOException
    {
    |   // set attributes
    |   java.lang.String attr = null;
    |                                                                      
    |   attr = (java.lang.String) attributes.get(_STR1);
    |   if (attr != null) {
    |   |   attributes.remove(_STR1);
    |   |   obj.setStr1(complex.Struct4Str1.fromString(attr));
    |   }
    |                                                                      
    |   attr = (java.lang.String) attributes.get(_STR2);
    |   if (attr != null) {
    |   |   attributes.remove(_STR2);
    |       throw new IllegalArgumentException("{http://www.structs.com}str2 attribute is prohibited");}
    |                                                                      
    |   attr = (java.lang.String) attributes.get(_INT1);
    |   if (attr != null) {
    |   |   attributes.remove(_INT1);
    |   |   obj.setInt1(new java.lang.Integer(attr));
    |   }
    |                                                                      
    |   attr = (java.lang.String) attributes.get(_INT2);
    |   if (attr != null) {
    |   |   attributes.remove(_INT2);
    |   |   obj.setInt2(new java.lang.Integer(attr));
    |   }
    |                                                                      
    |   attr = (java.lang.String) attributes.get(_CAL1);
    |   if (attr != null) {
    |   |   attributes.remove(_CAL1);
    |   |   obj.setCal1(com.sssw.jbroker.web.soap.mapping.CalendarMapping.deserialize(attr));
    |   } else throw new IllegalArgumentException("{http://www.structs.com}cal1 attribute is required");
    }
                                                                           
    private java.util.Map readAttributes(org.xml.sax.Attributes attributes) {
    |   java.util.Map attrs = new java.util.HashMap();
    |   attrs.put(_STR1, attributes.getValue("str1"));
    |   attrs.put(_STR2, attributes.getValue("str2"));
    |   attrs.put(_INT1, attributes.getValue("int1"));
    |   attrs.put(_INT2, attributes.getValue("int2"));
    |   attrs.put(_CAL1, attributes.getValue("cal1"));
    |   return attrs;
    }
                                                                           
                                                                           
    public java.lang.String getMechanismType() { return null; }
}

4 Anonymous type Bean

// Generated from complex.xsd
// On Mon Dec 08 11:11:33 EST 2003
                                                                           
package complex;
                                                                           
public class Struct4Str1
 implements java.io.Serializable
{
                                                                           
    private java.lang.String _value;
                                                                           
    protected Struct4Str1(java.lang.String value) {
    |   _value = value;
    }
                                                                           
                                                                           
                                                                           
    public static final java.lang.String _air = new java.lang.String("air");
    public static final Struct4Str1 air = new Struct4Str1(_air);
                                                                           
    public static final java.lang.String _groung = new java.lang.String("groung");
    public static final Struct4Str1 groung = new Struct4Str1(_groung);
                                                                           
    public static final java.lang.String _any = new java.lang.String("any");
    public static final Struct4Str1 any = new Struct4Str1(_any);
                                                                           
    public static complex.Struct4Str1 fromValue(java.lang.String value) {
    |   if (value == null) throw new java.lang.IllegalArgumentException("can not instantiate enumeration with null value");
    |   if (value.equals(_air)) return air;
    |   if (value.equals(_groung)) return groung;
    |   if (value.equals(_any)) return any;
    |   throw new java.lang.IllegalArgumentException(">"+value+"< not in enumeration");
    }
                                                                           
                                                                           
    public static complex.Struct4Str1 fromString(java.lang.String value) {
    |   if (value == null) throw new java.lang.IllegalArgumentException("can not instantiate enumeration with null value");
    |   if (value.equals("air")) return air;
    |   if (value.equals("groung")) return groung;
    |   if (value.equals("any")) return any;
    |   throw new java.lang.IllegalArgumentException(">"+value+"< not in enumeration");
    }
                                                                           
                                                                           
                                                                           
    public java.lang.String getValue() {
    |   return _value;
    }
                                                                           
                                                                           
    public java.lang.String toString() { return _value.toString(); }
                                                                           
    public boolean equals(java.lang.Object obj) {
    |   if (obj == null) return false;
    |   if (!(complex.Struct4Str1.class.isAssignableFrom(obj.getClass()))) return false;
    |   complex.Struct4Str1 object = (complex.Struct4Str1) obj;
    |   return object.getValue().equals(this.getValue());
    }
                                                                           
                                                                           
    public int hashCode() { return toString().hashCode(); }
                                                                           
}

5 Anonymous type Marshaler

// Generated from complex.xsd
// On Mon Dec 08 11:11:33 EST 2003
                                                                           
package complex;
                                                                           
public class Struct4Str1Marshaler
 implements com.sssw.jbroker.web.encoding.Marshaler
{
    public void serialize(com.sssw.jbroker.web.portable.OutputStream os, java.lang.Object object) throws java.io.IOException
    {
    |   complex.Struct4Str1 obj = (complex.Struct4Str1) object;
    |   os.writeContent(obj.toString());
    }
                                                                           
    public java.lang.Object deserialize(com.sssw.jbroker.web.portable.InputStream is, java.lang.Class javaType) throws java.io.IOException
    {
    |   if (!complex.Struct4Str1.class.isAssignableFrom(javaType))
    |       throw new
    |           com.sssw.jbroker.web.ServiceException("can not deserialize " + javaType.getName());
    |                                                                      
    |   complex.Struct4Str1 obj = complex.Struct4Str1.fromString(is.readContent());
    |                                                                      
    |   return obj;
    }
    public com.sssw.jbroker.web.encoding.Attribute[] getAttributes(java.lang.Object object)
    {
    |   javax.xml.namespace.QName qname = null;
    |   java.lang.String attVal = null;
    |   java.util.ArrayList attribs = new java.util.ArrayList();
    |   com.sssw.jbroker.web.encoding.Attribute[] attrs = null;
    |   com.sssw.jbroker.web.encoding.Attribute attr = null;
    |   complex.Struct4Str1 obj = (complex.Struct4Str1) object;
    |   return null;
    }
                                                                           
                                                                           
    public java.lang.String getMechanismType() { return null; }
}
Copyright © 2000-2003, Novell, Inc. All rights reserved.