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 am...@apache.org on 2007/05/03 15:56:34 UTC
svn commit: r534864 [1/3] - in
/webservices/axis2/trunk/java/modules/adb-codegen: ./
src/org/apache/axis2/schema/ src/org/apache/axis2/schema/template/
src/org/apache/axis2/schema/writer/ test-resources/testsuite/
test/org/apache/axis2/schema/innerChoi...
Author: amilas
Date: Thu May 3 06:56:33 2007
New Revision: 534864
URL: http://svn.apache.org/viewvc?view=rev&rev=534864
Log:
Added the sequence/choice minOccurs/maxOccurs and innerparticals (i.e. sequence/choice) support
Added:
webservices/axis2/trunk/java/modules/adb-codegen/test-resources/testsuite/innerParticles.xsd
webservices/axis2/trunk/java/modules/adb-codegen/test-resources/testsuite/particalMaxOccures.xsd
webservices/axis2/trunk/java/modules/adb-codegen/test/org/apache/axis2/schema/innerparticles/
webservices/axis2/trunk/java/modules/adb-codegen/test/org/apache/axis2/schema/innerparticles/InnerParticlesTest.java
webservices/axis2/trunk/java/modules/adb-codegen/test/org/apache/axis2/schema/particalmaxoccurs/
webservices/axis2/trunk/java/modules/adb-codegen/test/org/apache/axis2/schema/particalmaxoccurs/ParticalMaxOccursTest.java
Modified:
webservices/axis2/trunk/java/modules/adb-codegen/maven.xml
webservices/axis2/trunk/java/modules/adb-codegen/pom.xml
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/ExtensionUtility.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/BeanWriter.java
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
webservices/axis2/trunk/java/modules/adb-codegen/test/org/apache/axis2/schema/innerChoice/InnerChoiceTest.java
Modified: webservices/axis2/trunk/java/modules/adb-codegen/maven.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/maven.xml?view=diff&rev=534864&r1=534863&r2=534864
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/maven.xml (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/maven.xml Thu May 3 06:56:33 2007
@@ -271,7 +271,28 @@
<arg file="${testsuite.source.dir}/boolean.xsd"/>
<arg file="${schema.generated.src.dir}"/>
</java>
+
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <ant:echo>Compiling particalMaxOccures.xsd</ant:echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.dependency.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/particalMaxOccures.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <ant:echo>Compiling innerParticles.xsd</ant:echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.dependency.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/innerParticles.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
<!-- ################################################################### -->
<!-- Compile the generated classes -->
Modified: webservices/axis2/trunk/java/modules/adb-codegen/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/pom.xml?view=diff&rev=534864&r1=534863&r2=534864
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/pom.xml (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/pom.xml Thu May 3 06:56:33 2007
@@ -15,355 +15,380 @@
! See the License for the specific language governing permissions and
! limitations under the License.
!-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-parent</artifactId>
- <version>SNAPSHOT</version>
- <relativePath>../parent/pom.xml</relativePath>
- </parent>
- <artifactId>axis2-adb-codegen</artifactId>
- <name>Apache Axis 2.0 - ADB Codegen</name>
- <description>ADB code generation support for Axis2</description>
- <dependencies>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-adb</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-codegen</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-kernel</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ws.commons.schema</groupId>
- <artifactId>XmlSchema</artifactId>
- </dependency>
- <dependency>
- <groupId>xmlunit</groupId>
- <artifactId>xmlunit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- </dependencies>
- <build>
- <sourceDirectory>src</sourceDirectory>
- <testSourceDirectory>test</testSourceDirectory>
- <resources>
- <resource>
- <directory>conf</directory>
- <excludes>
- <exclude>**/*.properties</exclude>
- </excludes>
- <filtering>false</filtering>
- </resource>
- <resource>
- <directory>src</directory>
- <excludes>
- <exclude>**/*.java</exclude>
- </excludes>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <inherited>true</inherited>
- <configuration>
- <skip>false</skip>
- <excludes>
- <exclude>**/*Abstract*.java</exclude>
- <exclude>**/*Util*.java</exclude>
- <exclude>**/*PhaseResolvingTest.java</exclude>
- </excludes>
- <includes>
- <include>**/*Test.java</include>
- </includes>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>generate-test-sources</id>
- <phase>generate-test-sources</phase>
- <configuration>
- <tasks>
- <property name="compiled.classes.dir" location="target/classes"/>
- <property name="test.compiled.classes.dir" location="target/test-classes"/>
- <property name="schema.source.dir" location="test-resources/xsd"/>
- <property name="testsuite.source.dir" location="test-resources/testsuite"/>
- <property name="schema.output.base.dir" location="target/schema"/>
- <property name="schema.generated.src.dir" location="${schema.output.base.dir}/src"/>
- <property name="schema.generated.classes.dir" location="${schema.output.base.dir}/classes"/>
- <property name="maven.junit.jvmargs" value=""/>
- <!-- make the dirs -->
- <mkdir dir="${schema.output.base.dir}"/>
- <mkdir dir="${schema.generated.src.dir}"/>
- <mkdir dir="${schema.generated.classes.dir}"/>
- <mkdir dir="${test.compiled.classes.dir}"/>
- <!-- Run schema compiler with designated schemas -->
- <echo>Compiling simple_maxOccurs2.xsd</echo>
- <!-- simple max occurs 2 xsd -->
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${schema.source.dir}/simple_maxOccurs2.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <echo>Compiling anonymous_complexType.xsd</echo>
- <!-- anon complex type xsd -->
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${schema.source.dir}/anonymous_complexType.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- anon choice xsd -->
- <echo>Compiling simple_choice.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${schema.source.dir}/simple_choice.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- anon particle all xsd -->
- <echo>Compiling simple_particle_all.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${schema.source.dir}/simple_particle_all.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- simple max occurs xsd -->
- <echo>Compiling simple_maxOccurs.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${schema.source.dir}/simple_maxOccurs.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- simple any type xsd -->
- <echo>Compiling simple_anytype.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${schema.source.dir}/simple_anytype.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- min occurs 0 xsd -->
- <echo>Compiling simple-minoccurs0.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${schema.source.dir}/simple-minoccurs0.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- complex min occurs 0 xsd -->
- <echo>Compiling complex-minoccurs0.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${schema.source.dir}/complex-minoccurs0.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <echo>Compiling simple-recursive-datatypes.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${schema.source.dir}/simple-recursive-datatypes.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <echo>Compiling mixed_minoccus0.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${schema.source.dir}/mixed_minoccus0.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple primitive types xsd -->
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${schema.source.dir}/simple/simpleType-All.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- All simple derived types xsd -->
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${schema.source.dir}/derived/derivedType-All.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple derived types xsd -->
- <echo>Compiling complete.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${testsuite.source.dir}/complete.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple derived types xsd -->
- <echo>Compiling simpleExtension.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${testsuite.source.dir}/extensions.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple derived types xsd -->
- <echo>Compiling union.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${testsuite.source.dir}/union.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple derived types xsd -->
- <echo>Compiling all.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${testsuite.source.dir}/all.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple derived types xsd -->
- <echo>Compiling enumeration.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${testsuite.source.dir}/enumeration.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple derived types xsd -->
- <echo>Compiling restrictions.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${testsuite.source.dir}/restrictions.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple derived types xsd -->
- <echo>Compiling choice.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${testsuite.source.dir}/choice.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple derived types xsd -->
- <echo>Compiling list.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${testsuite.source.dir}/list.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple derived types xsd -->
- <echo>Compiling element_references.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${testsuite.source.dir}/element_references.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple derived types xsd -->
- <echo>Compiling innersequence_choice.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${testsuite.source.dir}/innersequence_choice.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple derived types xsd -->
- <echo>Compiling testattribute.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${testsuite.source.dir}/testattribute.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- <!-- ################################################################### -->
- <!-- All simple derived types xsd -->
- <echo>Compiling boolean.xsd</echo>
- <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
- <jvmarg line="${maven.junit.jvmargs}"/>
- <classpath refid="maven.runtime.classpath"/>
- <classpath location="${compiled.classes.dir}"/>
- <arg file="${testsuite.source.dir}/boolean.xsd"/>
- <arg file="${schema.generated.src.dir}"/>
- </java>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>add-test-source</id>
- <phase>process-test-resources</phase>
- <goals>
- <goal>add-test-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>${basedir}/target/schema/src</source>
- </sources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-parent</artifactId>
+ <version>SNAPSHOT</version>
+ <relativePath>../parent/pom.xml</relativePath>
+ </parent>
+ <artifactId>axis2-adb-codegen</artifactId>
+ <name>Apache Axis 2.0 - ADB Codegen</name>
+ <description>ADB code generation support for Axis2</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-adb</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-codegen</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-kernel</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons.schema</groupId>
+ <artifactId>XmlSchema</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>xmlunit</groupId>
+ <artifactId>xmlunit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <testSourceDirectory>test</testSourceDirectory>
+ <resources>
+ <resource>
+ <directory>conf</directory>
+ <excludes>
+ <exclude>**/*.properties</exclude>
+ </excludes>
+ <filtering>false</filtering>
+ </resource>
+ <resource>
+ <directory>src</directory>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <inherited>true</inherited>
+ <configuration>
+ <skip>false</skip>
+ <excludes>
+ <exclude>**/*Abstract*.java</exclude>
+ <exclude>**/*Util*.java</exclude>
+ <exclude>**/*PhaseResolvingTest.java</exclude>
+ </excludes>
+ <includes>
+ <include>**/*Test.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>generate-test-sources</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <tasks>
+ <property name="compiled.classes.dir" location="target/classes"/>
+ <property name="test.compiled.classes.dir" location="target/test-classes"/>
+ <property name="schema.source.dir" location="test-resources/xsd"/>
+ <property name="testsuite.source.dir" location="test-resources/testsuite"/>
+ <property name="schema.output.base.dir" location="target/schema"/>
+ <property name="schema.generated.src.dir" location="${schema.output.base.dir}/src"/>
+ <property name="schema.generated.classes.dir"
+ location="${schema.output.base.dir}/classes"/>
+ <property name="maven.junit.jvmargs" value=""/>
+ <!-- make the dirs -->
+ <mkdir dir="${schema.output.base.dir}"/>
+ <mkdir dir="${schema.generated.src.dir}"/>
+ <mkdir dir="${schema.generated.classes.dir}"/>
+ <mkdir dir="${test.compiled.classes.dir}"/>
+ <!-- Run schema compiler with designated schemas -->
+ <echo>Compiling simple_maxOccurs2.xsd</echo>
+ <!-- simple max occurs 2 xsd -->
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/simple_maxOccurs2.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <echo>Compiling anonymous_complexType.xsd</echo>
+ <!-- anon complex type xsd -->
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/anonymous_complexType.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- anon choice xsd -->
+ <echo>Compiling simple_choice.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/simple_choice.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- anon particle all xsd -->
+ <echo>Compiling simple_particle_all.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/simple_particle_all.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- simple max occurs xsd -->
+ <echo>Compiling simple_maxOccurs.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/simple_maxOccurs.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- simple any type xsd -->
+ <echo>Compiling simple_anytype.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/simple_anytype.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- min occurs 0 xsd -->
+ <echo>Compiling simple-minoccurs0.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/simple-minoccurs0.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- complex min occurs 0 xsd -->
+ <echo>Compiling complex-minoccurs0.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/complex-minoccurs0.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <echo>Compiling simple-recursive-datatypes.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/simple-recursive-datatypes.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <echo>Compiling mixed_minoccus0.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/mixed_minoccus0.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple primitive types xsd -->
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/simple/simpleType-All.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- All simple derived types xsd -->
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/derived/derivedType-All.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <echo>Compiling complete.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/complete.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <echo>Compiling simpleExtension.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/extensions.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <echo>Compiling union.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/union.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <echo>Compiling all.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/all.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <echo>Compiling enumeration.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/enumeration.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <echo>Compiling restrictions.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/restrictions.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <echo>Compiling choice.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/choice.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <echo>Compiling list.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/list.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <echo>Compiling element_references.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/element_references.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <echo>Compiling innersequence_choice.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/innersequence_choice.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <echo>Compiling testattribute.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/testattribute.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <echo>Compiling boolean.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.runtime.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/boolean.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <ant:echo>Compiling particalMaxOccures.xsd</ant:echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.dependency.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/particalMaxOccures.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+
+ <!-- ################################################################### -->
+ <!-- All simple derived types xsd -->
+ <ant:echo>Compiling innerParticles.xsd</ant:echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.dependency.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/innerParticles.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
+
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>add-test-source</id>
+ <phase>process-test-resources</phase>
+ <goals>
+ <goal>add-test-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${basedir}/target/schema/src</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
</project>
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=534864&r1=534863&r2=534864
==============================================================================
--- 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 Thu May 3 06:56:33 2007
@@ -63,6 +63,10 @@
protected boolean isUnion;
protected boolean isList;
+ protected boolean isParticleClass;
+ // keep whether this class has a partical class type variable
+ protected boolean hasParticleType;
+
protected List nillableQNameList = new ArrayList();
//the parent metainfo holder, useful in handling extensions and
@@ -410,6 +414,18 @@
}
/**
+ *
+ * @param qName
+ * @return whether the attribute is a partical class or not
+ */
+
+ public boolean getParticleTypeStatusForQName(QName qName){
+ Integer state = (Integer) specialTypeFlagMap.get(qName);
+ return state != null && getStatus(state.intValue(),
+ SchemaConstants.PARTICLE_TYPE_ELEMENT);
+ }
+
+ /**
* Gets whether a given QName has the any attribute status.
*
* @param qName
@@ -794,8 +810,6 @@
this.memberTypes.put(qname,className);
}
-
-
public boolean isList() {
return isList;
}
@@ -820,5 +834,20 @@
this.itemTypeClassName = itemTypeClassName;
}
+ public boolean isParticleClass() {
+ return isParticleClass;
+ }
+
+ public void setParticleClass(boolean particleClass) {
+ isParticleClass = particleClass;
+ }
+
+ public boolean isHasParticleType() {
+ return hasParticleType;
+ }
+
+ public void setHasParticleType(boolean hasParticleType) {
+ this.hasParticleType = hasParticleType;
+ }
}
Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/ExtensionUtility.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/ExtensionUtility.java?view=diff&rev=534864&r1=534863&r2=534864
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/ExtensionUtility.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/ExtensionUtility.java Thu May 3 06:56:33 2007
@@ -328,7 +328,7 @@
//populate the map with the partname - class name
//attached to the schema element
XmlSchemaElement xmlSchemaElement = (XmlSchemaElement) item;
- boolean isArray = (xmlSchemaElement.getMaxOccurs() - xmlSchemaElement.getMinOccurs()) > 1;
+ boolean isArray = xmlSchemaElement.getMaxOccurs() > 1;
XmlSchemaType schemaType = xmlSchemaElement.getSchemaType();
String partName = null;
@@ -352,7 +352,7 @@
// for it for now
XmlSchemaAny xmlSchemaAny = (XmlSchemaAny) item;
- boolean isArray = xmlSchemaAny.getMaxOccurs() - xmlSchemaAny.getMinOccurs() > 1;
+ boolean isArray = xmlSchemaAny.getMaxOccurs() > 1;
QName partQName = WSDLUtil.getPartQName(opName,
qnameSuffix,
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=534864&r1=534863&r2=534864
==============================================================================
--- 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 Thu May 3 06:56:33 2007
@@ -869,9 +869,11 @@
* @param complexType
* @throws SchemaCompilationException
*/
- private void processAnonymousComplexSchemaType(XmlSchemaElement elt, XmlSchemaComplexType complexType, XmlSchema parentSchema)
+ private void processAnonymousComplexSchemaType(XmlSchemaElement elt,
+ XmlSchemaComplexType complexType,
+ XmlSchema parentSchema)
throws SchemaCompilationException {
- BeanWriterMetaInfoHolder metaInfHolder = processComplexType(complexType, parentSchema);
+ BeanWriterMetaInfoHolder metaInfHolder = processComplexType(elt.getQName(),complexType, parentSchema);
//since this is a special case (an unnamed complex type) we'll put the already processed
//metainf holder in a special map to be used later
@@ -883,7 +885,8 @@
*
* @param complexType
*/
- private void processNamedComplexSchemaType(XmlSchemaComplexType complexType, XmlSchema parentSchema) throws SchemaCompilationException {
+ private void processNamedComplexSchemaType(XmlSchemaComplexType complexType,
+ XmlSchema parentSchema) throws SchemaCompilationException {
if (processedTypemap.containsKey(complexType.getQName())
|| baseSchemaTypeMap.containsKey(complexType.getQName())) {
@@ -898,7 +901,7 @@
complexType.addMetaInfo(SchemaConstants.SchemaCompilerInfoHolder.CLASSNAME_KEY,
fullyQualifiedClassName);
- BeanWriterMetaInfoHolder metaInfHolder = processComplexType(complexType, parentSchema);
+ BeanWriterMetaInfoHolder metaInfHolder = processComplexType(complexType.getQName(),complexType, parentSchema);
//add this information to the metainfo holder
metaInfHolder.setOwnQname(complexType.getQName());
metaInfHolder.setOwnClassName(fullyQualifiedClassName);
@@ -918,11 +921,28 @@
*/
private String writeComplexType(XmlSchemaComplexType complexType, BeanWriterMetaInfoHolder metaInfHolder)
throws SchemaCompilationException {
- String javaClassName = writer.write(complexType, processedTypemap, metaInfHolder);
+ String javaClassName = writer.write(complexType.getQName(), processedTypemap, metaInfHolder);
processedTypeMetaInfoMap.put(complexType.getQName(), metaInfHolder);
return javaClassName;
}
+
+ /**
+ * Writes complex Sequence,Choice, all elements
+ * @param qname complex type qname
+ * @param metaInfHolder
+ * @return written java class name
+ * @throws SchemaCompilationException
+ */
+
+
+ private String writeComplexParticle(QName qname,BeanWriterMetaInfoHolder metaInfHolder)
+ throws SchemaCompilationException {
+ String javaClassName = writer.write(qname, processedTypemap, metaInfHolder);
+ processedTypeMetaInfoMap.put(qname, metaInfHolder);
+ return javaClassName;
+ }
+
/**
* Writes a complex type
*
@@ -936,12 +956,15 @@
processedTypeMetaInfoMap.put(simpleType.getQName(), metaInfHolder);
}
- private BeanWriterMetaInfoHolder processComplexType(XmlSchemaComplexType complexType, XmlSchema parentSchema) throws SchemaCompilationException {
+ private BeanWriterMetaInfoHolder processComplexType(
+ QName parentElementQName,
+ XmlSchemaComplexType complexType,
+ XmlSchema parentSchema) throws SchemaCompilationException {
XmlSchemaParticle particle = complexType.getParticle();
BeanWriterMetaInfoHolder metaInfHolder = new BeanWriterMetaInfoHolder();
if (particle != null) {
//Process the particle
- processParticle(particle, metaInfHolder, parentSchema);
+ processParticle(parentElementQName, particle, metaInfHolder, parentSchema);
}
//process attributes - first look for the explicit attributes
@@ -1029,7 +1052,7 @@
//process the particle of this node
if (extension.getParticle() != null) {
- processParticle(extension.getParticle(), metaInfHolder, parentSchema);
+ processParticle(null,extension.getParticle(), metaInfHolder, parentSchema);
}
// process attributes
@@ -1085,7 +1108,7 @@
copyMetaInfoHierarchy(metaInfHolder, restriction.getBaseTypeName(), parentSchema);
//process the particle of this node
- processParticle(restriction.getParticle(), metaInfHolder, parentSchema);
+ processParticle(null,restriction.getParticle(), metaInfHolder, parentSchema);
//process attributes - first look for the explicit attributes
XmlSchemaObjectCollection attribs = restriction.getAttributes();
@@ -1630,39 +1653,115 @@
/**
* Process a particle- A particle may be a sequence,all or a choice
- *
- * @param particle
- * @param metainfHolder
+ * @param parentElementQName - this can either be parent element QName or parent Complex type qname
+ * @param particle - particle being processed
+ * @param metainfHolder -
+ * @param parentSchema
* @throws SchemaCompilationException
*/
- private void processParticle(XmlSchemaParticle particle, //particle being processed
- BeanWriterMetaInfoHolder metainfHolder // metainf holder
+ private void processParticle(QName parentElementQName,
+ XmlSchemaParticle particle,
+ BeanWriterMetaInfoHolder metainfHolder
, XmlSchema parentSchema) throws SchemaCompilationException {
+
if (particle instanceof XmlSchemaSequence) {
- XmlSchemaObjectCollection items = ((XmlSchemaSequence) particle).getItems();
- if (options.isBackwordCompatibilityMode()) {
- process(items, metainfHolder, false, parentSchema);
+ XmlSchemaSequence xmlSchemaSequence = (XmlSchemaSequence) particle;
+
+ //remove this : only for testing
+ if (parentElementQName != null) {
+ QName qname = new QName("http://mynamespace.com/testparticlemaxoccurs", "TestCustomType");
+ if (!qname.equals(parentElementQName)) {
+ if (parentElementQName.getNamespaceURI().equals("http://mynamespace.com/testparticlemaxoccurs")) {
+ xmlSchemaSequence.setMaxOccurs(5);
+ xmlSchemaSequence.setMinOccurs(0);
+ }
+ }
+ }
+
+
+ XmlSchemaObjectCollection items = xmlSchemaSequence.getItems();
+ //TODO: support parentElementQName null instances. i.e for extensions
+ if ((xmlSchemaSequence.getMaxOccurs() > 1) && (parentElementQName != null)) {
+ // we have to process many sequence types
+ BeanWriterMetaInfoHolder beanWriterMetaInfoHolder = new BeanWriterMetaInfoHolder();
+ process(parentElementQName, items, beanWriterMetaInfoHolder, true, parentSchema);
+ beanWriterMetaInfoHolder.setParticleClass(true);
+ QName sequenceQName = new QName(parentElementQName.getNamespaceURI(),
+ parentElementQName.getLocalPart() + "Sequence");
+ String javaClassName = writeComplexParticle(sequenceQName,beanWriterMetaInfoHolder);
+ processedTypemap.put(sequenceQName, javaClassName);
+
+ // add this as an array to the original class
+ metainfHolder.registerMapping(sequenceQName,
+ sequenceQName,
+ findClassName(sequenceQName,true),
+ SchemaConstants.ARRAY_TYPE);
+ metainfHolder.setOrdered(true);
+ metainfHolder.registerQNameIndex(sequenceQName,metainfHolder.getOrderStartPoint() + 1);
+ metainfHolder.setHasParticleType(true);
+ metainfHolder.addtStatus(sequenceQName,SchemaConstants.PARTICLE_TYPE_ELEMENT);
+ metainfHolder.addMaxOccurs(sequenceQName,xmlSchemaSequence.getMaxOccurs());
+ metainfHolder.addMinOccurs(sequenceQName,xmlSchemaSequence.getMinOccurs());
+
+
} else {
- process(items, metainfHolder, true, parentSchema);
+ if (options.isBackwordCompatibilityMode()) {
+ process(parentElementQName,items, metainfHolder, false, parentSchema);
+ } else {
+ process(parentElementQName,items, metainfHolder, true, parentSchema);
+ }
}
+
} else if (particle instanceof XmlSchemaAll) {
XmlSchemaObjectCollection items = ((XmlSchemaAll) particle).getItems();
- process(items, metainfHolder, false, parentSchema);
+ process(parentElementQName,items, metainfHolder, false, parentSchema);
} else if (particle instanceof XmlSchemaChoice) {
+ XmlSchemaChoice xmlSchemaChoice = (XmlSchemaChoice) particle;
XmlSchemaObjectCollection items = ((XmlSchemaChoice) particle).getItems();
- metainfHolder.setChoice(true);
- process(items, metainfHolder, false, parentSchema);
+
+ if ((xmlSchemaChoice.getMaxOccurs() > 1)) {
+ // we have to process many sequence types
+ BeanWriterMetaInfoHolder beanWriterMetaInfoHolder = new BeanWriterMetaInfoHolder();
+ beanWriterMetaInfoHolder.setChoice(true);
+ process(parentElementQName,items, beanWriterMetaInfoHolder, false, parentSchema);
+ beanWriterMetaInfoHolder.setParticleClass(true);
+ QName choiceQName = new QName(parentElementQName.getNamespaceURI(),
+ parentElementQName.getLocalPart() + "Choice");
+ String javaClassName = writeComplexParticle(choiceQName,beanWriterMetaInfoHolder);
+ processedTypemap.put(choiceQName, javaClassName);
+
+ // add this as an array to the original class
+ metainfHolder.registerMapping(choiceQName,
+ choiceQName,
+ findClassName(choiceQName,true),
+ SchemaConstants.ARRAY_TYPE);
+ metainfHolder.setOrdered(true);
+ metainfHolder.setHasParticleType(true);
+ metainfHolder.registerQNameIndex(choiceQName,metainfHolder.getOrderStartPoint() + 1);
+ metainfHolder.addtStatus(choiceQName,SchemaConstants.PARTICLE_TYPE_ELEMENT);
+ metainfHolder.addMaxOccurs(choiceQName,xmlSchemaChoice.getMaxOccurs());
+ metainfHolder.addMinOccurs(choiceQName,xmlSchemaChoice.getMinOccurs());
+
+ } else {
+ metainfHolder.setChoice(true);
+ process(parentElementQName,items, metainfHolder, false, parentSchema);
+ }
+
}
}
/**
+ *
+ * @param parentElementQName - this could either be the complex type parentElementQName or element parentElementQName
* @param items
* @param metainfHolder
* @param order
+ * @param parentSchema
* @throws SchemaCompilationException
*/
- private void process(XmlSchemaObjectCollection items,
+ private void process(QName parentElementQName,
+ XmlSchemaObjectCollection items,
BeanWriterMetaInfoHolder metainfHolder,
boolean order,
XmlSchema parentSchema) throws SchemaCompilationException {
@@ -1671,6 +1770,8 @@
Map processedElementTypeMap = new LinkedHashMap();
List localNillableList = new ArrayList();
+ Map particleQNameMap = new HashMap();
+
// this list is used to keep the details of the
// elements within a choice withing sequence
List innerChoiceElementList = new ArrayList();
@@ -1704,6 +1805,53 @@
}
//we do not register the array status for the any type
processedElementArrayStatusMap.put(any, isArray(any) ? Boolean.TRUE : Boolean.FALSE);
+ } else if (item instanceof XmlSchemaSequence) {
+ // we have to process many sequence types
+
+ XmlSchemaSequence xmlSchemaSequence = (XmlSchemaSequence) item;
+ if (xmlSchemaSequence.getItems().getCount() > 0) {
+ BeanWriterMetaInfoHolder beanWriterMetaInfoHolder = new BeanWriterMetaInfoHolder();
+ process(parentElementQName, xmlSchemaSequence.getItems(), beanWriterMetaInfoHolder, true, parentSchema);
+ beanWriterMetaInfoHolder.setParticleClass(true);
+ QName sequenceQName = new QName(parentElementQName.getNamespaceURI(),
+ parentElementQName.getLocalPart() + "Sequence" + getNextTypeSuffix());
+ String javaClassName = writeComplexParticle(sequenceQName, beanWriterMetaInfoHolder);
+ processedTypemap.put(sequenceQName, javaClassName);
+
+ //put the partical to array
+ Boolean isArray = xmlSchemaSequence.getMaxOccurs() > 1 ? Boolean.TRUE : Boolean.FALSE;
+ processedElementArrayStatusMap.put(item, isArray);
+ particleQNameMap.put(item, sequenceQName);
+
+ if (order) {
+ elementOrderMap.put(item, new Integer(sequenceCounter));
+ }
+ }
+
+ } else if (item instanceof XmlSchemaChoice) {
+ // we have to process many sequence types
+
+ XmlSchemaChoice xmlSchemaChoice = (XmlSchemaChoice) item;
+ if (xmlSchemaChoice.getItems().getCount() > 0) {
+ BeanWriterMetaInfoHolder beanWriterMetaInfoHolder = new BeanWriterMetaInfoHolder();
+ beanWriterMetaInfoHolder.setChoice(true);
+ process(parentElementQName, xmlSchemaChoice.getItems(), beanWriterMetaInfoHolder, false, parentSchema);
+ beanWriterMetaInfoHolder.setParticleClass(true);
+ QName choiceQName = new QName(parentElementQName.getNamespaceURI(),
+ parentElementQName.getLocalPart() + "Choice" + getNextTypeSuffix());
+ String javaClassName = writeComplexParticle(choiceQName, beanWriterMetaInfoHolder);
+ processedTypemap.put(choiceQName, javaClassName);
+
+ //put the partical to array
+ Boolean isArray = xmlSchemaChoice.getMaxOccurs() > 1 ? Boolean.TRUE : Boolean.FALSE;
+ processedElementArrayStatusMap.put(item, isArray);
+ particleQNameMap.put(item, choiceQName);
+
+ if (order) {
+ elementOrderMap.put(item, new Integer(sequenceCounter));
+ }
+ }
+
} else if (order && (item instanceof XmlSchemaChoice)) {
// this is a tempory patch for process only inner sequence choices
@@ -1849,6 +1997,52 @@
//record the order in the metainf holder for the any
Integer integer = (Integer) elementOrderMap.get(any);
metainfHolder.registerQNameIndex(anyElementFieldName,
+ startingItemNumberOrder + integer.intValue());
+ }
+ } else if (child instanceof XmlSchemaSequence) {
+ XmlSchemaSequence xmlSchemaSequence = (XmlSchemaSequence) child;
+ QName sequenceQName = (QName) particleQNameMap.get(child);
+ boolean isArray = xmlSchemaSequence.getMaxOccurs() > 1;
+
+ // add this as an array to the original class
+ metainfHolder.registerMapping(sequenceQName,
+ sequenceQName,
+ findClassName(sequenceQName, isArray));
+ if (isArray) {
+ metainfHolder.addtStatus(sequenceQName, SchemaConstants.ARRAY_TYPE);
+ }
+ metainfHolder.addtStatus(sequenceQName, SchemaConstants.PARTICLE_TYPE_ELEMENT);
+ metainfHolder.addMaxOccurs(sequenceQName, xmlSchemaSequence.getMaxOccurs());
+ metainfHolder.addMinOccurs(sequenceQName, xmlSchemaSequence.getMinOccurs());
+ metainfHolder.setHasParticleType(true);
+
+ if (order) {
+ //record the order in the metainf holder for the any
+ Integer integer = (Integer) elementOrderMap.get(child);
+ metainfHolder.registerQNameIndex(sequenceQName,
+ startingItemNumberOrder + integer.intValue());
+ }
+ } else if (child instanceof XmlSchemaChoice) {
+ XmlSchemaChoice xmlSchemaChoice = (XmlSchemaChoice) child;
+ QName choiceQName = (QName) particleQNameMap.get(child);
+ boolean isArray = xmlSchemaChoice.getMaxOccurs() > 1;
+
+ // add this as an array to the original class
+ metainfHolder.registerMapping(choiceQName,
+ choiceQName,
+ findClassName(choiceQName, isArray));
+ if (isArray) {
+ metainfHolder.addtStatus(choiceQName, SchemaConstants.ARRAY_TYPE);
+ }
+ metainfHolder.addtStatus(choiceQName, SchemaConstants.PARTICLE_TYPE_ELEMENT);
+ metainfHolder.addMaxOccurs(choiceQName, xmlSchemaChoice.getMaxOccurs());
+ metainfHolder.addMinOccurs(choiceQName, xmlSchemaChoice.getMinOccurs());
+ metainfHolder.setHasParticleType(true);
+
+ if (order) {
+ //record the order in the metainf holder for the any
+ Integer integer = (Integer) elementOrderMap.get(child);
+ metainfHolder.registerQNameIndex(choiceQName,
startingItemNumberOrder + integer.intValue());
}
}
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=534864&r1=534863&r2=534864
==============================================================================
--- 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 Thu May 3 06:56:33 2007
@@ -81,14 +81,15 @@
public static final QName XSD_TOKEN = new QName(URI_DEFAULT_SCHEMA_XSD, "token");
//bit patterns for the types
- public static final int ATTRIBUTE_TYPE = 0x01;
- public static final int ELEMENT_TYPE = 0x02;
- public static final int ARRAY_TYPE = 0x04;
- 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_OR_CONTENT = 0x40;
- public static final int INNER_CHOICE_ELEMENT = 0x80;
+ public static final int ATTRIBUTE_TYPE = 0x0001;
+ public static final int ELEMENT_TYPE = 0x0002;
+ public static final int ARRAY_TYPE = 0x0004;
+ public static final int ANY_TYPE = 0x0008;
+ public static final int BINARY_TYPE = 0x0010;
+ public static final int OPTIONAL_TYPE = 0x0020;
+ public static final int SIMPLE_TYPE_OR_CONTENT = 0x0040;
+ public static final int INNER_CHOICE_ELEMENT = 0x0080;
+ public static final int PARTICLE_TYPE_ELEMENT = 0x0100;
public static class SchemaPropertyNames{
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org