Author: jochen
Date: Thu Aug 31 05:29:41 2006
New Revision: 438889

URL: http://svn.apache.org/viewvc?rev=438889&view=rev
Log:
The element jaxb:property/jaxb:baseType/jaxb:javaType wasn't honured.

Removed:
    
webservices/jaxme/branches/MAVEN/projects/jm/src/test/resources/bindings/bindings.jxb
Modified:
    
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/SGFactory.java
    
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBAttributeSG.java
    
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBObjectSG.java
    
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSGFactory.java
    
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSchemaSG.java
    
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSimpleContentTypeSG.java
    
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBTypeSG.java
    
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
    
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/UnionTypeSGImpl.java
    
webservices/jaxme/branches/MAVEN/projects/jm/src/test/java/org/apache/ws/jaxme/junit/BindingsTest.java
    
webservices/jaxme/branches/MAVEN/projects/pm/src/main/java/org/apache/ws/jaxme/pm/generator/jdbc/JaxMeJdbcSG.java
    webservices/jaxme/branches/MAVEN/status.xml
    
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/SGFactory.java
    
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBAttributeSG.java
    
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBObjectSG.java
    
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSGFactory.java
    
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSchemaSG.java
    
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSimpleContentTypeSG.java
    
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBTypeSG.java
    
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
    
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/types/UnionTypeSGImpl.java
    
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/junit/BindingsTest.java
    
webservices/jaxme/branches/b0_5/src/pm/org/apache/ws/jaxme/pm/generator/jdbc/JaxMeJdbcSG.java
    webservices/jaxme/branches/b0_5/src/test/jaxb/bindings/bindings.jxb
    webservices/jaxme/branches/b0_5/src/test/jaxb/bindings/bindings.xsd
    webservices/jaxme/branches/b0_5/status.xml

Modified: 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/SGFactory.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/SGFactory.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/SGFactory.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/SGFactory.java
 Thu Aug 31 05:29:41 2006
@@ -25,6 +25,7 @@
 import org.apache.ws.jaxme.xs.XSParser;
 import org.apache.ws.jaxme.xs.XSSchema;
 import org.apache.ws.jaxme.xs.XSType;
+import org.apache.ws.jaxme.xs.jaxb.JAXBProperty;
 import org.apache.ws.jaxme.xs.xml.XsObjectFactory;
 import org.apache.ws.jaxme.xs.xml.XsQName;
 import org.apache.ws.jaxme.generator.sg.Context;
@@ -136,12 +137,12 @@
    * [EMAIL PROTECTED] org.apache.ws.jaxme.generator.sg.TypeSGChain}
    * interface.</p>
    */
-  public Object newTypeSG(XSType pType) throws SAXException;
+  public Object newTypeSG(XSType pType, JAXBProperty.BaseType pBaseType) 
throws SAXException;
 
   /** <p>Returns a global instance of [EMAIL PROTECTED] TypeSG} generating
    * the given type.</p>
    */
-  public TypeSG getTypeSG(XSType pType) throws SAXException;
+  public TypeSG getTypeSG(XSType pType, JAXBProperty.BaseType pBaseType) 
throws SAXException;
 
   /** <p>Creates a new, local instance of
    * [EMAIL PROTECTED] org.apache.ws.jaxme.generator.sg.TypeSGChain},
@@ -154,12 +155,12 @@
    * [EMAIL PROTECTED] org.apache.ws.jaxme.generator.sg.TypeSGChain}
    * interface.</p>
    */
-  public Object newTypeSG(XSType pType, Context pClassContext, XsQName pName) 
throws SAXException;
+  public Object newTypeSG(XSType pType, Context pClassContext, XsQName pName, 
JAXBProperty.BaseType pBaseType) throws SAXException;
 
   /** <p>Returns a local instance of [EMAIL PROTECTED] TypeSG} generating
    * the given type within the given [EMAIL PROTECTED] Context}.</p>
    */
-  public TypeSG getTypeSG(XSType pType, Context pClassContext, XsQName pName) 
throws SAXException;
+  public TypeSG getTypeSG(XSType pType, Context pClassContext, XsQName pName, 
JAXBProperty.BaseType pBaseType) throws SAXException;
 
   /** <p>Creates a new, local instance of
    * [EMAIL PROTECTED] org.apache.ws.jaxme.generator.sg.TypeSGChain},
@@ -172,13 +173,13 @@
    * [EMAIL PROTECTED] org.apache.ws.jaxme.generator.sg.TypeSGChain}
    * interface.</p>
    */
-  public Object newTypeSG(XSType pType, XsQName pName) throws SAXException;
+  public Object newTypeSG(XSType pType, XsQName pName, JAXBProperty.BaseType 
pBaseType) throws SAXException;
 
   /** <p>Returns a new instance of [EMAIL PROTECTED] TypeSG} generating
    * the given type, as if it were a global type with the
    * given name.</p>
    */
-  public TypeSG getTypeSG(XSType pType, XsQName pName) throws SAXException;
+  public TypeSG getTypeSG(XSType pType, XsQName pName, JAXBProperty.BaseType 
pBaseType) throws SAXException;
 
   /** <p>Creates a new instance of [EMAIL PROTECTED] XSParser}.</p>
    */

Modified: 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBAttributeSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBAttributeSG.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBAttributeSG.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBAttributeSG.java
 Thu Aug 31 05:29:41 2006
@@ -30,6 +30,8 @@
 import org.apache.ws.jaxme.xs.XSAttribute;
 import org.apache.ws.jaxme.xs.XSType;
 import org.apache.ws.jaxme.xs.XSWildcard;
+import org.apache.ws.jaxme.xs.jaxb.JAXBProperty;
+import org.apache.ws.jaxme.xs.jaxb.JAXBPropertyOwner;
 import org.apache.ws.jaxme.xs.xml.XsNamespaceList;
 import org.apache.ws.jaxme.xs.xml.XsQName;
 import org.apache.ws.jaxme.xs.xml.XsTWildcard;
@@ -62,13 +64,22 @@
         if (type == null) {
             throw new IllegalStateException("The attribute type must not be 
null.");
         }
+
+        final JAXBProperty.BaseType baseType;
+        if (pAttribute instanceof JAXBPropertyOwner) {
+               JAXBProperty property = ((JAXBPropertyOwner) 
pAttribute).getJAXBProperty();
+               baseType = property == null ? null : property.getBaseType();
+        } else {
+               baseType = null;
+        }
+
         if (type.isGlobal()) {
-               typeSG = getFactory().getTypeSG(type);
+               typeSG = getFactory().getTypeSG(type, baseType);
             if (typeSG == null) {
                throw new IllegalStateException("Unknown global type: " + 
type.getName());
             }
         } else {
-               typeSG = getFactory().getTypeSG(pAttribute.getType(), 
pClassContext, name);
+               typeSG = getFactory().getTypeSG(pAttribute.getType(), 
pClassContext, name, baseType);
         }
                isWildcard = false;
                namespaceList = null;
@@ -113,7 +124,7 @@
        public SchemaSG getSchema(AttributeSG pController) { return 
getSchema(); }
        public Locator getLocator(AttributeSG pController) { return 
getLocator(); }
        public XsQName getName(AttributeSG pController) { return name; }
-       
+
        public boolean isRequired(AttributeSG pAttrController) { return 
isRequired; }
        
        public void forAllValues(AttributeSG pController, JavaMethod pMethod,

Modified: 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBObjectSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBObjectSG.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBObjectSG.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBObjectSG.java
 Thu Aug 31 05:29:41 2006
@@ -37,8 +37,9 @@
 import org.apache.ws.jaxme.xs.XSAttribute;
 import org.apache.ws.jaxme.xs.XSElement;
 import org.apache.ws.jaxme.xs.XSObject;
-import org.apache.ws.jaxme.xs.XSSimpleContentType;
 import org.apache.ws.jaxme.xs.XSType;
+import org.apache.ws.jaxme.xs.jaxb.JAXBProperty;
+import org.apache.ws.jaxme.xs.jaxb.JAXBPropertyOwner;
 import org.apache.ws.jaxme.xs.xml.XsQName;
 import org.xml.sax.Locator;
 import org.xml.sax.SAXException;
@@ -112,14 +113,22 @@
       myClassContext = new GlobalContext(name, contextObject, null, null, 
pSchema);
     }
 
+    final JAXBProperty.BaseType baseType;
+    if (pObject instanceof JAXBPropertyOwner) {
+       JAXBProperty property = ((JAXBPropertyOwner) pObject).getJAXBProperty();
+       baseType = property == null ? null : property.getBaseType();
+    } else {
+       baseType = null;
+    }
+
     if (isClassGlobal) {
       if (type.isGlobal()) {
-        typeSG = pFactory.getTypeSG(type);
+        typeSG = pFactory.getTypeSG(type, baseType);
       } else {
-        typeSG = pFactory.getTypeSG(type, myClassContext.getName());
+        typeSG = pFactory.getTypeSG(type, myClassContext.getName(), baseType);
       }
     } else {
-      typeSG = pFactory.getTypeSG(type, myClassContext, name);
+      typeSG = pFactory.getTypeSG(type, myClassContext, name, baseType);
     }
 
     if (useTypesContext) {
@@ -139,20 +148,6 @@
       classContext = null;
     }
     log.finest(mName, "<-", new Object[]{typeSG, classContext});
-  }
-
-  /** <p>Creates a new instance of JAXBObjectSG generating the given simple
-   * content <code>pContent</code> of the given complex type
-   * <code>pComplexType</code>.</p>
-   */
-  public JAXBObjectSG(SGFactory pFactory, SchemaSG pSchema, TypeSG 
pComplexType,
-                       XSSimpleContentType pContainer, XSType pType) throws 
SAXException {
-    super(pFactory, pSchema, pType);
-    global = false;
-    type = pType;
-    name = null;
-    classContext = pComplexType.getComplexTypeSG().getClassContext();
-    typeSG = pFactory.getTypeSG(type, classContext, null);
   }
 
   /** <p>Creates a new instance of JAXBObjectSG generating the given

Modified: 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSGFactory.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSGFactory.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSGFactory.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSGFactory.java
 Thu Aug 31 05:29:41 2006
@@ -47,6 +47,7 @@
 import org.apache.ws.jaxme.xs.XSParser;
 import org.apache.ws.jaxme.xs.XSSchema;
 import org.apache.ws.jaxme.xs.XSType;
+import org.apache.ws.jaxme.xs.jaxb.JAXBProperty;
 import org.apache.ws.jaxme.xs.jaxb.impl.JAXBObjectFactoryImpl;
 import org.apache.ws.jaxme.xs.jaxb.impl.JAXBParser;
 import org.apache.ws.jaxme.xs.jaxb.impl.JAXBXsObjectFactoryImpl;
@@ -187,12 +188,12 @@
                return new JAXBSchemaSG(pController, pSchema);
        }
        
-       public TypeSG getTypeSG(SGFactory pController, XSType pType) throws 
SAXException {
+       public TypeSG getTypeSG(SGFactory pController, XSType pType, 
JAXBProperty.BaseType pBaseType) throws SAXException {
                final String mName = "getTypeSG(XSType)";
                TypeSG result = (TypeSG) types.get(pType);
                if (result == null) {
                        log.finest(mName, "->", pType.getName());
-                       TypeSGChain chain = (TypeSGChain) 
pController.newTypeSG(pType);
+                       TypeSGChain chain = (TypeSGChain) 
pController.newTypeSG(pType, pBaseType);
                        result = new TypeSGImpl(chain);
                        types.put(pType, result);
                        typesByOrder.add(result);
@@ -202,17 +203,17 @@
                return result;
        }
        
-       public Object newTypeSG(SGFactory pController, XSType pType) throws 
SAXException {
+       public Object newTypeSG(SGFactory pController, XSType pType, 
JAXBProperty.BaseType pBaseType) throws SAXException {
                if (schemaSG == null) {
                        throw new IllegalStateException("A schema has not yet 
been created");
                }
-               return new JAXBTypeSG(pController, schemaSG, pType);
+               return new JAXBTypeSG(pController, schemaSG, pType, pBaseType);
        }
        
-       public TypeSG getTypeSG(SGFactory pController, XSType pType, Context 
pClassContext, XsQName pName) throws SAXException {
+       public TypeSG getTypeSG(SGFactory pController, XSType pType, Context 
pClassContext, XsQName pName, JAXBProperty.BaseType pBaseType) throws 
SAXException {
                final String mName = "getTypeSG(XSType,ClassContext)";
                log.finest(mName, "->", new Object[]{pType, pClassContext});
-        TypeSGChain chain = (TypeSGChain) pController.newTypeSG(pType, 
pClassContext, pName);
+        TypeSGChain chain = (TypeSGChain) pController.newTypeSG(pType, 
pClassContext, pName, pBaseType);
                TypeSG result = new TypeSGImpl(chain);
                typesByOrder.add(result);
                result.init();
@@ -220,22 +221,24 @@
                return result;
        }
        
-       public Object newTypeSG(SGFactory pController, XSType pType, Context 
pClassContext, XsQName pName) throws SAXException {
+       public Object newTypeSG(SGFactory pController, XSType pType, Context 
pClassContext, XsQName pName,
+                       JAXBProperty.BaseType pBaseType) throws SAXException {
                if (schemaSG == null) {
                        throw new IllegalStateException("A schema has not yet 
been created");
                }
-               return new JAXBTypeSG(pController, schemaSG, pType, 
pClassContext, pName);
+               return new JAXBTypeSG(pController, schemaSG, pType, 
pClassContext, pName, pBaseType);
        }
        
-       public Object newTypeSG(SGFactory pController, XSType pType, XsQName 
pName) throws SAXException {
+       public Object newTypeSG(SGFactory pController, XSType pType, XsQName 
pName,
+                       JAXBProperty.BaseType pBaseType) throws SAXException {
                if (schemaSG == null) {
                        throw new IllegalStateException("A schema has not yet 
been created");
                }
-               return new JAXBTypeSG(pController, schemaSG, pType, pName);
+               return new JAXBTypeSG(pController, schemaSG, pType, pName, 
pBaseType);
        }
        
-       public TypeSG getTypeSG(SGFactory pController, XSType pType, XsQName 
pName) throws SAXException {
-               TypeSGChain chain = (TypeSGChain) pController.newTypeSG(pType, 
pName);
+       public TypeSG getTypeSG(SGFactory pController, XSType pType, XsQName 
pName, JAXBProperty.BaseType pBaseType) throws SAXException {
+               TypeSGChain chain = (TypeSGChain) pController.newTypeSG(pType, 
pName, pBaseType);
                TypeSG result = new TypeSGImpl(chain);
                typesByOrder.add(result);
                result.init();

Modified: 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSchemaSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSchemaSG.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSchemaSG.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSchemaSG.java
 Thu Aug 31 05:29:41 2006
@@ -157,7 +157,7 @@
     if (type == null) {
       return null;
     }
-    typeSG = pController.getFactory().getTypeSG(type);
+    typeSG = pController.getFactory().getTypeSG(type, null);
     typesByName.put(pName, typeSG);
     return typeSG;
   }

Modified: 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSimpleContentTypeSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSimpleContentTypeSG.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSimpleContentTypeSG.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBSimpleContentTypeSG.java
 Thu Aug 31 05:29:41 2006
@@ -40,7 +40,7 @@
     xsType = pType;
     typeSG = pComplexTypeSG.getTypeSG();
     XSType theSimpleType = pType.getComplexType().getSimpleContent().getType();
-    contentTypeSG = typeSG.getFactory().getTypeSG(theSimpleType, 
pComplexTypeSG.getClassContext(), null);
+    contentTypeSG = typeSG.getFactory().getTypeSG(theSimpleType, 
pComplexTypeSG.getClassContext(), null, null);
   }
 
   public Object newPropertySGChain(SimpleContentSG pController) throws 
SAXException {

Modified: 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBTypeSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBTypeSG.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBTypeSG.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/JAXBTypeSG.java
 Thu Aug 31 05:29:41 2006
@@ -67,6 +67,7 @@
 import org.apache.ws.jaxme.xs.jaxb.JAXBEnumeration;
 import org.apache.ws.jaxme.xs.jaxb.JAXBGlobalBindings;
 import org.apache.ws.jaxme.xs.jaxb.JAXBJavaType;
+import org.apache.ws.jaxme.xs.jaxb.JAXBProperty;
 import org.apache.ws.jaxme.xs.jaxb.JAXBSchema;
 import org.apache.ws.jaxme.xs.jaxb.JAXBSchemaBindings;
 import org.apache.ws.jaxme.xs.jaxb.JAXBSimpleType;
@@ -135,17 +136,19 @@
   private final XsQName name;
   private Map properties;
   private final XsSchemaHeader schemaHeader;
+  private final JAXBProperty.BaseType baseType;
 
   /** <p>Creates a new, global instance of JAXBTypeSG.</p>
    */
-  protected JAXBTypeSG(SGFactory pFactory, SchemaSG pSchema, XSType pType)
+  protected JAXBTypeSG(SGFactory pFactory, SchemaSG pSchema, XSType pType, 
JAXBProperty.BaseType pBaseType)
       throws SAXException {
-    this(pFactory, pSchema, pType, null, pType.getName());
+    this(pFactory, pSchema, pType, null, pType.getName(), pBaseType);
     isGlobalClass = true;
   }
 
-  protected JAXBTypeSG(SGFactory pFactory, SchemaSG pSchema, XSType pType, 
XsQName pName) throws SAXException {
-    this(pFactory, pSchema, pType, null, pName);
+  protected JAXBTypeSG(SGFactory pFactory, SchemaSG pSchema, XSType pType, 
XsQName pName,
+                 JAXBProperty.BaseType pBaseType) throws SAXException {
+    this(pFactory, pSchema, pType, null, pName, pBaseType);
     isGlobalClass = true;
   }
 
@@ -155,7 +158,7 @@
       XsQName name = pReferencedType.getName();
       TypeSG result;
       if (pReferencedType.isGlobal()) {
-         result = pFactory.getTypeSG(pReferencedType);
+         result = pFactory.getTypeSG(pReferencedType, null);
          if (result == null) {
                  throw new SAXParseException("Unknown global type " + name,
                                                      
pReferencingType.getLocator());
@@ -169,9 +172,11 @@
   /** <p>Creates a new, local instance of JAXBTypeSG. Classes are generated
    * into the given context.</p>
    */
-  protected JAXBTypeSG(SGFactory pFactory, SchemaSG pSchema, XSType pType, 
Context pClassContext, XsQName pName)
+  protected JAXBTypeSG(SGFactory pFactory, SchemaSG pSchema, XSType pType, 
Context pClassContext, XsQName pName,
+                 JAXBProperty.BaseType pBaseType)
       throws SAXException {
     super(pFactory, pSchema, pType);
+    baseType = pBaseType;
     name = pName;
     xsType = pType;
     if (pType.isSimple()) {
@@ -628,6 +633,9 @@
 
   private JAXBJavaType findJavaType(SchemaSG pSchema, XSType pType)
       throws SAXException {
+       if (baseType != null  &&  baseType.getJavaType() != null) {
+               return baseType.getJavaType();
+       }
     JAXBJavaType[] globalJavaTypes = pSchema.getJAXBJavaTypes();
     
     for (XSType currentType = pType;  currentType != null;  ) {

Modified: 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
 Thu Aug 31 05:29:41 2006
@@ -83,7 +83,7 @@
   }
 
   public void init(SimpleTypeSG pController) throws SAXException {
-    itemType = getFactory().getTypeSG(listType.getItemType(), classContext, 
name);
+    itemType = getFactory().getTypeSG(listType.getItemType(), classContext, 
name, null);
   }
 
   protected TypeSG getItemType() {

Modified: 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/UnionTypeSGImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/UnionTypeSGImpl.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/UnionTypeSGImpl.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/UnionTypeSGImpl.java
 Thu Aug 31 05:29:41 2006
@@ -57,7 +57,7 @@
     XSType[] mTypes = unionType.getMemberTypes();
     List members = new ArrayList();
     for (int i = 0;  i < mTypes.length;  i++) {
-      TypeSG typeSG = getFactory().getTypeSG(mTypes[i], pClassContext, pName);
+      TypeSG typeSG = getFactory().getTypeSG(mTypes[i], pClassContext, pName, 
null);
       typeSG.getSimpleTypeSG().setNullable(true);
       members.add(typeSG);
     }

Modified: 
webservices/jaxme/branches/MAVEN/projects/jm/src/test/java/org/apache/ws/jaxme/junit/BindingsTest.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/jm/src/test/java/org/apache/ws/jaxme/junit/BindingsTest.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/jm/src/test/java/org/apache/ws/jaxme/junit/BindingsTest.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/jm/src/test/java/org/apache/ws/jaxme/junit/BindingsTest.java
 Thu Aug 31 05:29:41 2006
@@ -55,6 +55,7 @@
        public void testBindings() throws Exception {
                FooType foo = new ObjectFactory().createFoo();
                foo.setBar(YesNoTypeClass.YES);
+               foo.setBool(Boolean.TRUE);
                ImpFooType impFoo = new 
org.apache.ws.jaxme.test.bindings.imported.vo.ObjectFactory().createImpFoo();
                
impFoo.setXyz(org.apache.ws.jaxme.test.bindings.imported.vo.YesNoTypeClass.NO);
        }

Modified: 
webservices/jaxme/branches/MAVEN/projects/pm/src/main/java/org/apache/ws/jaxme/pm/generator/jdbc/JaxMeJdbcSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/pm/src/main/java/org/apache/ws/jaxme/pm/generator/jdbc/JaxMeJdbcSG.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/pm/src/main/java/org/apache/ws/jaxme/pm/generator/jdbc/JaxMeJdbcSG.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/pm/src/main/java/org/apache/ws/jaxme/pm/generator/jdbc/JaxMeJdbcSG.java
 Thu Aug 31 05:29:41 2006
@@ -56,6 +56,7 @@
 import org.apache.ws.jaxme.xs.XSObject;
 import org.apache.ws.jaxme.xs.XSSchema;
 import org.apache.ws.jaxme.xs.XSType;
+import org.apache.ws.jaxme.xs.jaxb.JAXBProperty;
 import org.apache.ws.jaxme.xs.parser.XsObjectCreator;
 import org.apache.ws.jaxme.xs.parser.impl.LocSAXException;
 import org.apache.ws.jaxme.xs.types.XSBase64Binary;
@@ -544,16 +545,16 @@
     }
   }
 
-  public Object newTypeSG(SGFactory pController, XSType pType) throws 
SAXException {
-    return new JdbcTypeSG(this, (TypeSGChain) super.newTypeSG(pController, 
pType), pType);
+  public Object newTypeSG(SGFactory pController, XSType pType, 
JAXBProperty.BaseType pBaseType) throws SAXException {
+    return new JdbcTypeSG(this, (TypeSGChain) super.newTypeSG(pController, 
pType, pBaseType), pType);
   }
 
-  public Object newTypeSG(SGFactory pController, XSType pType, XsQName pName) 
throws SAXException {
-    return new JdbcTypeSG(this, (TypeSGChain) super.newTypeSG(pController, 
pType, pName), pType);
+  public Object newTypeSG(SGFactory pController, XSType pType, XsQName pName, 
JAXBProperty.BaseType pBaseType) throws SAXException {
+    return new JdbcTypeSG(this, (TypeSGChain) super.newTypeSG(pController, 
pType, pName, pBaseType), pType);
   }
 
-  public Object newTypeSG(SGFactory pController, XSType pType, Context 
pClassContext, XsQName pName) throws SAXException {
-    return new JdbcTypeSG(this, (TypeSGChain) super.newTypeSG(pController, 
pType, pClassContext, pName), pType);
+  public Object newTypeSG(SGFactory pController, XSType pType, Context 
pClassContext, XsQName pName, JAXBProperty.BaseType pBaseType) throws 
SAXException {
+    return new JdbcTypeSG(this, (TypeSGChain) super.newTypeSG(pController, 
pType, pClassContext, pName, pBaseType), pType);
   }
 
   public Object newSchemaSG(SGFactory pController, XSSchema pSchema) throws 
SAXException {

Modified: webservices/jaxme/branches/MAVEN/status.xml
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/status.xml?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- webservices/jaxme/branches/MAVEN/status.xml (original)
+++ webservices/jaxme/branches/MAVEN/status.xml Thu Aug 31 05:29:41 2006
@@ -67,6 +67,9 @@
       <action dev="JW" type="fix" context="generator">
         The jaxb:class customization wasn't honoured by anonymous types.
       </action>
+      <action dev="JW" type="fix" context="generator">
+        The element jaxb:property/jaxb:baseType/jaxb:javaType wasn't honured.
+      </action>
     </release>
        <release version="0.5.1" date="Not yet published">
       <action dev="JW" type="enhancement" context="js">

Modified: 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/SGFactory.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/SGFactory.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/SGFactory.java
 (original)
+++ 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/SGFactory.java
 Thu Aug 31 05:29:41 2006
@@ -25,6 +25,7 @@
 import org.apache.ws.jaxme.xs.XSParser;
 import org.apache.ws.jaxme.xs.XSSchema;
 import org.apache.ws.jaxme.xs.XSType;
+import org.apache.ws.jaxme.xs.jaxb.JAXBProperty;
 import org.apache.ws.jaxme.xs.xml.XsObjectFactory;
 import org.apache.ws.jaxme.xs.xml.XsQName;
 import org.apache.ws.jaxme.generator.sg.Context;
@@ -136,12 +137,12 @@
    * [EMAIL PROTECTED] org.apache.ws.jaxme.generator.sg.TypeSGChain}
    * interface.</p>
    */
-  public Object newTypeSG(XSType pType) throws SAXException;
+  public Object newTypeSG(XSType pType, JAXBProperty.BaseType pBaseType) 
throws SAXException;
 
   /** <p>Returns a global instance of [EMAIL PROTECTED] TypeSG} generating
    * the given type.</p>
    */
-  public TypeSG getTypeSG(XSType pType) throws SAXException;
+  public TypeSG getTypeSG(XSType pType, JAXBProperty.BaseType pBaseType) 
throws SAXException;
 
   /** <p>Creates a new, local instance of
    * [EMAIL PROTECTED] org.apache.ws.jaxme.generator.sg.TypeSGChain},
@@ -154,12 +155,12 @@
    * [EMAIL PROTECTED] org.apache.ws.jaxme.generator.sg.TypeSGChain}
    * interface.</p>
    */
-  public Object newTypeSG(XSType pType, Context pClassContext, XsQName pName) 
throws SAXException;
+  public Object newTypeSG(XSType pType, Context pClassContext, XsQName pName, 
JAXBProperty.BaseType pBaseType) throws SAXException;
 
   /** <p>Returns a local instance of [EMAIL PROTECTED] TypeSG} generating
    * the given type within the given [EMAIL PROTECTED] Context}.</p>
    */
-  public TypeSG getTypeSG(XSType pType, Context pClassContext, XsQName pName) 
throws SAXException;
+  public TypeSG getTypeSG(XSType pType, Context pClassContext, XsQName pName, 
JAXBProperty.BaseType pBaseType) throws SAXException;
 
   /** <p>Creates a new, local instance of
    * [EMAIL PROTECTED] org.apache.ws.jaxme.generator.sg.TypeSGChain},
@@ -172,13 +173,13 @@
    * [EMAIL PROTECTED] org.apache.ws.jaxme.generator.sg.TypeSGChain}
    * interface.</p>
    */
-  public Object newTypeSG(XSType pType, XsQName pName) throws SAXException;
+  public Object newTypeSG(XSType pType, XsQName pName, JAXBProperty.BaseType 
pBaseType) throws SAXException;
 
   /** <p>Returns a new instance of [EMAIL PROTECTED] TypeSG} generating
    * the given type, as if it were a global type with the
    * given name.</p>
    */
-  public TypeSG getTypeSG(XSType pType, XsQName pName) throws SAXException;
+  public TypeSG getTypeSG(XSType pType, XsQName pName, JAXBProperty.BaseType 
pBaseType) throws SAXException;
 
   /** <p>Creates a new instance of [EMAIL PROTECTED] XSParser}.</p>
    */

Modified: 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBAttributeSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBAttributeSG.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBAttributeSG.java
 (original)
+++ 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBAttributeSG.java
 Thu Aug 31 05:29:41 2006
@@ -30,6 +30,8 @@
 import org.apache.ws.jaxme.xs.XSAttribute;
 import org.apache.ws.jaxme.xs.XSType;
 import org.apache.ws.jaxme.xs.XSWildcard;
+import org.apache.ws.jaxme.xs.jaxb.JAXBProperty;
+import org.apache.ws.jaxme.xs.jaxb.JAXBPropertyOwner;
 import org.apache.ws.jaxme.xs.xml.XsNamespaceList;
 import org.apache.ws.jaxme.xs.xml.XsQName;
 import org.apache.ws.jaxme.xs.xml.XsTWildcard;
@@ -62,13 +64,22 @@
         if (type == null) {
             throw new IllegalStateException("The attribute type must not be 
null.");
         }
+
+        final JAXBProperty.BaseType baseType;
+        if (pAttribute instanceof JAXBPropertyOwner) {
+               JAXBProperty property = ((JAXBPropertyOwner) 
pAttribute).getJAXBProperty();
+               baseType = property == null ? null : property.getBaseType();
+        } else {
+               baseType = null;
+        }
+
         if (type.isGlobal()) {
-               typeSG = getFactory().getTypeSG(type);
+               typeSG = getFactory().getTypeSG(type, baseType);
             if (typeSG == null) {
                throw new IllegalStateException("Unknown global type: " + 
type.getName());
             }
         } else {
-               typeSG = getFactory().getTypeSG(pAttribute.getType(), 
pClassContext, name);
+               typeSG = getFactory().getTypeSG(pAttribute.getType(), 
pClassContext, name, baseType);
         }
                isWildcard = false;
                namespaceList = null;
@@ -113,7 +124,7 @@
        public SchemaSG getSchema(AttributeSG pController) { return 
getSchema(); }
        public Locator getLocator(AttributeSG pController) { return 
getLocator(); }
        public XsQName getName(AttributeSG pController) { return name; }
-       
+
        public boolean isRequired(AttributeSG pAttrController) { return 
isRequired; }
        
        public void forAllValues(AttributeSG pController, JavaMethod pMethod,

Modified: 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBObjectSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBObjectSG.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBObjectSG.java
 (original)
+++ 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBObjectSG.java
 Thu Aug 31 05:29:41 2006
@@ -39,6 +39,8 @@
 import org.apache.ws.jaxme.xs.XSObject;
 import org.apache.ws.jaxme.xs.XSSimpleContentType;
 import org.apache.ws.jaxme.xs.XSType;
+import org.apache.ws.jaxme.xs.jaxb.JAXBProperty;
+import org.apache.ws.jaxme.xs.jaxb.JAXBPropertyOwner;
 import org.apache.ws.jaxme.xs.xml.XsQName;
 import org.xml.sax.Locator;
 import org.xml.sax.SAXException;
@@ -112,14 +114,22 @@
        myClassContext = new GlobalContext(name, contextObject, null, null, 
pSchema);
     }
 
+    final JAXBProperty.BaseType baseType;
+    if (pObject instanceof JAXBPropertyOwner) {
+       JAXBProperty property = ((JAXBPropertyOwner) pObject).getJAXBProperty();
+       baseType = property == null ? null : property.getBaseType();
+    } else {
+       baseType = null;
+    }
+    
     if (isClassGlobal) {
       if (type.isGlobal()) {
-        typeSG = pFactory.getTypeSG(type);
+        typeSG = pFactory.getTypeSG(type, baseType);
       } else {
-        typeSG = pFactory.getTypeSG(type, myClassContext.getName());
+        typeSG = pFactory.getTypeSG(type, myClassContext.getName(), baseType);
       }
     } else {
-      typeSG = pFactory.getTypeSG(type, myClassContext, name);
+      typeSG = pFactory.getTypeSG(type, myClassContext, name, baseType);
     }
 
     if (useTypesContext) {
@@ -139,20 +149,6 @@
       classContext = null;
     }
     log.finest(mName, "<-", new Object[]{typeSG, classContext});
-  }
-
-  /** <p>Creates a new instance of JAXBObjectSG generating the given simple
-   * content <code>pContent</code> of the given complex type
-   * <code>pComplexType</code>.</p>
-   */
-  public JAXBObjectSG(SGFactory pFactory, SchemaSG pSchema, TypeSG 
pComplexType,
-                       XSSimpleContentType pContainer, XSType pType) throws 
SAXException {
-    super(pFactory, pSchema, pType);
-    global = false;
-    type = pType;
-    name = null;
-    classContext = pComplexType.getComplexTypeSG().getClassContext();
-    typeSG = pFactory.getTypeSG(type, classContext, null);
   }
 
   /** <p>Creates a new instance of JAXBObjectSG generating the given

Modified: 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSGFactory.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSGFactory.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSGFactory.java
 (original)
+++ 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSGFactory.java
 Thu Aug 31 05:29:41 2006
@@ -47,6 +47,7 @@
 import org.apache.ws.jaxme.xs.XSParser;
 import org.apache.ws.jaxme.xs.XSSchema;
 import org.apache.ws.jaxme.xs.XSType;
+import org.apache.ws.jaxme.xs.jaxb.JAXBProperty;
 import org.apache.ws.jaxme.xs.jaxb.impl.JAXBObjectFactoryImpl;
 import org.apache.ws.jaxme.xs.jaxb.impl.JAXBParser;
 import org.apache.ws.jaxme.xs.jaxb.impl.JAXBXsObjectFactoryImpl;
@@ -187,12 +188,12 @@
                return new JAXBSchemaSG(pController, pSchema);
        }
        
-       public TypeSG getTypeSG(SGFactory pController, XSType pType) throws 
SAXException {
+       public TypeSG getTypeSG(SGFactory pController, XSType pType, 
JAXBProperty.BaseType pBaseType) throws SAXException {
                final String mName = "getTypeSG(XSType)";
                TypeSG result = (TypeSG) types.get(pType);
                if (result == null) {
                        log.finest(mName, "->", pType.getName());
-                       TypeSGChain chain = (TypeSGChain) 
pController.newTypeSG(pType);
+                       TypeSGChain chain = (TypeSGChain) 
pController.newTypeSG(pType, pBaseType);
                        result = new TypeSGImpl(chain);
                        types.put(pType, result);
                        typesByOrder.add(result);
@@ -202,17 +203,17 @@
                return result;
        }
        
-       public Object newTypeSG(SGFactory pController, XSType pType) throws 
SAXException {
+       public Object newTypeSG(SGFactory pController, XSType pType, 
JAXBProperty.BaseType pBaseType) throws SAXException {
                if (schemaSG == null) {
                        throw new IllegalStateException("A schema has not yet 
been created");
                }
-               return new JAXBTypeSG(pController, schemaSG, pType);
+               return new JAXBTypeSG(pController, schemaSG, pType, pBaseType);
        }
        
-       public TypeSG getTypeSG(SGFactory pController, XSType pType, Context 
pClassContext, XsQName pName) throws SAXException {
+       public TypeSG getTypeSG(SGFactory pController, XSType pType, Context 
pClassContext, XsQName pName, JAXBProperty.BaseType pBaseType) throws 
SAXException {
                final String mName = "getTypeSG(XSType,ClassContext)";
                log.finest(mName, "->", new Object[]{pType, pClassContext});
-        TypeSGChain chain = (TypeSGChain) pController.newTypeSG(pType, 
pClassContext, pName);
+        TypeSGChain chain = (TypeSGChain) pController.newTypeSG(pType, 
pClassContext, pName, pBaseType);
                TypeSG result = new TypeSGImpl(chain);
                typesByOrder.add(result);
                result.init();
@@ -220,22 +221,24 @@
                return result;
        }
        
-       public Object newTypeSG(SGFactory pController, XSType pType, Context 
pClassContext, XsQName pName) throws SAXException {
+       public Object newTypeSG(SGFactory pController, XSType pType, Context 
pClassContext, XsQName pName,
+                       JAXBProperty.BaseType pBaseType) throws SAXException {
                if (schemaSG == null) {
                        throw new IllegalStateException("A schema has not yet 
been created");
                }
-               return new JAXBTypeSG(pController, schemaSG, pType, 
pClassContext, pName);
+               return new JAXBTypeSG(pController, schemaSG, pType, 
pClassContext, pName, pBaseType);
        }
        
-       public Object newTypeSG(SGFactory pController, XSType pType, XsQName 
pName) throws SAXException {
+       public Object newTypeSG(SGFactory pController, XSType pType, XsQName 
pName,
+                       JAXBProperty.BaseType pBaseType) throws SAXException {
                if (schemaSG == null) {
                        throw new IllegalStateException("A schema has not yet 
been created");
                }
-               return new JAXBTypeSG(pController, schemaSG, pType, pName);
+               return new JAXBTypeSG(pController, schemaSG, pType, pName, 
pBaseType);
        }
        
-       public TypeSG getTypeSG(SGFactory pController, XSType pType, XsQName 
pName) throws SAXException {
-               TypeSGChain chain = (TypeSGChain) pController.newTypeSG(pType, 
pName);
+       public TypeSG getTypeSG(SGFactory pController, XSType pType, XsQName 
pName, JAXBProperty.BaseType pBaseType) throws SAXException {
+               TypeSGChain chain = (TypeSGChain) pController.newTypeSG(pType, 
pName, pBaseType);
                TypeSG result = new TypeSGImpl(chain);
                typesByOrder.add(result);
                result.init();

Modified: 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSchemaSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSchemaSG.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSchemaSG.java
 (original)
+++ 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSchemaSG.java
 Thu Aug 31 05:29:41 2006
@@ -153,7 +153,7 @@
     if (type == null) {
       return null;
     }
-    typeSG = pController.getFactory().getTypeSG(type);
+    typeSG = pController.getFactory().getTypeSG(type, null);
     typesByName.put(pName, typeSG);
     return typeSG;
   }

Modified: 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSimpleContentTypeSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSimpleContentTypeSG.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSimpleContentTypeSG.java
 (original)
+++ 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBSimpleContentTypeSG.java
 Thu Aug 31 05:29:41 2006
@@ -40,7 +40,7 @@
     xsType = pType;
     typeSG = pComplexTypeSG.getTypeSG();
     XSType theSimpleType = pType.getComplexType().getSimpleContent().getType();
-    contentTypeSG = typeSG.getFactory().getTypeSG(theSimpleType, 
pComplexTypeSG.getClassContext(), null);
+    contentTypeSG = typeSG.getFactory().getTypeSG(theSimpleType, 
pComplexTypeSG.getClassContext(), null, null);
   }
 
   public Object newPropertySGChain(SimpleContentSG pController) throws 
SAXException {

Modified: 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBTypeSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBTypeSG.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBTypeSG.java
 (original)
+++ 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/sg/impl/JAXBTypeSG.java
 Thu Aug 31 05:29:41 2006
@@ -67,6 +67,7 @@
 import org.apache.ws.jaxme.xs.jaxb.JAXBEnumeration;
 import org.apache.ws.jaxme.xs.jaxb.JAXBGlobalBindings;
 import org.apache.ws.jaxme.xs.jaxb.JAXBJavaType;
+import org.apache.ws.jaxme.xs.jaxb.JAXBProperty;
 import org.apache.ws.jaxme.xs.jaxb.JAXBSchema;
 import org.apache.ws.jaxme.xs.jaxb.JAXBSchemaBindings;
 import org.apache.ws.jaxme.xs.jaxb.JAXBSimpleType;
@@ -135,17 +136,19 @@
   private final XsQName name;
   private Map properties;
   private final XsSchemaHeader schemaHeader;
+  private final JAXBProperty.BaseType baseType;
 
   /** <p>Creates a new, global instance of JAXBTypeSG.</p>
    */
-  protected JAXBTypeSG(SGFactory pFactory, SchemaSG pSchema, XSType pType)
+  protected JAXBTypeSG(SGFactory pFactory, SchemaSG pSchema, XSType pType, 
JAXBProperty.BaseType pBaseType)
       throws SAXException {
-    this(pFactory, pSchema, pType, null, pType.getName());
+    this(pFactory, pSchema, pType, null, pType.getName(), pBaseType);
     isGlobalClass = true;
   }
 
-  protected JAXBTypeSG(SGFactory pFactory, SchemaSG pSchema, XSType pType, 
XsQName pName) throws SAXException {
-    this(pFactory, pSchema, pType, null, pName);
+  protected JAXBTypeSG(SGFactory pFactory, SchemaSG pSchema, XSType pType, 
XsQName pName,
+                 JAXBProperty.BaseType pBaseType) throws SAXException {
+    this(pFactory, pSchema, pType, null, pName, pBaseType);
     isGlobalClass = true;
   }
 
@@ -155,7 +158,7 @@
       XsQName name = pReferencedType.getName();
       TypeSG result;
       if (pReferencedType.isGlobal()) {
-         result = pFactory.getTypeSG(pReferencedType);
+         result = pFactory.getTypeSG(pReferencedType, null);
          if (result == null) {
                  throw new SAXParseException("Unknown global type " + name,
                                                      
pReferencingType.getLocator());
@@ -169,9 +172,11 @@
   /** <p>Creates a new, local instance of JAXBTypeSG. Classes are generated
    * into the given context.</p>
    */
-  protected JAXBTypeSG(SGFactory pFactory, SchemaSG pSchema, XSType pType, 
Context pClassContext, XsQName pName)
+  protected JAXBTypeSG(SGFactory pFactory, SchemaSG pSchema, XSType pType, 
Context pClassContext, XsQName pName,
+                 JAXBProperty.BaseType pBaseType)
       throws SAXException {
     super(pFactory, pSchema, pType);
+    baseType = pBaseType;
     name = pName;
     xsType = pType;
     if (pType.isSimple()) {
@@ -628,6 +633,9 @@
 
   private JAXBJavaType findJavaType(SchemaSG pSchema, XSType pType)
       throws SAXException {
+       if (baseType != null  &&  baseType.getJavaType() != null) {
+               return baseType.getJavaType();
+       }
     JAXBJavaType[] globalJavaTypes = pSchema.getJAXBJavaTypes();
     
     for (XSType currentType = pType;  currentType != null;  ) {

Modified: 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
 (original)
+++ 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
 Thu Aug 31 05:29:41 2006
@@ -83,7 +83,7 @@
   }
 
   public void init(SimpleTypeSG pController) throws SAXException {
-    itemType = getFactory().getTypeSG(listType.getItemType(), classContext, 
name);
+    itemType = getFactory().getTypeSG(listType.getItemType(), classContext, 
name, null);
   }
 
   protected TypeSG getItemType() {

Modified: 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/types/UnionTypeSGImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/types/UnionTypeSGImpl.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/types/UnionTypeSGImpl.java
 (original)
+++ 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/generator/types/UnionTypeSGImpl.java
 Thu Aug 31 05:29:41 2006
@@ -57,7 +57,7 @@
     XSType[] mTypes = unionType.getMemberTypes();
     List members = new ArrayList();
     for (int i = 0;  i < mTypes.length;  i++) {
-      TypeSG typeSG = getFactory().getTypeSG(mTypes[i], pClassContext, pName);
+      TypeSG typeSG = getFactory().getTypeSG(mTypes[i], pClassContext, pName, 
null);
       typeSG.getSimpleTypeSG().setNullable(true);
       members.add(typeSG);
     }

Modified: 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/junit/BindingsTest.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/junit/BindingsTest.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/junit/BindingsTest.java
 (original)
+++ 
webservices/jaxme/branches/b0_5/src/jaxme/org/apache/ws/jaxme/junit/BindingsTest.java
 Thu Aug 31 05:29:41 2006
@@ -55,6 +55,7 @@
        public void testBindings() throws Exception {
                FooType foo = new ObjectFactory().createFoo();
                foo.setBar(YesNoTypeClass.YES);
+               foo.setBool(Boolean.TRUE);
                ImpFooType impFoo = new 
org.apache.ws.jaxme.test.bindings.imported.vo.ObjectFactory().createImpFoo();
                
impFoo.setXyz(org.apache.ws.jaxme.test.bindings.imported.vo.YesNoTypeClass.NO);
        }

Modified: 
webservices/jaxme/branches/b0_5/src/pm/org/apache/ws/jaxme/pm/generator/jdbc/JaxMeJdbcSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/pm/org/apache/ws/jaxme/pm/generator/jdbc/JaxMeJdbcSG.java?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- 
webservices/jaxme/branches/b0_5/src/pm/org/apache/ws/jaxme/pm/generator/jdbc/JaxMeJdbcSG.java
 (original)
+++ 
webservices/jaxme/branches/b0_5/src/pm/org/apache/ws/jaxme/pm/generator/jdbc/JaxMeJdbcSG.java
 Thu Aug 31 05:29:41 2006
@@ -56,6 +56,7 @@
 import org.apache.ws.jaxme.xs.XSObject;
 import org.apache.ws.jaxme.xs.XSSchema;
 import org.apache.ws.jaxme.xs.XSType;
+import org.apache.ws.jaxme.xs.jaxb.JAXBProperty;
 import org.apache.ws.jaxme.xs.parser.XsObjectCreator;
 import org.apache.ws.jaxme.xs.parser.impl.LocSAXException;
 import org.apache.ws.jaxme.xs.types.XSBase64Binary;
@@ -544,16 +545,16 @@
     }
   }
 
-  public Object newTypeSG(SGFactory pController, XSType pType) throws 
SAXException {
-    return new JdbcTypeSG(this, (TypeSGChain) super.newTypeSG(pController, 
pType), pType);
+  public Object newTypeSG(SGFactory pController, XSType pType, 
JAXBProperty.BaseType pBaseType) throws SAXException {
+    return new JdbcTypeSG(this, (TypeSGChain) super.newTypeSG(pController, 
pType, pBaseType), pType);
   }
 
-  public Object newTypeSG(SGFactory pController, XSType pType, XsQName pName) 
throws SAXException {
-    return new JdbcTypeSG(this, (TypeSGChain) super.newTypeSG(pController, 
pType, pName), pType);
+  public Object newTypeSG(SGFactory pController, XSType pType, XsQName pName, 
JAXBProperty.BaseType pBaseType) throws SAXException {
+    return new JdbcTypeSG(this, (TypeSGChain) super.newTypeSG(pController, 
pType, pName, pBaseType), pType);
   }
 
-  public Object newTypeSG(SGFactory pController, XSType pType, Context 
pClassContext, XsQName pName) throws SAXException {
-    return new JdbcTypeSG(this, (TypeSGChain) super.newTypeSG(pController, 
pType, pClassContext, pName), pType);
+  public Object newTypeSG(SGFactory pController, XSType pType, Context 
pClassContext, XsQName pName, JAXBProperty.BaseType pBaseType) throws 
SAXException {
+    return new JdbcTypeSG(this, (TypeSGChain) super.newTypeSG(pController, 
pType, pClassContext, pName, pBaseType), pType);
   }
 
   public Object newSchemaSG(SGFactory pController, XSSchema pSchema) throws 
SAXException {

Modified: webservices/jaxme/branches/b0_5/src/test/jaxb/bindings/bindings.jxb
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/test/jaxb/bindings/bindings.jxb?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- webservices/jaxme/branches/b0_5/src/test/jaxb/bindings/bindings.jxb 
(original)
+++ webservices/jaxme/branches/b0_5/src/test/jaxb/bindings/bindings.jxb Thu Aug 
31 05:29:41 2006
@@ -25,6 +25,13 @@
     <jxb:bindings node="xs:[EMAIL PROTECTED]'YesNoType']">
       <jxb:typesafeEnumClass/>
     </jxb:bindings>
+    <jxb:bindings node="xs:[EMAIL PROTECTED]'foo']/xs:complexType/xs:[EMAIL 
PROTECTED]'bool']">
+      <jxb:property>
+        <jxb:baseType>
+          <jxb:javaType name='java.lang.Boolean'/>
+        </jxb:baseType>
+      </jxb:property>
+    </jxb:bindings>
   </jxb:bindings>
 
   <jxb:bindings schemaLocation="imported.xsi" node="/xs:schema">

Modified: webservices/jaxme/branches/b0_5/src/test/jaxb/bindings/bindings.xsd
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/src/test/jaxb/bindings/bindings.xsd?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- webservices/jaxme/branches/b0_5/src/test/jaxb/bindings/bindings.xsd 
(original)
+++ webservices/jaxme/branches/b0_5/src/test/jaxb/bindings/bindings.xsd Thu Aug 
31 05:29:41 2006
@@ -30,6 +30,7 @@
       </xs:sequence>
       <xs:attribute name="bar" type="bnd:YesNoType"/>
       <xs:attribute name="blabb" type="imp:YesNoType"/>
+      <xs:attribute name="bool" type="xs:boolean"/>
     </xs:complexType>
   </xs:element>
 

Modified: webservices/jaxme/branches/b0_5/status.xml
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/b0_5/status.xml?rev=438889&r1=438888&r2=438889&view=diff
==============================================================================
--- webservices/jaxme/branches/b0_5/status.xml (original)
+++ webservices/jaxme/branches/b0_5/status.xml Thu Aug 31 05:29:41 2006
@@ -63,6 +63,9 @@
       <action dev="JW" type="fix" context="generator">
         The jaxb:class customization wasn't honoured by anonymous types.
       </action>
+      <action dev="JW" type="fix" context="generator">
+        The element jaxb:property/jaxb:baseType/jaxb:javaType wasn't honured.
+      </action>
     </release>
     <release version="0.5.1" date="06-Jan-2006">
       <action dev="JW" type="enhancement" context="js">



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to