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.

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>

Struct4 Bean

// Generated from examples.xsd
// On Wed Jun 09 11:15:21 EDT 2004
                                                                           
package examples;
                                                                           
public class Struct4
    implements java.io.Serializable
{
    public Struct4() {}
                                                                           
    public Struct4(examples.Str1 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 examples.Str1 _Str1;
                                                                           
    public examples.Str1 getStr1() {
    |   return _Str1;
    }
                                                                           
    public void setStr1(examples.Str1 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("examples.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 (!(examples.Struct4.class.isAssignableFrom(object.getClass()))) return false;
    |   examples.Struct4 obj = (examples.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(); }
                                                                           
}

Struct4 Marshaler

// Generated from examples.xsd
// On Wed Jun 09 11:15:17 EDT 2004
                                                                           
package examples_olddb;
                                                                           
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
    {
    |   examples_olddb.Struct4 obj = (examples_olddb.Struct4) object;
    }
                                                                           
    public java.lang.Object deserialize(com.sssw.jbroker.web.portable.InputStream is, java.lang.Class javaType) throws java.io.IOException
    {
    |   if (!examples_olddb.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());
    |   examples_olddb.Struct4 obj = null;
    |   try {
    |   |   obj = (examples_olddb.Struct4) javaType.newInstance();
    |   } catch(Throwable e) {
    |   |   throw new com.sssw.jbroker.web.ServiceException("error instantiating " + javaType.getName());
    |   }
    |   is.setObject(null, obj);
    |   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;
    |   examples_olddb.Struct4 obj = (examples_olddb.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.xsd.mapping.CalendarMapping.serializeCalendar(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(examples_olddb.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(examples_olddb.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.xsd.mapping.CalendarMapping.deserializeCalendar(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; }
}

Anonymous type Bean

// Generated from examples.xsd
// On Wed Jun 09 11:15:17 EDT 2004
                                                                           
package examples_olddb;
                                                                           
public class Struct4Str1
 implements java.io.Serializable
{
    protected Struct4Str1(java.lang.String value) {
    |   _value = value;
    }
                                                                           
                                                                           
                                                                           
    public static final java.lang.String _air = "air";
    public static final Struct4Str1 air = new Struct4Str1(_air);
                                                                           
    public static final java.lang.String _groung = "groung";
    public static final Struct4Str1 groung = new Struct4Str1(_groung);
                                                                           
    public static final java.lang.String _any = "any";
    public static final Struct4Str1 any = new Struct4Str1(_any);
                                                                           
    public static examples_olddb.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 examples_olddb.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");
    }
                                                                           
                                                                           
                                                                           
                                                                           
    private java.lang.String _value;
                                                                           
    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 (!(examples_olddb.Struct4Str1.class.isAssignableFrom(obj.getClass()))) return false;
    |   examples_olddb.Struct4Str1 object = (examples_olddb.Struct4Str1) obj;
    |   return object.getValue().equals(this.getValue());
    }
                                                                           
                                                                           
    public int hashCode() { return toString().hashCode(); }
                                                                           
}

Anonymous type Marshaler

// Generated from examples.xsd
// On Wed Jun 09 11:15:17 EDT 2004
                                                                           
package examples_olddb;
                                                                           
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
    {
    |   examples_olddb.Struct4Str1 obj = (examples_olddb.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
    {
    |   return examples_olddb.Struct4Str1.fromString(is.readContent());
    }
    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;
    |   return null;
    }
                                                                           
    public static void validate(java.lang.String val) {
    }
                                                                           
                                                                           
                                                                           
    public java.lang.String getMechanismType() { return null; }
}
Copyright © 2000-2004, Novell, Inc. All rights reserved.