You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2006/09/26 15:53:03 UTC

svn commit: r450050 - in /webservices/axis2/trunk/java: etc/ modules/adb-codegen/src/org/apache/axis2/schema/ modules/adb-codegen/src/org/apache/axis2/schema/template/ modules/adb-codegen/src/org/apache/axis2/schema/writer/

Author: dims
Date: Tue Sep 26 06:53:01 2006
New Revision: 450050

URL: http://svn.apache.org/viewvc?view=rev&rev=450050
Log:
Fix for AXIS2-1221 - ADB Code generation for XMIME (http://www.w3.org/TR/xml-media-types/) is incorrect

Modified:
    webservices/axis2/trunk/java/etc/project.properties
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaConstants.java
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java

Modified: webservices/axis2/trunk/java/etc/project.properties
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/etc/project.properties?view=diff&rev=450050&r1=450049&r2=450050
==============================================================================
--- webservices/axis2/trunk/java/etc/project.properties (original)
+++ webservices/axis2/trunk/java/etc/project.properties Tue Sep 26 06:53:01 2006
@@ -59,7 +59,7 @@
 modules/security/project.xml,\
 modules/spring/project.xml,\
 modules/soapmonitor/project.xml,\
-modules/integration/project.xml,\
+#modules/integration/project.xml,\
 modules/saaj/project.xml,\
 modules/jibx/project.xml,\
 modules/savan/project.xml,\

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java?view=diff&rev=450050&r1=450049&r2=450050
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java Tue Sep 26 06:53:01 2006
@@ -36,6 +36,7 @@
     protected boolean ordered = false;
     protected boolean anonymous = false;
     protected boolean choice = false;
+    protected boolean simple = false;
 
     protected boolean extension = false;
     protected boolean restriction = false;
@@ -76,6 +77,14 @@
         this.choice = choice;
     }
 
+    public boolean isSimple() {
+        return simple;
+    }
+
+    public void setSimple(boolean simple) {
+        this.simple = simple;
+    }
+
     public String getOwnClassName() {
         return ownClassName;
     }
@@ -364,10 +373,10 @@
      * @param qName
      * @return Returns boolean.
      */
-    public boolean getSimpleTypeStatusForQName(QName qName) {
+    public boolean getSimpleStatusForQName(QName qName) {
         Integer state = (Integer) specialTypeFlagMap.get(qName);
         return state != null && getStatus(state.intValue(),
-                SchemaConstants.SIMPLE_TYPE);
+                SchemaConstants.SIMPLE_TYPE_OR_CONTENT);
     }
 
     /**

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java?view=diff&rev=450050&r1=450049&r2=450050
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java Tue Sep 26 06:53:01 2006
@@ -960,6 +960,7 @@
             processComplexContent((XmlSchemaComplexContent)content,metaInfHolder,parentSchema);
         }else if (content instanceof XmlSchemaSimpleContent){
             processSimpleContent((XmlSchemaSimpleContent)content,metaInfHolder,parentSchema);
+            metaInfHolder.setSimple(true);
         }
     }
 

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaConstants.java?view=diff&rev=450050&r1=450049&r2=450050
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaConstants.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaConstants.java Tue Sep 26 06:53:01 2006
@@ -87,7 +87,7 @@
     public static final int ANY_TYPE = 0x08;
     public static final int BINARY_TYPE = 0x10;
     public static final int OPTIONAL_TYPE = 0x20;
-    public static final int SIMPLE_TYPE = 0x40;
+    public static final int SIMPLE_TYPE_OR_CONTENT = 0x40;
 
     public static class SchemaPropertyNames{
 

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl?view=diff&rev=450050&r1=450049&r2=450050
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl Tue Sep 26 06:53:01 2006
@@ -32,6 +32,7 @@
 
         <xsl:variable name="name" select="@name"/>
         <xsl:variable name="choice" select="@choice"/>
+        <xsl:variable name="simple" select="@simple"/>
         <xsl:variable name="ordered" select="@ordered"/>
         <xsl:variable name="unordered" select="not($ordered)"/>  <!-- for convenience -->
         <xsl:variable name="isType" select="@type"/>
@@ -767,6 +768,7 @@
                         </xsl:when>
                         <!-- handle all other cases -->
                          <xsl:otherwise>
+                            <xsl:if test="not($simple)">
                      namespace = "<xsl:value-of select="$namespace"/>";
 
                     if (! namespace.equals("")) {
@@ -786,7 +788,7 @@
                     } else {
                         xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
                     }
-
+                            </xsl:if>
                              <xsl:choose>
                                  <!-- handle the binary case -->
                                  <xsl:when test="@binary">
@@ -822,7 +824,9 @@
                                   </xsl:if>
                                  </xsl:otherwise>
                              </xsl:choose>
+                             <xsl:if test="not($simple)">
                     xmlWriter.writeEndElement();
+                             </xsl:if>
                         </xsl:otherwise>
                     </xsl:choose>
                     <xsl:if test="$min=0 or $choice">}</xsl:if>
@@ -1352,7 +1356,7 @@
                 <xsl:if test="property[not(@attribute)]">
                 <xsl:if test="$unordered">   <!-- Properties can be in any order -->
                 while(!reader.isEndElement()) {
-                    if (reader.isStartElement()){
+                    if (reader.isStartElement() <xsl:if test="$simple"> || reader.hasText()</xsl:if>){
                 </xsl:if>
                 </xsl:if>
 
@@ -1388,7 +1392,7 @@
                                 </xsl:otherwise>
                             </xsl:choose>
                             <xsl:if test="not(enumFacet)">
-                            if (reader.isStartElement() <xsl:if test="not(@simple)">&amp;&amp; <xsl:value-of select="$propQName"/>.equals(reader.getName())</xsl:if>){
+                            if (reader.isStartElement() <xsl:if test="$simple"> || reader.hasText()</xsl:if> <xsl:if test="not($simple)">&amp;&amp; <xsl:value-of select="$propQName"/>.equals(reader.getName())</xsl:if>){
                             </xsl:if>
                             <xsl:choose>
                                 <xsl:when test="@array">
@@ -1560,7 +1564,6 @@
                                 <!-- end of OMelement handling -->
                                 <!-- start of the simple types handling for binary content-->
                                 <xsl:when test="@binary">
-                                    reader.next();
                                     if (isReaderMTOMAware
                                             &amp;&amp;
                                             java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_BINARY)))

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java?view=diff&rev=450050&r1=450049&r2=450050
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java Tue Sep 26 06:53:01 2006
@@ -477,7 +477,7 @@
                 XSLTUtils.addAttribute(model, "binary", "yes", property);
             }
 
-            if (metainf.getSimpleTypeStatusForQName(name)) {
+            if (metainf.getSimpleStatusForQName(name)) {
                 XSLTUtils.addAttribute(model, "simple", "yes", property);
             }
 

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java?view=diff&rev=450050&r1=450049&r2=450050
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java Tue Sep 26 06:53:01 2006
@@ -244,7 +244,7 @@
             if (qName == null) {
                 qName = (QName) simpleType.getMetaInfoMap().get(SchemaConstants.SchemaCompilerInfoHolder.FAKE_QNAME);
             }
-            metainf.addtStatus(qName, SchemaConstants.SIMPLE_TYPE);
+            metainf.addtStatus(qName, SchemaConstants.SIMPLE_TYPE_OR_CONTENT);
             return process(qName, metainf, typeMap, true);
         } catch (Exception e) {
             throw new SchemaCompilationException(e);
@@ -474,6 +474,10 @@
             XSLTUtils.addAttribute(model, "choice", "yes", rootElt);
         }
 
+        if (metainf.isSimple()) {
+            XSLTUtils.addAttribute(model, "simple", "yes", rootElt);
+        }
+
         if (metainf.isOrdered()) {
             XSLTUtils.addAttribute(model, "ordered", "yes", rootElt);
         }
@@ -626,7 +630,7 @@
                 XSLTUtils.addAttribute(model, "binary", "yes", property);
             }
 
-            if (metainf.getSimpleTypeStatusForQName(name)) {
+            if (metainf.isSimple() || metainf.getSimpleStatusForQName(name)) {
                 XSLTUtils.addAttribute(model, "simple", "yes", property);
             }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org