You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Tom Jordahl <to...@macromedia.com> on 2002/11/25 17:37:08 UTC

RE: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/symbolTabl e SchemaUtils.java

Once again, Dims proves that he is "da MAN"!

Dims, how does this work?  Do we need to document it special?

--
Tom Jordahl
Macromedia Server Development



-----Original Message-----
From: dims@apache.org [mailto:dims@apache.org]
Sent: Sunday, November 24, 2002 9:44 AM
To: xml-axis-cvs@apache.org
Subject: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/symbolTable
SchemaUtils.java


dims        2002/11/24 06:43:59

  Modified:    java/src/org/apache/axis Constants.java
               java/src/org/apache/axis/encoding
                        DefaultTypeMappingImpl.java
               java/src/org/apache/axis/wsdl/symbolTable SchemaUtils.java
  Added:       java/test/wsdl/dataset build.xml DataService.wsdl
                        DataServiceTestCase.java
               java/src/org/apache/axis/types Schema.java
               java/src/org/apache/axis/holders SchemaHolder.java
  Log:
  Fix for Bug 8419 - DotNet's DataSet is not supported
  
  Notes:
  - Added test case
  - support for xsd:schema in wsdl2java
  
  Revision  Changes    Path
  1.1                  xml-axis/java/test/wsdl/dataset/build.xml
  
  Index: build.xml
  ===================================================================
  <?xml version="1.0" ?>
  <!DOCTYPE project [
          <!ENTITY properties SYSTEM "file:../../../xmls/properties.xml">
          <!ENTITY paths  SYSTEM "file:../../../xmls/path_refs.xml">
          <!ENTITY taskdefs SYSTEM "file:../../../xmls/taskdefs.xml">
          <!ENTITY taskdefs_post_compile SYSTEM "file:../../../xmls/taskdefs_post_compile.xml">
          <!ENTITY targets SYSTEM "file:../../../xmls/targets.xml">
  ]>
  
  <!-- ===================================================================
  <description>
     Test/Sample Component file for Axis
  
  Notes:
     This is a build file for use with the Jakarta Ant build tool.
  
  Prerequisites:
  
     jakarta-ant from http://jakarta.apache.org
  
  Build Instructions:
     To compile
          ant compile
     To execute
          ant run
  
  Author:
    Matt Seibert mseibert@us.ibm.com
  
  Copyright:
    Copyright (c) 2002-2003 Apache Software Foundation.
  </description>
  ==================================================================== -->
  
  <project default="compile">
  
  <property name="axis.home" location="../../.." />
  <property name="componentName" value="test/wsdl/dataset" />
          &properties;
          &paths;
          &taskdefs;
          &taskdefs_post_compile;
          &targets;
  
  <target name="clean">
      <echo message="Removing ${build.dir}/classes/${componentName} and ${build.dir}/work/${componentName}" />
      <delete dir="${build.dir}/classes/${componentName}"/>
      <delete dir="${build.dir}/work/${componentName}"/>
  </target>
  
  <target name="copy" depends="setenv"/>
  
  <target name="compile" depends="copy">
    <echo message="Compiling test.wsdl.dataset"/>
      <!-- This is a DII test with multiple output params -->
      <wsdl2java url="${axis.home}/test/wsdl/dataset/DataService.wsdl"
                 output="${axis.home}/build/work"
                 serverSide="no"
                 testcase="no">
          <mapping namespace="http://tempuri.org/" package="test.wsdl.dataset"/>
      </wsdl2java>
  
     <copy todir="${build.dir}/work/test/wsdl/dataset" overwrite="yes">
        <fileset dir="${axis.home}/test/wsdl/dataset">
          <include name="*TestCase.java"/>
        </fileset>
      </copy>
  
      <javac srcdir="${build.dir}/work" destdir="${build.dest}" fork="${javac.fork}"
             debug="${debug}">
        <classpath refid="classpath" />
        <include name="test/wsdl/dataset/*.java" />
        <include name="test/wsdl/dataset/**/*.java" />
      </javac>
  
  </target>
  
  <target name="run" >
    <antcall target="execute-Component-noServer" />
  </target>
  
  </project>
  
  
  
  1.1                  xml-axis/java/test/wsdl/dataset/DataService.wsdl
  
  Index: DataService.wsdl
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://tempuri.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
    <types>
      <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
        <s:import namespace="http://www.w3.org/2001/XMLSchema" />
        <s:element name="GetTitleAuthors">
          <s:complexType />
        </s:element>
        <s:element name="GetTitleAuthorsResponse">
          <s:complexType>
            <s:sequence>
              <s:element minOccurs="0" maxOccurs="1" name="GetTitleAuthorsResult">
                <s:complexType>
                  <s:sequence>
                    <s:element ref="s:schema" />
                    <s:any />
                  </s:sequence>
                </s:complexType>
              </s:element>
            </s:sequence>
          </s:complexType>
        </s:element>
        <s:element name="PutTitleAuthors">
          <s:complexType>
            <s:sequence>
              <s:element minOccurs="0" maxOccurs="1" name="DS">
                <s:complexType>
                  <s:sequence>
                    <s:element ref="s:schema" />
                    <s:any />
                  </s:sequence>
                </s:complexType>
              </s:element>
            </s:sequence>
          </s:complexType>
        </s:element>
        <s:element name="PutTitleAuthorsResponse">
          <s:complexType>
            <s:sequence>
              <s:element minOccurs="1" maxOccurs="1" name="PutTitleAuthorsResult" type="s:int" />
            </s:sequence>
          </s:complexType>
        </s:element>
        <s:element name="DataSet" nillable="true">
          <s:complexType>
            <s:sequence>
              <s:element ref="s:schema" />
              <s:any />
            </s:sequence>
          </s:complexType>
        </s:element>
      </s:schema>
    </types>
    <message name="GetTitleAuthorsSoapIn">
      <part name="parameters" element="s0:GetTitleAuthors" />
    </message>
    <message name="GetTitleAuthorsSoapOut">
      <part name="parameters" element="s0:GetTitleAuthorsResponse" />
    </message>
    <message name="PutTitleAuthorsSoapIn">
      <part name="parameters" element="s0:PutTitleAuthors" />
    </message>
    <message name="PutTitleAuthorsSoapOut">
      <part name="parameters" element="s0:PutTitleAuthorsResponse" />
    </message>
    <message name="GetTitleAuthorsHttpGetIn" />
    <message name="GetTitleAuthorsHttpGetOut">
      <part name="Body" element="s0:DataSet" />
    </message>
    <message name="GetTitleAuthorsHttpPostIn" />
    <message name="GetTitleAuthorsHttpPostOut">
      <part name="Body" element="s0:DataSet" />
    </message>
    <portType name="DataServiceSoap">
      <operation name="GetTitleAuthors">
        <input message="s0:GetTitleAuthorsSoapIn" />
        <output message="s0:GetTitleAuthorsSoapOut" />
      </operation>
      <operation name="PutTitleAuthors">
        <input message="s0:PutTitleAuthorsSoapIn" />
        <output message="s0:PutTitleAuthorsSoapOut" />
      </operation>
    </portType>
    <portType name="DataServiceHttpGet">
      <operation name="GetTitleAuthors">
        <input message="s0:GetTitleAuthorsHttpGetIn" />
        <output message="s0:GetTitleAuthorsHttpGetOut" />
      </operation>
    </portType>
    <portType name="DataServiceHttpPost">
      <operation name="GetTitleAuthors">
        <input message="s0:GetTitleAuthorsHttpPostIn" />
        <output message="s0:GetTitleAuthorsHttpPostOut" />
      </operation>
    </portType>
    <binding name="DataServiceSoap" type="s0:DataServiceSoap">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
      <operation name="GetTitleAuthors">
        <soap:operation soapAction="http://tempuri.org/GetTitleAuthors" style="document" />
        <input>
          <soap:body use="literal" />
        </input>
        <output>
          <soap:body use="literal" />
        </output>
      </operation>
      <operation name="PutTitleAuthors">
        <soap:operation soapAction="http://tempuri.org/PutTitleAuthors" style="document" />
        <input>
          <soap:body use="literal" />
        </input>
        <output>
          <soap:body use="literal" />
        </output>
      </operation>
    </binding>
    <binding name="DataServiceHttpGet" type="s0:DataServiceHttpGet">
      <http:binding verb="GET" />
      <operation name="GetTitleAuthors">
        <http:operation location="/GetTitleAuthors" />
        <input>
          <http:urlEncoded />
        </input>
        <output>
          <mime:mimeXml part="Body" />
        </output>
      </operation>
    </binding>
    <binding name="DataServiceHttpPost" type="s0:DataServiceHttpPost">
      <http:binding verb="POST" />
      <operation name="GetTitleAuthors">
        <http:operation location="/GetTitleAuthors" />
        <input>
          <mime:content type="application/x-www-form-urlencoded" />
        </input>
        <output>
          <mime:mimeXml part="Body" />
        </output>
      </operation>
    </binding>
    <service name="DataService">
      <port name="DataServiceSoap" binding="s0:DataServiceSoap">
        <soap:address location="http://samples.gotdotnet.com/quickstart/aspplus/samples/services/DataService/VB/DataService.asmx" />
      </port>
      <port name="DataServiceHttpGet" binding="s0:DataServiceHttpGet">
        <http:address location="http://samples.gotdotnet.com/quickstart/aspplus/samples/services/DataService/VB/DataService.asmx" />
      </port>
      <port name="DataServiceHttpPost" binding="s0:DataServiceHttpPost">
        <http:address location="http://samples.gotdotnet.com/quickstart/aspplus/samples/services/DataService/VB/DataService.asmx" />
      </port>
    </service>
  </definitions>
  
  
  1.1                  xml-axis/java/test/wsdl/dataset/DataServiceTestCase.java
  
  Index: DataServiceTestCase.java
  ===================================================================
  /**
   * DataServiceTestCase.java
   *
   * This file was auto-generated from WSDL
   * by the Apache Axis WSDL2Java emitter.
   */
  
  package test.wsdl.dataset;
  
  public class DataServiceTestCase extends junit.framework.TestCase {
      public DataServiceTestCase(java.lang.String name) {
          super(name);
      }
      public void test1DataServiceSoapGetTitleAuthors() throws Exception {
          test.wsdl.dataset.DataServiceSoap binding;
          try {
              binding = new test.wsdl.dataset.DataServiceLocator().getDataServiceSoap();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException caught: " + jre);
          }
          assertTrue("binding is null", binding != null);
  
          // Test operation
          test.wsdl.dataset.GetTitleAuthorsResult value = null;
          value = binding.getTitleAuthors();
          assertTrue(value != null);
          // TBD - validate results
      }
  }
  
  
  
  1.99      +1 -0      xml-axis/java/src/org/apache/axis/Constants.java
  
  Index: Constants.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/Constants.java,v
  retrieving revision 1.98
  retrieving revision 1.99
  diff -u -r1.98 -r1.99
  --- Constants.java	22 Nov 2002 20:12:24 -0000	1.98
  +++ Constants.java	24 Nov 2002 14:43:58 -0000	1.99
  @@ -542,6 +542,7 @@
       public static final QName XSD_ANYURI = new QName(URI_2001_SCHEMA_XSD, "anyURI");
       public static final QName XSD_LANGUAGE = new QName(URI_2001_SCHEMA_XSD, "language");
       public static final QName XSD_ID = new QName(URI_2001_SCHEMA_XSD, "ID");
  +    public static final QName XSD_SCHEMA = new QName(URI_2001_SCHEMA_XSD, "schema");
       
       public static final QName XML_LANG = new QName(NS_URI_XML, "lang");
   
  
  
  
  1.64      +8 -0      xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java
  
  Index: DefaultTypeMappingImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java,v
  retrieving revision 1.63
  retrieving revision 1.64
  diff -u -r1.63 -r1.64
  --- DefaultTypeMappingImpl.java	22 Nov 2002 20:12:25 -0000	1.63
  +++ DefaultTypeMappingImpl.java	24 Nov 2002 14:43:58 -0000	1.64
  @@ -565,6 +565,14 @@
                      new SimpleDeserializerFactory(org.apache.axis.types.URI.class,
                                                Constants.XSD_ANYURI)
           );
  +
  +        // a xsd:schema
  +        myRegister(Constants.XSD_SCHEMA, org.apache.axis.types.Schema.class,
  +                   new BeanSerializerFactory(org.apache.axis.types.Schema.class,
  +                                             Constants.XSD_SCHEMA),
  +                   new BeanDeserializerFactory(org.apache.axis.types.Schema.class,
  +                                             Constants.XSD_SCHEMA)
  +        );
           
           // All array objects automatically get associated with the SOAP_ARRAY.
           // There is no way to do this with a hash table,
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/types/Schema.java
  
  Index: Schema.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.types;
  
  /**
   * Custom class for supporting XSD schema
   * 
   * @author Davanum Srinivas <di...@yahoo.com>
   */
  public class Schema implements java.io.Serializable {
      private org.apache.axis.message.MessageElement[] _any;
      private org.apache.axis.types.URI targetNamespace;  // attribute
      private org.apache.axis.types.NormalizedString version;  // attribute
      private org.apache.axis.types.Id id;  // attribute
  
      public Schema() {
      }
  
      public org.apache.axis.message.MessageElement[] get_any() {
          return _any;
      }
  
      public void set_any(org.apache.axis.message.MessageElement[] _any) {
          this._any = _any;
      }
  
      public org.apache.axis.types.URI getTargetNamespace() {
          return targetNamespace;
      }
  
      public void setTargetNamespace(org.apache.axis.types.URI targetNamespace) {
          this.targetNamespace = targetNamespace;
      }
  
      public org.apache.axis.types.NormalizedString getVersion() {
          return version;
      }
  
      public void setVersion(org.apache.axis.types.NormalizedString version) {
          this.version = version;
      }
  
      public org.apache.axis.types.Id getId() {
          return id;
      }
  
      public void setId(org.apache.axis.types.Id id) {
          this.id = id;
      }
  
      private java.lang.Object __equalsCalc = null;
  
      public synchronized boolean equals(java.lang.Object obj) {
          if (!(obj instanceof Schema)) return false;
          Schema other = (Schema) obj;
          if (obj == null) return false;
          if (this == obj) return true;
          if (__equalsCalc != null) {
              return (__equalsCalc == obj);
          }
          __equalsCalc = obj;
          boolean _equals;
          _equals = true &&
                  ((_any == null && other.get_any() == null) ||
                  (_any != null &&
                  java.util.Arrays.equals(_any, other.get_any()))) &&
                  ((targetNamespace == null && other.getTargetNamespace() == null) ||
                  (targetNamespace != null &&
                  targetNamespace.equals(other.getTargetNamespace()))) &&
                  ((version == null && other.getVersion() == null) ||
                  (version != null &&
                  version.equals(other.getVersion()))) &&
                  ((id == null && other.getId() == null) ||
                  (id != null &&
                  id.equals(other.getId())));
          __equalsCalc = null;
          return _equals;
      }
  
      private boolean __hashCodeCalc = false;
  
      public synchronized int hashCode() {
          if (__hashCodeCalc) {
              return 0;
          }
          __hashCodeCalc = true;
          int _hashCode = 1;
          if (get_any() != null) {
              for (int i = 0;
                   i < java.lang.reflect.Array.getLength(get_any());
                   i++) {
                  java.lang.Object obj = java.lang.reflect.Array.get(get_any(), i);
                  if (obj != null &&
                          !obj.getClass().isArray()) {
                      _hashCode += obj.hashCode();
                  }
              }
          }
          if (getTargetNamespace() != null) {
              _hashCode += getTargetNamespace().hashCode();
          }
          if (getVersion() != null) {
              _hashCode += getVersion().hashCode();
          }
          if (getId() != null) {
              _hashCode += getId().hashCode();
          }
          __hashCodeCalc = false;
          return _hashCode;
      }
  
      // Type metadata
      private static org.apache.axis.description.TypeDesc typeDesc =
              new org.apache.axis.description.TypeDesc(Schema.class);
  
      static {
          org.apache.axis.description.FieldDesc field = new org.apache.axis.description.AttributeDesc();
          field.setFieldName("targetNamespace");
          field.setXmlName(new javax.xml.namespace.QName("", "targetNamespace"));
          field.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "anyURI"));
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.AttributeDesc();
          field.setFieldName("version");
          field.setXmlName(new javax.xml.namespace.QName("", "version"));
          field.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "normalizedString"));
          typeDesc.addFieldDesc(field);
          field = new org.apache.axis.description.AttributeDesc();
          field.setFieldName("id");
          field.setXmlName(new javax.xml.namespace.QName("", "id"));
          field.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "ID"));
          typeDesc.addFieldDesc(field);
      };
  
      /**
       * Return type metadata object
       */
      public static org.apache.axis.description.TypeDesc getTypeDesc() {
          return typeDesc;
      }
  
      /**
       * Get Custom Serializer
       */
      public static org.apache.axis.encoding.Serializer getSerializer(
              java.lang.String mechType,
              java.lang.Class _javaType,
              javax.xml.namespace.QName _xmlType) {
          return
                  new org.apache.axis.encoding.ser.BeanSerializer(
                          _javaType, _xmlType, typeDesc);
      }
  
      /**
       * Get Custom Deserializer
       */
      public static org.apache.axis.encoding.Deserializer getDeserializer(
              java.lang.String mechType,
              java.lang.Class _javaType,
              javax.xml.namespace.QName _xmlType) {
          return
                  new org.apache.axis.encoding.ser.BeanDeserializer(
                          _javaType, _xmlType, typeDesc);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/holders/SchemaHolder.java
  
  Index: SchemaHolder.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.holders;
  
  /**
   * Custom class for supporting XSD schema
   * 
   * @author Davanum Srinivas <di...@yahoo.com>
   */
  public final class SchemaHolder implements javax.xml.rpc.holders.Holder {
      public org.apache.axis.types.Schema value;
  
      public SchemaHolder() {
      }
  
      public SchemaHolder(org.apache.axis.types.Schema value) {
          this.value = value;
      }
  }
  
  
  
  1.17      +1 -0      xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SchemaUtils.java
  
  Index: SchemaUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SchemaUtils.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- SchemaUtils.java	30 Aug 2002 15:31:30 -0000	1.16
  +++ SchemaUtils.java	24 Nov 2002 14:43:59 -0000	1.17
  @@ -1111,6 +1111,7 @@
   
       // list of all of the XSD types in Schema 2001
       private static String schemaTypes[] = {
  +        "schema",
           "string",
           "normalizedString",
           "token",        
  
  
  

RE: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/symbolTabl e SchemaUtils.java

Posted by Davanum Srinivas <di...@yahoo.com>.
Tom,

I need to tweak it....Nothing special needs to be documented. Just run wsdl2java, compile the
generated code, write a main method to invoke the service. See test/wsdl/dataset for a sample.

Thanks for the encouragement,
dims

--- Tom Jordahl <to...@macromedia.com> wrote:
> 
> Once again, Dims proves that he is "da MAN"!
> 
> Dims, how does this work?  Do we need to document it special?
> 
> --
> Tom Jordahl
> Macromedia Server Development
> 
> 
> 
> -----Original Message-----
> From: dims@apache.org [mailto:dims@apache.org]
> Sent: Sunday, November 24, 2002 9:44 AM
> To: xml-axis-cvs@apache.org
> Subject: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/symbolTable
> SchemaUtils.java
> 
> 
> dims        2002/11/24 06:43:59
> 
>   Modified:    java/src/org/apache/axis Constants.java
>                java/src/org/apache/axis/encoding
>                         DefaultTypeMappingImpl.java
>                java/src/org/apache/axis/wsdl/symbolTable SchemaUtils.java
>   Added:       java/test/wsdl/dataset build.xml DataService.wsdl
>                         DataServiceTestCase.java
>                java/src/org/apache/axis/types Schema.java
>                java/src/org/apache/axis/holders SchemaHolder.java
>   Log:
>   Fix for Bug 8419 - DotNet's DataSet is not supported
>   
>   Notes:
>   - Added test case
>   - support for xsd:schema in wsdl2java
>   
>   Revision  Changes    Path
>   1.1                  xml-axis/java/test/wsdl/dataset/build.xml
>   
>   Index: build.xml
>   ===================================================================
>   <?xml version="1.0" ?>
>   <!DOCTYPE project [
>           <!ENTITY properties SYSTEM "file:../../../xmls/properties.xml">
>           <!ENTITY paths  SYSTEM "file:../../../xmls/path_refs.xml">
>           <!ENTITY taskdefs SYSTEM "file:../../../xmls/taskdefs.xml">
>           <!ENTITY taskdefs_post_compile SYSTEM "file:../../../xmls/taskdefs_post_compile.xml">
>           <!ENTITY targets SYSTEM "file:../../../xmls/targets.xml">
>   ]>
>   
>   <!-- ===================================================================
>   <description>
>      Test/Sample Component file for Axis
>   
>   Notes:
>      This is a build file for use with the Jakarta Ant build tool.
>   
>   Prerequisites:
>   
>      jakarta-ant from http://jakarta.apache.org
>   
>   Build Instructions:
>      To compile
>           ant compile
>      To execute
>           ant run
>   
>   Author:
>     Matt Seibert mseibert@us.ibm.com
>   
>   Copyright:
>     Copyright (c) 2002-2003 Apache Software Foundation.
>   </description>
>   ==================================================================== -->
>   
>   <project default="compile">
>   
>   <property name="axis.home" location="../../.." />
>   <property name="componentName" value="test/wsdl/dataset" />
>           &properties;
>           &paths;
>           &taskdefs;
>           &taskdefs_post_compile;
>           &targets;
>   
>   <target name="clean">
>       <echo message="Removing ${build.dir}/classes/${componentName} and
> ${build.dir}/work/${componentName}" />
>       <delete dir="${build.dir}/classes/${componentName}"/>
>       <delete dir="${build.dir}/work/${componentName}"/>
>   </target>
>   
>   <target name="copy" depends="setenv"/>
>   
>   <target name="compile" depends="copy">
>     <echo message="Compiling test.wsdl.dataset"/>
>       <!-- This is a DII test with multiple output params -->
>       <wsdl2java url="${axis.home}/test/wsdl/dataset/DataService.wsdl"
>                  output="${axis.home}/build/work"
>                  serverSide="no"
>                  testcase="no">
>           <mapping namespace="http://tempuri.org/" package="test.wsdl.dataset"/>
>       </wsdl2java>
>   
>      <copy todir="${build.dir}/work/test/wsdl/dataset" overwrite="yes">
>         <fileset dir="${axis.home}/test/wsdl/dataset">
>           <include name="*TestCase.java"/>
>         </fileset>
>       </copy>
>   
>       <javac srcdir="${build.dir}/work" destdir="${build.dest}" fork="${javac.fork}"
>              debug="${debug}">
>         <classpath refid="classpath" />
>         <include name="test/wsdl/dataset/*.java" />
>         <include name="test/wsdl/dataset/**/*.java" />
>       </javac>
>   
>   </target>
>   
>   <target name="run" >
>     <antcall target="execute-Component-noServer" />
>   </target>
>   
>   </project>
>   
>   
>   
>   1.1                  xml-axis/java/test/wsdl/dataset/DataService.wsdl
>   
>   Index: DataService.wsdl
>   ===================================================================
>   <?xml version="1.0" encoding="utf-8"?>
>   <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema"
> xmlns:s0="http://tempuri.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/"
> xmlns="http://schemas.xmlsoap.org/wsdl/">
>     <types>
>       <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
>         <s:import namespace="http://www.w3.org/2001/XMLSchema" />
>         <s:element name="GetTitleAuthors">
>           <s:complexType />
>         </s:element>
>         <s:element name="GetTitleAuthorsResponse">
>           <s:complexType>
>             <s:sequence>
>               <s:element minOccurs="0" maxOccurs="1" name="GetTitleAuthorsResult">
>                 <s:complexType>
>                   <s:sequence>
>                     <s:element ref="s:schema" />
>                     <s:any />
>                   </s:sequence>
>                 </s:complexType>
>               </s:element>
>             </s:sequence>
>           </s:complexType>
>         </s:element>
>         <s:element name="PutTitleAuthors">
>           <s:complexType>
>             <s:sequence>
>               <s:element minOccurs="0" maxOccurs="1" name="DS">
>                 <s:complexType>
>                   <s:sequence>
>                     <s:element ref="s:schema" />
>                     <s:any />
>                   </s:sequence>
>                 </s:complexType>
>               </s:element>
>             </s:sequence>
>           </s:complexType>
>         </s:element>
>         <s:element name="PutTitleAuthorsResponse">
>           <s:complexType>
>             <s:sequence>
>               <s:element minOccurs="1" maxOccurs="1" name="PutTitleAuthorsResult" type="s:int"
> />
>             </s:sequence>
>           </s:complexType>
>         </s:element>
>         <s:element name="DataSet" nillable="true">
>           <s:complexType>
>             <s:sequence>
>               <s:element ref="s:schema" />
>               <s:any />
>             </s:sequence>
>           </s:complexType>
>         </s:element>
>       </s:schema>
>     </types>
>     <message name="GetTitleAuthorsSoapIn">
>       <part name="parameters" element="s0:GetTitleAuthors" />
>     </message>
>     <message name="GetTitleAuthorsSoapOut">
>       <part name="parameters" element="s0:GetTitleAuthorsResponse" />
>     </message>
>     <message name="PutTitleAuthorsSoapIn">
>       <part name="parameters" element="s0:PutTitleAuthors" />
>     </message>
>     <message name="PutTitleAuthorsSoapOut">
>       <part name="parameters" element="s0:PutTitleAuthorsResponse" />
> 
=== message truncated ===


=====
Davanum Srinivas - http://xml.apache.org/~dims/

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus � Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com