Author: jkaputin
Date: Thu Jul 21 07:45:03 2005
New Revision: 220098

URL: http://svn.apache.org/viewcvs?rev=220098&view=rev
Log:
Types work in progress

Added:
    
incubator/woden/java/src/org/apache/woden/internal/wsdl20/DocumentationImpl.java
    
incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/SchemaConstants.java
    
incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/SchemaImpl.java
Modified:
    incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java
    
incubator/woden/java/src/org/apache/woden/internal/wsdl20/DescriptionImpl.java
    incubator/woden/java/src/org/apache/woden/internal/wsdl20/TypesImpl.java
    incubator/woden/java/src/org/apache/woden/wsdl20/extensions/Schema.java
    incubator/woden/java/src/org/apache/woden/wsdl20/xml/DescriptionElement.java
    incubator/woden/java/src/org/apache/woden/wsdl20/xml/TypesElement.java

Modified: incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java?rev=220098&r1=220097&r2=220098&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java 
(original)
+++ incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java Thu 
Jul 21 07:45:03 2005
@@ -17,6 +17,8 @@
 import org.apache.woden.internal.util.dom.DOMUtils;

 import org.apache.woden.internal.util.dom.QNameUtils;

 import org.apache.woden.internal.wsdl20.Constants;

+import org.apache.woden.internal.wsdl20.extensions.*;

+import org.apache.woden.wsdl20.extensions.*;

 import org.apache.woden.wsdl20.xml.*;

 import org.w3c.dom.Attr;

 import org.w3c.dom.Document;

@@ -134,8 +136,12 @@
         while (tempEl != null)

         {

             //TODO validate that the elements are in correct order

-            

-            if (QNameUtils.matches(Constants.Q_ELEM_TYPES, tempEl))

+

+            if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))

+            {

+                desc.setDocumentationElement(parseDocumentation(tempEl, desc));

+            }

+            else if (QNameUtils.matches(Constants.Q_ELEM_TYPES, tempEl))

             {

                 desc.setTypesElement(parseTypes(tempEl, desc));

             }

@@ -154,6 +160,14 @@
         return desc;

     }

 

+    private DocumentationElement parseDocumentation(Element docEl, 

+                                                    DescriptionElement desc) 

+    {

+        DocumentationElement documentation = desc.createDocumentationElement();

+        documentation.setContentModel(docEl);

+        return documentation;

+    }

+

     private ImportElement parseImport(Element importEl,

                                       DescriptionElement desc,

                                       Map importedDescs) 

@@ -170,14 +184,90 @@
         //TODO complete this method

         return null;

     }

+    

+    /*

+     * TODO Initial schema parsing is specific to XML Schema. 

+     * Need generic support for other type systems.

+     * Consider extension architecture with serializer/deserializer.

+     */

+    private Schema parseSchemaInline(Element schemaEl,

+                                     TypesElement desc) 

+                                     throws WSDLException

+    {

+        Schema schema = new SchemaImpl();

+        

+        schema.setTargetNamespace(

+            DOMUtils.getAttribute(schemaEl, Constants.ATTR_TARGET_NAMESPACE));

+        

+        schema.setContentModel(schemaEl);

+        

+        return schema;

+    }

 

+    /*

+     * TODO Initial schema parsing is specific to XML Schema. 

+     * Need generic support for other type systems.

+     * Consider extension architecture with serializer/deserializer.

+     */

+    private SchemaImport parseSchemaImport(Element schemaEl,

+                                           TypesElement types) 

+                                           throws WSDLException

+    {

+        SchemaImport schemaImport = new SchemaImportImpl();

+        

+        schemaImport.setNamespace(

+            DOMUtils.getAttribute(schemaEl, Constants.ATTR_NAMESPACE));

+        

+        schemaImport.setSchemaLocation(

+            DOMUtils.getAttribute(schemaEl, 
SchemaConstants.ATTR_SCHEMA_LOCATION));

+        

+        return schemaImport;

+    }

+

+    /*

+     * TODO Initial schema parsing is specific to XML Schema. 

+     * Need generic support for other type systems.

+     * Consider extension architecture with serializer/deserializer.

+     */

     private TypesElement parseTypes(Element typesEl,

                                     DescriptionElement desc) 

                                     throws WSDLException

     {

         TypesElement types = desc.createTypesElement();

         

-        return null;

+        

+        

+

+        Element tempEl = DOMUtils.getFirstChildElement(typesEl);

+        

+

+        while (tempEl != null)

+        {

+            QName tempElType = QNameUtils.newQName(tempEl);

+            

+            //TODO validate element order? <documentation> must be first.

+            

+            if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))

+            {

+                types.setDocumentationElement(parseDocumentation(tempEl, 
desc));

+            }

+            else if 
(SchemaConstants.XSD_IMPORT_QNAME_LIST.contains(tempElType))

+            {

+                types.addSchemaImport(parseSchemaImport(tempEl, types));

+            }

+            else if 
(SchemaConstants.XSD_SCHEMA_QNAME_LIST.contains(tempElType))

+            {

+                types.addSchema(parseSchemaInline(tempEl, types));

+            }

+            else

+            {

+                //TODO extensions for non-XML and non-XMLSchema type systems

+            }

+            

+            tempEl = DOMUtils.getNextSiblingElement(tempEl);

+        }

+        

+        return types;

     }

 

     /**


Modified: 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/DescriptionImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/DescriptionImpl.java?rev=220098&r1=220097&r2=220098&view=diff
==============================================================================
--- 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/DescriptionImpl.java 
(original)
+++ 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/DescriptionImpl.java 
Thu Jul 21 07:45:03 2005
@@ -20,24 +20,30 @@
     private DocumentationElement fDocumentationElement;

     private String fTargetNamespace;

     private Map fNamespaces;

+    private TypesElement fTypesElement;

     

-    public void setDocumentBaseURI(String documentBaseURI) {

+    public void setDocumentBaseURI(String documentBaseURI) 

+    {

         this.fDocumentBaseURI = documentBaseURI;

     }

     

-    public String getDocumentBaseURI() {

+    public String getDocumentBaseURI() 

+    {

         return this.fDocumentBaseURI;

     }

     

-    public void setTargetNamespace(String namespace) {

+    public void setTargetNamespace(String namespace) 

+    {

         this.fTargetNamespace = namespace;    

     }

     

-    public String getTargetNamespace() {

+    public String getTargetNamespace() 

+    {

         return null;    

     }

 

-    public void addNamespace(String prefix, String namespace) {

+    public void addNamespace(String prefix, String namespace) 

+    {

         //ignores duplicate prefixes in the WSDL - earlier namespace gets 
overwritten.

         

         String pfx = (prefix != null) ? prefix : "";

@@ -57,21 +63,29 @@
         fNamespaces.remove(pfx);

     }

     

-    public String getNamespace(String prefix) {

-        

+    public String getNamespace(String prefix) 

+    {

         String pfx = (prefix != null) ? prefix : "";

         return (String) fNamespaces.get(pfx);

     }

     

-    public Map getNamespaces() {

+    public Map getNamespaces() 

+    {

         return fNamespaces;

     }

     

-    public void setDocumentationElement(DocumentationElement docEl) {

+    public DocumentationElement createDocumentationElement()

+    {

+        return new DocumentationImpl();

+    }

+    

+    public void setDocumentationElement(DocumentationElement docEl) 

+    {

         this.fDocumentationElement = docEl;

     }

     

-    public DocumentationElement getDocumentationElement() {

+    public DocumentationElement getDocumentationElement() 

+    {

         return this.fDocumentationElement;

     }

     

@@ -102,7 +116,7 @@
     

     public void setTypesElement(TypesElement typesEl)

     {

-        

+        fTypesElement = typesEl;

     }

 

     public TypesElement getTypesElement() {


Added: 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/DocumentationImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/DocumentationImpl.java?rev=220098&view=auto
==============================================================================
--- 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/DocumentationImpl.java
 (added)
+++ 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/DocumentationImpl.java
 Thu Jul 21 07:45:03 2005
@@ -0,0 +1,37 @@
+/*

+ * TODO Apache boiler plate

+ */

+package org.apache.woden.internal.wsdl20;

+

+import org.apache.woden.wsdl20.xml.DocumentationElement;

+

+/**

+ * This class implements support for parsing, creating and manipulating a

+ * WSDL 2.0 &lt;wsdl:documentation&gt; XML element.

+ * The &lt;wsdl:documentation&gt; element may contain mixed content, but this 

+ * class does not attempt to understand that content. Instead it just wraps

+ * the &lt;wsdl:documentation&gt; element's content model as a 
java.lang.Object. 

+ * 

+ * @author [EMAIL PROTECTED]

+ */

+public class DocumentationImpl implements DocumentationElement {

+

+    private Object fContentModel;

+    

+    /* (non-Javadoc)

+     * @see 
org.apache.woden.wsdl20.xml.DocumentationElement#setContentModel(java.lang.Object)

+     */

+    public void setContentModel(Object docEl) 

+    {

+        this.fContentModel = docEl;

+    }

+

+    /* (non-Javadoc)

+     * @see org.apache.woden.wsdl20.xml.DocumentationElement#getContentModel()

+     */

+    public Object getContentModel() 

+    {

+        return this.fContentModel;

+    }

+

+}


Modified: 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/TypesImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/TypesImpl.java?rev=220098&r1=220097&r2=220098&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/wsdl20/TypesImpl.java 
(original)
+++ incubator/woden/java/src/org/apache/woden/internal/wsdl20/TypesImpl.java 
Thu Jul 21 07:45:03 2005
@@ -3,9 +3,7 @@
  */

 package org.apache.woden.internal.wsdl20;

 

-import java.util.List;

 import java.util.Map;

-import java.util.Vector;

 import org.apache.woden.wsdl20.extensions.Schema;

 import org.apache.woden.wsdl20.extensions.SchemaImport;

 import org.apache.woden.wsdl20.xml.DocumentationElement;

@@ -30,6 +28,8 @@
     private DocumentationElement fDocumentation;

     private Map fSchemaImports;

     private Map fSchemas;

+    

+    //TODO extension attributes and elements

 

     public void setDocumentationElement(DocumentationElement docEl)

     {

@@ -45,41 +45,38 @@
      * Schema imports <xs:import>

      * 

      * We store a SchemaImport for each <xs:import> element in a Map

-     * with a key of namespace and a value of SchemaImport array.

-     * 

-     * TODO Decide on List impl versus Array impl.

+     * of SchemaImport[] keyed by namespace.

      */

     

     public void addSchemaImport(SchemaImport schemaImport)

     {

+        SchemaImport[] oldArray, newArray;

         String namespace = schemaImport.getNamespace();

-        SchemaImport[] schemaImportArray = 

-            (SchemaImport[]) this.fSchemaImports.get(namespace);

+        Object schemaImports = this.fSchemaImports.get(namespace);

         

-        if(schemaImportArray == null)

+        if(schemaImports == null)

         {

-            schemaImportArray = new SchemaImport[] {schemaImport};

-            this.fSchemaImports.put(namespace, schemaImportArray);

+            newArray = new SchemaImport[] {schemaImport};

         }

         else

         {

-            int len = schemaImportArray.length;

-            SchemaImport[] newArray = new SchemaImport[len+1];

+            oldArray = (SchemaImport[]) schemaImports;

+            int len = oldArray.length;

+            newArray = new SchemaImport[len+1];

             

             for(int i=0; i < len; i++)

             {

-               newArray[i] = schemaImportArray[i]; 

+               newArray[i] = oldArray[i]; 

             }

-            newArray[len+1] = schemaImport;

-            

-            this.fSchemaImports.put(namespace, newArray);

+            newArray[len] = schemaImport;

         }

         

+        this.fSchemaImports.put(namespace, newArray);

         

     }

     

     //TODO what if schemaLoc is null and there is more than one import for 
this namespace?

-    //Delete all or raise an error?

+

     public void removeSchemaImport(String namespace, String schemaLoc)

     {

         //TODO tbc

@@ -105,28 +102,39 @@
      * Inline schemas <xs:schema>

      * 

      * We store a Schema for each <xs:schema> element in a Map

-     * with a key of namespace and a value of Schema array.

-     * 

-     * TODO Decide on List impl versus Array impl.

+     * of Schema[] keyed by targetNamespace.

      */

     

     public void addSchema(Schema schema)

     {

-        String namespace = schema.getTargetNamespace();

-        List schemaList = (List) this.fSchemas.get(namespace);

+        Schema[] oldArray, newArray;

+        String targetNamespace = schema.getTargetNamespace();

+        Object schemas = this.fSchemas.get(targetNamespace);

         

-        if(schemaList == null)

+        if(schemas == null)

         {

-            schemaList = new Vector();

-            this.fSchemas.put(namespace, schemaList);

+            newArray = new Schema[] {schema};

+        }

+        else

+        {

+            oldArray = (Schema[]) schemas;

+            int len = oldArray.length;

+            newArray = new Schema[len+1];

+            

+            for(int i=0; i < len; i++)

+            {

+               newArray[i] = oldArray[i]; 

+            }

+            newArray[len] = schema;

         }

         

-        schemaList.add(schema);

+        this.fSchemas.put(targetNamespace, newArray);

 

     }

     

-    //TODO what if schemaLoc is null and there is more than one import for 
this namespace?

-    //Delete all or raise an error?

+    

+    //TODO what if id is null and there is more than one inline schema for 
this namespace?

+

     public void removeSchema(String namespace, String id)

     {

         //TODO tbc


Added: 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/SchemaConstants.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/SchemaConstants.java?rev=220098&view=auto
==============================================================================
--- 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/SchemaConstants.java
 (added)
+++ 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/SchemaConstants.java
 Thu Jul 21 07:45:03 2005
@@ -0,0 +1,79 @@
+/*

+ * TODO Apache boiler plate

+ */

+

+package org.apache.woden.internal.wsdl20.extensions;

+

+import java.util.Arrays;

+import java.util.List;

+import javax.xml.namespace.QName;

+

+/**

+ * Constants for XML Schema elements, attributes and URIs.

+ * 

+ * @author [EMAIL PROTECTED]

+ */

+public class SchemaConstants {

+

+    //Schema attribute names

+    public static final String ATTR_ID = "id";

+    public static final String ATTR_SCHEMA_LOCATION = "schemaLocation";

+    

+    //Schema element names

+    public static final String ELEM_SCHEMA = "schema";

+    public static final String ELEM_SCHEMA_IMPORT = "import";

+    public static final String ELEM_SCHEMA_INCLUDE = "include";

+    public static final String ELEM_SCHEMA_REDEFINE = "redefine";

+

+    //Schema uri

+    public static final String NS_URI_XSD_1999 =

+        "http://www.w3.org/1999/XMLSchema";;

+    public static final String NS_URI_XSD_2000 =

+        "http://www.w3.org/2000/10/XMLSchema";;

+    public static final String NS_URI_XSD_2001 =

+        "http://www.w3.org/2001/XMLSchema";;

+    

+    //<xs:schema> qnames

+    public static final QName Q_ELEM_XSD_1999 =

+        new QName(NS_URI_XSD_1999, ELEM_SCHEMA);

+    public static final QName Q_ELEM_XSD_2000 =

+        new QName(NS_URI_XSD_2000, ELEM_SCHEMA);

+    public static final QName Q_ELEM_XSD_2001 =

+        new QName(NS_URI_XSD_2001, ELEM_SCHEMA);

+    public static final List XSD_SCHEMA_QNAME_LIST = Arrays.asList(new QName[]

+        {Q_ELEM_XSD_1999, Q_ELEM_XSD_2000, Q_ELEM_XSD_2001});

+    

+    //<xs:import> qnames

+    public static final QName Q_ELEM_IMPORT_XSD_1999 = new QName(

+        NS_URI_XSD_1999, ELEM_SCHEMA_IMPORT);

+    public static final QName Q_ELEM_IMPORT_XSD_2000 = new QName(

+        NS_URI_XSD_2000, ELEM_SCHEMA_IMPORT);

+    public static final QName Q_ELEM_IMPORT_XSD_2001 = new QName(

+        NS_URI_XSD_2001, ELEM_SCHEMA_IMPORT);

+    public static final List XSD_IMPORT_QNAME_LIST = Arrays.asList(new QName[] 

+        { Q_ELEM_IMPORT_XSD_1999, Q_ELEM_IMPORT_XSD_2000, 
Q_ELEM_IMPORT_XSD_2001 });

+

+    //TODO remove <include> if not used in Woden

+    //<xs:include> qnames

+    public static final QName Q_ELEM_INCLUDE_XSD_1999 = new QName(

+        NS_URI_XSD_1999, ELEM_SCHEMA_INCLUDE);

+    public static final QName Q_ELEM_INCLUDE_XSD_2000 = new QName(

+        NS_URI_XSD_2000, ELEM_SCHEMA_INCLUDE);

+    public static final QName Q_ELEM_INCLUDE_XSD_2001 = new QName(

+        NS_URI_XSD_2001, ELEM_SCHEMA_INCLUDE);

+    public static final List XSD_INCLUDE_QNAME_LIST = Arrays.asList(new QName[]

+        { Q_ELEM_INCLUDE_XSD_1999, Q_ELEM_INCLUDE_XSD_2000, 
Q_ELEM_INCLUDE_XSD_2001 });

+

+    //TODO remove <redefine> if not used in Woden

+    //<xs:redefine> qnames

+    public static final QName Q_ELEM_REDEFINE_XSD_1999 = new QName(

+        NS_URI_XSD_1999, ELEM_SCHEMA_REDEFINE);

+    public static final QName Q_ELEM_REDEFINE_XSD_2000 = new QName(

+        NS_URI_XSD_2000, ELEM_SCHEMA_REDEFINE);

+    public static final QName Q_ELEM_REDEFINE_XSD_2001 = new QName(

+           NS_URI_XSD_2001, ELEM_SCHEMA_REDEFINE);

+    public static final List XSD_REDEFINE_QNAME_LIST = Arrays.asList(new 
QName[]

+           { Q_ELEM_REDEFINE_XSD_1999, Q_ELEM_REDEFINE_XSD_2000, 
Q_ELEM_REDEFINE_XSD_2001 });

+

+

+}


Added: 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/SchemaImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/SchemaImpl.java?rev=220098&view=auto
==============================================================================
--- 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/SchemaImpl.java
 (added)
+++ 
incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/SchemaImpl.java
 Thu Jul 21 07:45:03 2005
@@ -0,0 +1,44 @@
+/*

+ * TODO Apache boiler plate

+ */

+package org.apache.woden.internal.wsdl20.extensions;

+

+import org.apache.woden.wsdl20.extensions.Schema;

+

+/**

+ * A wrapper for a <xs:schema> element.

+ * 

+ * @author [EMAIL PROTECTED]

+ */

+public class SchemaImpl implements Schema {

+    

+    private String fTargetNamespace;

+    private Object fContentModel;

+

+    /* (non-Javadoc)

+     * @see 
org.apache.woden.wsdl20.extensions.Schema#setTargetNamespace(java.lang.String)

+     */

+    public void setTargetNamespace(String namespace) 

+    {

+        fTargetNamespace = namespace;

+    }

+

+    /* (non-Javadoc)

+     * @see org.apache.woden.wsdl20.extensions.Schema#getTargetNamespace()

+     */

+    public String getTargetNamespace() 

+    {

+        return fTargetNamespace;

+    }

+    

+    public void setContentModel(Object schemaEl)

+    {

+        fContentModel = schemaEl;

+    }

+    

+    public Object getContentModel()

+    {

+        return fContentModel;

+    }

+

+}


Modified: 
incubator/woden/java/src/org/apache/woden/wsdl20/extensions/Schema.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/wsdl20/extensions/Schema.java?rev=220098&r1=220097&r2=220098&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/wsdl20/extensions/Schema.java 
(original)
+++ incubator/woden/java/src/org/apache/woden/wsdl20/extensions/Schema.java Thu 
Jul 21 07:45:03 2005
@@ -5,8 +5,9 @@
 

 /**

  * This interface represents the XML element information item for

- * a &lt;xs:schema&gt; element. It declares the behaviour required to 

- * support parsing, creating and manipulating a &lt;xs:schema&gt; element.

+ * a &lt;xs:schema&gt; element. It exposes the targetNamespace 

+ * attribute, but just wraps the remaining schema content as a 

+ * java.lang.Object.

  * 

  * @author [EMAIL PROTECTED]

  */

@@ -15,4 +16,9 @@
     public void setTargetNamespace(String namespace);

     

     public String getTargetNamespace();

+    

+    public void setContentModel(Object schemaEl);

+    

+    public Object getContentModel();

+    

 }


Modified: 
incubator/woden/java/src/org/apache/woden/wsdl20/xml/DescriptionElement.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/wsdl20/xml/DescriptionElement.java?rev=220098&r1=220097&r2=220098&view=diff
==============================================================================
--- 
incubator/woden/java/src/org/apache/woden/wsdl20/xml/DescriptionElement.java 
(original)
+++ 
incubator/woden/java/src/org/apache/woden/wsdl20/xml/DescriptionElement.java 
Thu Jul 21 07:45:03 2005
@@ -14,6 +14,11 @@
  */

 public interface DescriptionElement extends WSDL20Element 

 {

+

+    /*

+     * Attributes and namespaces

+     */

+    

     public void setDocumentBaseURI(String documentBaseURI);

     public String getDocumentBaseURI();

     

@@ -25,18 +30,30 @@
     public String getNamespace(String prefix);

     public Map getNamespaces();

     

+    /*

+     * Element factory methods

+     */

+    

+    public DocumentationElement createDocumentationElement();

+    public TypesElement createTypesElement();

+    

+    

+    /*

+     * Element accessor methods

+     * 

+     * TODO removeXXX, getXXX methods for the elements with an addXXX method

+     * 

+     */

+    

     public void setDocumentationElement(DocumentationElement docEl);

     public DocumentationElement getDocumentationElement();

     

-    //TODO removeXXX, getXXX methods for the elements with an addXXX method

-    

     public void addImportElement(ImportElement importEl);

     public ImportElement[] getImports();

     

     public void addIncludeElement(IncludeElement includeEl);

     public IncludeElement[] getIncludes();

     

-    public TypesElement createTypesElement();

     public void setTypesElement(TypesElement typesEl);

     public TypesElement getTypesElement();

     


Modified: incubator/woden/java/src/org/apache/woden/wsdl20/xml/TypesElement.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/wsdl20/xml/TypesElement.java?rev=220098&r1=220097&r2=220098&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/wsdl20/xml/TypesElement.java 
(original)
+++ incubator/woden/java/src/org/apache/woden/wsdl20/xml/TypesElement.java Thu 
Jul 21 07:45:03 2005
@@ -20,6 +20,9 @@
  * schema elements or types share the same names), so the id attribute 

  * will distinguish them.

  * 

+ * TODO Initial type system support is specific to XML Schema. 

+ *      Need generic support for other type systems.

+ * 

  * @author [EMAIL PROTECTED]

  */

 public interface TypesElement extends WSDL20Element {

@@ -29,22 +32,34 @@
     public DocumentationElement getDocumentationElement();

     

     /*

-     * Schema imports <xs:import>

-     * 

-     * We store a SchemaImport for each <xs:import> element in a Map

-     * with a key of namespace and a value of SchemaImport array.

+     * Schema imports &lt;xs:import&gt; are stored in a Map of SchemaImport[] 

+     * keyed by namespace. The schemaLocation attribute will distinguish

+     * schemas imported with the same namespace.

      */

-    

+

     public void addSchemaImport(SchemaImport schemaImport);

     

     //TODO what if schemaLoc is null and there is more than one import for 
this namespace?

     //Delete all or raise an error?

+    

+    /**

+     * Add a SchemaImport to the schemas imported within the &lt;types&gt; 
element.

+     */

     public void removeSchemaImport(String namespace, String schemaLoc);

 

+    /**

+     * @return the SchemaImport with the specified namespace and 
schemaLocation.

+     */

     public SchemaImport getSchemaImport(String namespace, String schemaLoc);

 

+    /**

+     * @return a map of SchemaImport[] keyed by namespace.

+     */

     public Map getSchemaImports();

 

+    /**

+     * Stores schema imports as map of SchemaImport[] keyed by namespace.

+     */

     public void setSchemaImports(Map imports);

     

     //TODO is there a use case to get or remove all imports for a given 
namespace?

@@ -52,23 +67,40 @@
     //public SchemaImport[] getSchemaImports(String namespace);

     //public void removeSchemaImports(String namespace);

 

+    

+    

     /*

-     * Inline schemas <xs:schema>

-     * 

-     * We store a Schema for each <xs:schema> element in a Map

-     * with a key of namespace and a value of Schema array.

+     * Inline schemas <xs:schema> are stored in a Map of Schema[] keyed

+     * by targetNamespace. The id attribute will distinguish multiple

+     * Schemas with the same targetNamespace.

      */

     

+    /**

+     * Add a Schema to the schemas defined inline within the &lt;types&gt; 
element.

+     */

     public void addSchema(Schema schema);

     

-    //TODO what if schemaLoc is null and there is more than one import for 
this namespace?

+    //TODO what if id is null and there is more than one inline schema for 
this namespace?

     //Delete all or raise an error?

-    public void removeSchema(String namespace, String id);

     

-    public Schema getSchema(String namespace, String id);

+    /**

+     * Delete the Schema with the specified targetNamespace and (optionally) 
id.

+     */

+    public void removeSchema(String targetNamespace, String id);

+    

+    /**

+     * @return the Schema with the specified targetNamespace and (optionally) 
id.

+     */

+    public Schema getSchema(String targetNamespace, String id);

     

+    /**

+     * @return a map of Schema[] keyed by targetNamespace.

+     */

     public Map getSchemas();

     

+    /**

+     * Stores schemas as map of Schema[] keyed by targetNamespace.

+     */

     public void setSchemas(Map schemas);

     

     //TODO is there a use case to get or remove all inline schemas for a given 
namespace?




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

Reply via email to