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 Davanum Srinivas <da...@gmail.com> on 2005/10/11 14:58:18 UTC

Objective for Simple Schema Compiler [Re: svn commit: r312869 - in /webservices/axis2/trunk/java/modules/codegen: src/org/apache/axis2/databinding/schema/ test-resources/xsd/ test/org/apache/axis2/databinding/schema/]

Ajith,

In my mind, we had to have enough support for at least the
soapbuilders interop tests using our databinding....what do you think?

thanks,
dims

On 10/11/05, ajith@apache.org <aj...@apache.org> wrote:
> Author: ajith
> Date: Tue Oct 11 05:54:13 2005
> New Revision: 312869
>
> URL: http://svn.apache.org/viewcvs?rev=312869&view=rev
> Log:
> 1.Optimized the compiler
> 2. removed the complex extension support. If we are doing it it has to be done right and at the current state it has a long way to go. It's better to limit ourselves at the start
>
> The schema compiler can handle sequence and all right now. I guess that's enough for a simple schema compiler!
>
> Added:
>     webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple_element.xsd
>     webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleElementTest.java
> Removed:
>     webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/complex_extension.xsd
>     webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/ComplexExtensionTest.java
> Modified:
>     webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/JavaBeanWriter.java
>     webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/SchemaCompiler.java
>     webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/TypeMap.java
>
> Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/JavaBeanWriter.java
> URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/JavaBeanWriter.java?rev=312869&r1=312868&r2=312869&view=diff
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/JavaBeanWriter.java (original)
> +++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/JavaBeanWriter.java Tue Oct 11 05:54:13 2005
> @@ -1,6 +1,7 @@
>  package org.apache.axis2.databinding.schema;
>
>
>
>  import org.apache.ws.commons.schema.XmlSchemaComplexType;
>
> +import org.apache.ws.commons.schema.XmlSchemaElement;
>
>  import org.apache.axis2.util.*;
>
>  import org.w3c.dom.Document;
>
>  import org.w3c.dom.Element;
>
> @@ -51,7 +52,14 @@
>
>
>      }
>
>
>
> -    public void write(XmlSchemaComplexType complexType, Map typeMap, BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException{
>
> +    /**
>
> +     *
>
> +     * @param complexType
>
> +     * @param typeMap
>
> +     * @param metainf
>
> +     * @throws SchemaCompilationException
>
> +     */
>
> +    public String write(XmlSchemaComplexType complexType, Map typeMap, BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException{
>
>
>
>          try {
>
>              //determine the package for this type.
>
> @@ -83,10 +91,71 @@
>                  Element property = XSLTUtils.addChildElement(model,"property",rootElt);
>
>                  name = (QName)qNameIterator.next();
>
>                  XSLTUtils.addAttribute(model,"name",name.getLocalPart(),property);
>
> -                XSLTUtils.addAttribute(model,"type",metainf.getJavaClassNameForElement(name),property);
>
> -                if (typeMap.containsKey(metainf.getSchemaQNameForElement(name))){
>
> -                    XSLTUtils.addAttribute(model,"ours","yes",property); //todo introduce a better name for this
>
> +                String javaClassNameForElement = metainf.getJavaClassNameForElement(name);
>
> +                if (javaClassNameForElement==null){
>
> +                    throw new SchemaCompilationException("Type missing!");
>
>                  }
>
> +                XSLTUtils.addAttribute(model,"type",javaClassNameForElement,property);
>
> +            }
>
> +
>
> +            //create the file
>
> +            OutputStream out = createOutFile(packageName,className);
>
> +            //parse with the template and create the files
>
> +            parse(model,out);
>
> +            //return the fully qualified class name
>
> +            return packageName+"."+className;
>
> +
>
> +        }catch (SchemaCompilationException e) {
>
> +            throw e;
>
> +        }catch (Exception e) {
>
> +            throw new SchemaCompilationException(e);
>
> +        }
>
> +
>
> +
>
> +    }
>
> +
>
> +    /**
>
> +     *
>
> +     * @param element
>
> +     * @param typeMap
>
> +     * @param metainf
>
> +     * @return
>
> +     * @throws SchemaCompilationException
>
> +     */
>
> +    public String write(XmlSchemaElement element, Map typeMap, BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException{
>
> +
>
> +        try {
>
> +            //determine the package for this type.
>
> +            QName qName = element.getQName();
>
> +            String packageName = URLProcessor.getNameSpaceFromURL(qName.getNamespaceURI());
>
> +            String className = qName.getLocalPart();
>
> +
>
> +            if (!templateLoaded){
>
> +                loadTemplate();
>
> +            }
>
> +
>
> +            //create the model
>
> +            Document model= XSLTUtils.getDocument();
>
> +
>
> +            //make the XML
>
> +            Element rootElt = XSLTUtils.addChildElement(model,"bean",model);
>
> +            XSLTUtils.addAttribute(model,"name",className,rootElt);
>
> +            XSLTUtils.addAttribute(model,"package",packageName,rootElt);
>
> +            XSLTUtils.addAttribute(model,"nsuri",qName.getNamespaceURI(),rootElt);
>
> +            XSLTUtils.addAttribute(model,"nsprefix",qName.getPrefix(),rootElt);
>
> +
>
> +            // go in the loop and add the part elements
>
> +            Iterator qNameIterator = metainf.getElementQNameIterator();
>
> +
>
> +            QName name;
>
> +            while (qNameIterator.hasNext()) {
>
> +                Element property = XSLTUtils.addChildElement(model,"property",rootElt);
>
> +                name = (QName)qNameIterator.next();
>
> +                XSLTUtils.addAttribute(model,"name",name.getLocalPart(),property);
>
> +                XSLTUtils.addAttribute(model,"type",metainf.getJavaClassNameForElement(name),property);
>
> +//                if (typeMap.containsKey(metainf.getSchemaQNameForElement(name))){
>
> +//                    XSLTUtils.addAttribute(model,"ours","yes",property); //todo introduce a better name for this
>
> +//                }
>
>
>
>              }
>
>
>
> @@ -94,13 +163,13 @@
>              OutputStream out = createOutFile(packageName,className);
>
>              //parse with the template and create the files
>
>              parse(model,out);
>
> +            return packageName+"."+className;
>
>          } catch (Exception e) {
>
>              throw new SchemaCompilationException(e);
>
>          }
>
>
>
>
>
>      }
>
> -
>
>
>
>
>
>      /** A bit of code from the code generator. We are better off using the template
>
>
> Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/SchemaCompiler.java
> URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/SchemaCompiler.java?rev=312869&r1=312868&r2=312869&view=diff
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/SchemaCompiler.java (original)
> +++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/SchemaCompiler.java Tue Oct 11 05:54:13 2005
> @@ -4,10 +4,7 @@
>  import org.apache.axis2.util.URLProcessor;
>
>
>
>  import javax.xml.namespace.QName;
>
> -import java.util.List;
>
> -import java.util.Iterator;
>
> -import java.util.HashMap;
>
> -import java.util.Map;
>
> +import java.util.*;
>
>  import java.io.IOException;
>
>  /*
>
>   * Copyright 2004,2005 The Apache Software Foundation.
>
> @@ -29,6 +26,7 @@
>
>
>      private CompilerOptions options;
>
>      private HashMap processedTypemap;
>
> +    private HashMap processedElementmap;
>
>      private JavaBeanWriter writer;
>
>
>
>      private Map baseSchemaTypeMap = TypeMap.getTypeMap();
>
> @@ -48,6 +46,7 @@
>              }
>
>
>
>              this.processedTypemap = new HashMap();
>
> +            this.processedElementmap = new HashMap();
>
>
>
>              this.writer = new JavaBeanWriter(this.options.getOutputLocation());
>
>
>
> @@ -98,6 +97,8 @@
>              processElement((XmlSchemaElement)xmlSchemaElementIterator.next());
>
>          }
>
>
>
> +
>
> +
>
>      }
>
>
>
>      /**
>
> @@ -109,11 +110,31 @@
>          //for each and every element and process that accordingly.
>
>          //this means that any unused type definitions would not be generated!
>
>          XmlSchemaType schemaType = xsElt.getSchemaType();
>
> -        if (schemaType!=null){
>
> -            processSchema(schemaType);
>
> +        if (processedElementmap.containsKey(xsElt.getQName())){
>
> +            return;
>
> +        }
>
> +        if (schemaType==null){
>
> +            throw new SchemaCompilationException("Schema type not found!");
>
>          }
>
> +        processSchema(schemaType);
>
> +        QName qName = schemaType.getQName();
>
>
>
>          //write a class for this element
>
> +        BeanWriterMetaInfoHolder metainf = new BeanWriterMetaInfoHolder();
>
> +        //there can be only one schema type
>
> +        String className = "";
>
> +        if (processedTypemap.containsKey(qName)){
>
> +            className =  processedTypemap.get(qName).toString();
>
> +        }else if (baseSchemaTypeMap.containsKey(qName)){
>
> +            className =  baseSchemaTypeMap.get(qName).toString();
>
> +        }else{
>
> +            //throw an exception here
>
> +        }
>
> +        metainf.addElementInfo(xsElt.getQName(),qName,className);
>
> +
>
> +        String fullyQualifiedClassName = writer.write(xsElt,processedTypemap,metainf);
>
> +        processedElementmap.put(xsElt.getQName(),fullyQualifiedClassName);
>
> +
>
>
>
>      }
>
>
>
> @@ -132,7 +153,8 @@
>       */
>
>      private void processComplexSchemaType(XmlSchemaComplexType complexType) throws SchemaCompilationException{
>
>
>
> -        if (processedTypemap.containsKey(complexType.getQName())){
>
> +        if (processedTypemap.containsKey(complexType.getQName())
>
> +                || baseSchemaTypeMap.containsKey(complexType.getQName())){
>
>              return;
>
>          }
>
>
>
> @@ -145,83 +167,82 @@
>              //Process the particle
>
>              processParticle(particle, metaInfHolder);
>
>          }else{
>
> -            XmlSchemaContentModel contentModel = complexType.getContentModel();
>
> -            if (contentModel!=null){
>
> -                XmlSchemaContent content =  (contentModel).getContent();
>
> -                if (content instanceof XmlSchemaComplexContentExtension){
>
> -                    XmlSchemaComplexContentExtension xmlSchemaComplexContentExtension = (XmlSchemaComplexContentExtension) content;
>
> -                    processParticle(xmlSchemaComplexContentExtension.getParticle(),metaInfHolder);
>
> -                    metaInfHolder.setExtension(true);
>
> -                    metaInfHolder.setExtensionClassName(
>
> -                            getJavaClassNameFromComplexTypeQName(
>
> -                                    xmlSchemaComplexContentExtension.getBaseTypeName()));
>
> -                }
>
> -
>
> -
>
> -            }
>
> +            // Process the other types - Say the complex content, extensions and so on
>
>          }
>
>
>
>          //write the class. This type mapping would have been populated right now
>
> -        writer.write(complexType,processedTypemap,metaInfHolder);
>
> -        processedTypemap.put(complexType.getQName(),"");
>
> +        String fullyQualifiedClassName = writer.write(complexType,processedTypemap,metaInfHolder);
>
> +        processedTypemap.put(complexType.getQName(),fullyQualifiedClassName);
>
>
>
>          //populate the type mapping with the elements
>
>
>
>      }
>
>
>
>      private void processParticle(XmlSchemaParticle particle, //particle being processed
>
> -                                BeanWriterMetaInfoHolder metainfHolder // metainf holder
>
> +                                 BeanWriterMetaInfoHolder metainfHolder // metainf holder
>
>      ) throws SchemaCompilationException {
>
>          if (particle instanceof XmlSchemaSequence ){
>
>              XmlSchemaObjectCollection items = ((XmlSchemaSequence)particle).getItems();
>
> -            int count = items.getCount();
>
> -            for (int i = 0; i < count; i++) {
>
> -                XmlSchemaObject item = items.getItem(i);
>
> -                if (item instanceof XmlSchemaElement){
>
> -                    //recursively process the element
>
> -                    XmlSchemaElement xsElt = (XmlSchemaElement) item;
>
> -                    processElement(xsElt);
>
> -                    //add this to the processed element list
>
> -                    QName schemaTypeQName = xsElt.getSchemaType().getQName();
>
> -                    Class clazz = (Class)baseSchemaTypeMap.get(schemaTypeQName);
>
> -                    if (clazz!=null){
>
> -                        metainfHolder.addElementInfo(xsElt.getQName(),
>
> -                                                     xsElt.getSchemaTypeName()
>
> -                                                     ,clazz.getName());
>
> -                    }else{
>
> -                         metainfHolder.addElementInfo(xsElt.getQName(),
>
> -                                                     xsElt.getSchemaTypeName()
>
> -                                                     ,getJavaClassNameFromComplexTypeQName(schemaTypeQName));
>
> -                    }
>
> -                }else if (item instanceof XmlSchemaComplexContent){
>
> -                    // process the extension
>
> -                    XmlSchemaContent content = ((XmlSchemaComplexContent)item).getContent();
>
> -                    if (content instanceof XmlSchemaComplexContentExtension){
>
> -                        processParticle(((XmlSchemaComplexContentExtension)content).getParticle(),metainfHolder);
>
> -                    }else if (content instanceof XmlSchemaComplexContentRestriction){
>
> -                        //handle complex restriction
>
> -                    }
>
> -                    //handle the other types here
>
> -                }
>
> -
>
> -
>
> -            }
>
> -            //set the ordered flag in the metainf holder
>
> -            metainfHolder.setOrdered(true);
>
> +            process(items, metainfHolder,true);
>
>          }else if (particle instanceof XmlSchemaAll){
>
> -            //handle the all !
>
> +            XmlSchemaObjectCollection items = ((XmlSchemaAll)particle).getItems();
>
> +            process(items, metainfHolder,false);
>
>
>
>          }else if (particle instanceof XmlSchemaChoice){
>
>              //handle the choice!
>
>          }
>
>      }
>
>
>
> +    private void process(XmlSchemaObjectCollection items,
>
> +                         BeanWriterMetaInfoHolder metainfHolder,
>
> +                         boolean order) throws SchemaCompilationException {
>
> +        int count = items.getCount();
>
> +        List processedElements = new ArrayList();
>
> +
>
> +        for (int i = 0; i < count; i++) {
>
> +            XmlSchemaObject item = items.getItem(i);
>
> +            if (item instanceof XmlSchemaElement){
>
> +                //recursively process the element
>
> +                XmlSchemaElement xsElt = (XmlSchemaElement) item;
>
> +                processElement(xsElt);
>
> +                processedElements.add(xsElt);
>
> +            }else if (item instanceof XmlSchemaComplexContent){
>
> +                // process the extension
>
> +                XmlSchemaContent content = ((XmlSchemaComplexContent)item).getContent();
>
> +                if (content instanceof XmlSchemaComplexContentExtension){
>
> +                    // handle the complex extension
>
> +                }else if (content instanceof XmlSchemaComplexContentRestriction){
>
> +                    //handle complex restriction
>
> +                }
>
> +                //handle the other types here
>
> +            }
>
> +
>
> +
>
> +        }
>
> +
>
> +        // loop through the processed items and add them to the matainf object
>
> +        int processedCount = processedElements.size();
>
> +        for (int i = 0; i < processedCount; i++) {
>
> +            XmlSchemaElement elt = (XmlSchemaElement)processedElements.get(i);
>
> +            String clazzName = (String)processedElementmap.get(elt.getQName());
>
> +            metainfHolder.addElementInfo(elt.getQName(),
>
> +                    elt.getSchemaTypeName()
>
> +                    ,clazzName);
>
> +
>
> +        }
>
> +        //set the ordered flag in the metainf holder
>
> +        metainfHolder.setOrdered(order);
>
> +    }
>
> +
>
>      /**
>
>       * Handle the simple content
>
>       * @param simpleType
>
>       */
>
>      private void processSimpleSchemaType(XmlSchemaSimpleType simpleType){
>
> -        //nothing to here yet
>
> +        //nothing to here yet. just populate the processed type map with this
>
> +        //the class Name would be from the base type map!
>
> +        QName qName = simpleType.getQName();
>
> +        processedTypemap.put(qName,baseSchemaTypeMap.get(qName));
>
>      }
>
>
>
>
>
>
> Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/TypeMap.java
> URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/TypeMap.java?rev=312869&r1=312868&r2=312869&view=diff
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/TypeMap.java (original)
> +++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/TypeMap.java Tue Oct 11 05:54:13 2005
> @@ -29,31 +29,31 @@
>
>
>      static{
>
>  // If SOAP 1.1 over the wire, map wrapper classes to XSD primitives.
>
> -        addTypemapping(SchemaConstants.XSD_STRING, java.lang.String.class);
>
> -        addTypemapping(SchemaConstants.XSD_BOOLEAN, java.lang.Boolean.class);
>
> -        addTypemapping(SchemaConstants.XSD_DOUBLE, java.lang.Double.class);
>
> -        addTypemapping(SchemaConstants.XSD_FLOAT, java.lang.Float.class);
>
> -        addTypemapping(SchemaConstants.XSD_INT, java.lang.Integer.class);
>
> -        addTypemapping(SchemaConstants.XSD_INTEGER, java.math.BigInteger.class
>
> +        addTypemapping(SchemaConstants.XSD_STRING, java.lang.String.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_BOOLEAN, java.lang.Boolean.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_DOUBLE, java.lang.Double.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_FLOAT, java.lang.Float.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_INT, java.lang.Integer.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_INTEGER, java.math.BigInteger.class.getName()
>
>          );
>
> -        addTypemapping(SchemaConstants.XSD_DECIMAL, java.math.BigDecimal.class
>
> +        addTypemapping(SchemaConstants.XSD_DECIMAL, java.math.BigDecimal.class.getName()
>
>          );
>
> -        addTypemapping(SchemaConstants.XSD_LONG, java.lang.Long.class);
>
> -        addTypemapping(SchemaConstants.XSD_SHORT, java.lang.Short.class);
>
> -        addTypemapping(SchemaConstants.XSD_BYTE, java.lang.Byte.class);
>
> +        addTypemapping(SchemaConstants.XSD_LONG, java.lang.Long.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_SHORT, java.lang.Short.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_BYTE, java.lang.Byte.class.getName());
>
>
>
>          // The XSD Primitives are mapped to java primitives.
>
> -        addTypemapping(SchemaConstants.XSD_BOOLEAN, boolean.class);
>
> -        addTypemapping(SchemaConstants.XSD_DOUBLE, double.class);
>
> -        addTypemapping(SchemaConstants.XSD_FLOAT, float.class);
>
> -        addTypemapping(SchemaConstants.XSD_INT, int.class);
>
> -        addTypemapping(SchemaConstants.XSD_LONG, long.class);
>
> -        addTypemapping(SchemaConstants.XSD_SHORT, short.class);
>
> -        addTypemapping(SchemaConstants.XSD_BYTE, byte.class);
>
> +        addTypemapping(SchemaConstants.XSD_BOOLEAN, boolean.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_DOUBLE, double.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_FLOAT, float.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_INT, int.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_LONG, long.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_SHORT, short.class.getName());
>
> +        addTypemapping(SchemaConstants.XSD_BYTE, byte.class.getName());
>
>
>
>      }
>
> -    private static void addTypemapping(QName name,Class clazz) {
>
> -        typeMap.put( name,clazz);
>
> +    private static void addTypemapping(QName name,String str) {
>
> +        typeMap.put( name,str);
>
>      }
>
>
>
>
>
>
> Added: webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple_element.xsd
> URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple_element.xsd?rev=312869&view=auto
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple_element.xsd (added)
> +++ webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple_element.xsd Tue Oct 11 05:54:13 2005
> @@ -0,0 +1,18 @@
> +<schema targetNamespace="http://soapinterop.org/xsd"
>
> +        xmlns="http://www.w3.org/2001/XMLSchema"
>
> +        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>
> +        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
> +        xmlns:xsd1="http://soapinterop.org/xsd"
>
> +        elementFormDefault="qualified">
>
> +    <complexType name="SOAPStruct">
>
> +        <all>
>
> +            <element name="varFloat" type="xsd:float"/>
>
> +            <element name="varInt" type="xsd:int"/>
>
> +            <element name="varString" type="xsd:string"/>
>
> +        </all>
>
> +    </complexType>
>
> +    <element name="echoStringParam" type="xsd:string"/>
>
> +    <element name="echoStringReturn" type="xsd:string"/>
>
> +    <element name="echoStructParam" type="xsd1:SOAPStruct"/>
>
> +    <element name="echoStructReturn" type="xsd1:SOAPStruct"/>
>
> +</schema>
> \ No newline at end of file
>
> Added: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleElementTest.java
> URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleElementTest.java?rev=312869&view=auto
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleElementTest.java (added)
> +++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleElementTest.java Tue Oct 11 05:54:13 2005
> @@ -0,0 +1,23 @@
> +package org.apache.axis2.databinding.schema;
>
> +/*
>
> + * Copyright 2004,2005 The Apache Software Foundation.
>
> + *
>
> + * Licensed under the Apache License, Version 2.0 (the "License");
>
> + * you may not use this file except in compliance with the License.
>
> + * You may obtain a copy of the License at
>
> + *
>
> + *      http://www.apache.org/licenses/LICENSE-2.0
>
> + *
>
> + * Unless required by applicable law or agreed to in writing, software
>
> + * distributed under the License is distributed on an "AS IS" BASIS,
>
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>
> + * See the License for the specific language governing permissions and
>
> + * limitations under the License.
>
> + */
>
> +
>
> +public class SimpleElementTest extends AbstractSchemaCompilerTester {
>
> +    protected void setUp() throws Exception {
>
> +        this.fileName = "test-resources/xsd/simple_element.xsd";
>
> +        super.setUp();
>
> +    }
>
> +}
>
>
>
>


--
Davanum Srinivas : http://wso2.com/blogs/

Re: Objective for Simple Schema Compiler [Re: svn commit: r312869 - in /webservices/axis2/trunk/java/modules/codegen: src/org/apache/axis2/databinding/schema/ test-resources/xsd/ test/org/apache/axis2/databinding/schema/]

Posted by Sanjiva Weerawarana <sa...@opensource.lk>.
On Tue, 2005-10-11 at 08:58 -0400, Davanum Srinivas wrote:
> Ajith,
> 
> In my mind, we had to have enough support for at least the
> soapbuilders interop tests using our databinding....what do you think?

Do they use schema extensions? If so that's a dangerous slippery
slope .. how much of XSD do we want to do in our "simple data binding"?
If we go too far we've done something like JAXB on our own and that
precisely was not the objective of the simple data binding task.

Sanjiva.