You are viewing a plain text version of this content. The canonical link for it is here.
Posted to woden-dev@ws.apache.org by jk...@apache.org on 2007/01/26 19:03:10 UTC

svn commit: r500291 - in /incubator/woden/trunk/java: src/org/apache/woden/internal/ src/org/apache/woden/internal/schema/ src/org/apache/woden/schema/ test/org/apache/woden/schema/

Author: jkaputin
Date: Fri Jan 26 10:03:10 2007
New Revision: 500291

URL: http://svn.apache.org/viewvc?view=rev&rev=500291
Log:
WODEN-126 Added methods to Schema API to make the
underlying XML Schema infoset accessible. Added
junit tests for Schema.

Added:
    incubator/woden/trunk/java/test/org/apache/woden/schema/
    incubator/woden/trunk/java/test/org/apache/woden/schema/SchemaTest.java
Modified:
    incubator/woden/trunk/java/src/org/apache/woden/internal/DOMWSDLReader.java
    incubator/woden/trunk/java/src/org/apache/woden/internal/schema/SchemaImpl.java
    incubator/woden/trunk/java/src/org/apache/woden/schema/Schema.java

Modified: incubator/woden/trunk/java/src/org/apache/woden/internal/DOMWSDLReader.java
URL: http://svn.apache.org/viewvc/incubator/woden/trunk/java/src/org/apache/woden/internal/DOMWSDLReader.java?view=diff&rev=500291&r1=500290&r2=500291
==============================================================================
--- incubator/woden/trunk/java/src/org/apache/woden/internal/DOMWSDLReader.java (original)
+++ incubator/woden/trunk/java/src/org/apache/woden/internal/DOMWSDLReader.java Fri Jan 26 10:03:10 2007
@@ -262,6 +262,7 @@
                                      throws WSDLException
     {
         InlinedSchemaImpl schema = new InlinedSchemaImpl();
+        schema.setXMLElement(schemaEl);
         
         schema.setId(schemaEl.getAttributeValue(Constants.ATTR_ID));
         
@@ -330,6 +331,7 @@
                                      throws WSDLException
     {
         ImportedSchemaImpl schema = new ImportedSchemaImpl();
+        schema.setXMLElement(importEl);
         
         String importNS = importEl.getAttributeValue(Constants.ATTR_NAMESPACE);
         if(importNS != null) {

Modified: incubator/woden/trunk/java/src/org/apache/woden/internal/schema/SchemaImpl.java
URL: http://svn.apache.org/viewvc/incubator/woden/trunk/java/src/org/apache/woden/internal/schema/SchemaImpl.java?view=diff&rev=500291&r1=500290&r2=500291
==============================================================================
--- incubator/woden/trunk/java/src/org/apache/woden/internal/schema/SchemaImpl.java (original)
+++ incubator/woden/trunk/java/src/org/apache/woden/internal/schema/SchemaImpl.java Fri Jan 26 10:03:10 2007
@@ -18,6 +18,7 @@
 
 import java.net.URI;
 
+import org.apache.woden.XMLElement;
 import org.apache.woden.schema.Schema;
 import org.apache.ws.commons.schema.XmlSchema;
 
@@ -31,6 +32,7 @@
     private URI fNamespace = null;
     private XmlSchema fSchemaDefinition = null;
     private boolean fIsReferenceable = true;
+    private XMLElement fXMLElement;
 
     /* (non-Javadoc)
      * @see org.apache.woden.wsdl20.schema.Schema#setNamespace(java.net.URI)
@@ -60,6 +62,20 @@
      */
     public XmlSchema getSchemaDefinition() {
         return fSchemaDefinition;
+    }
+    
+    /* (non-Javadoc)
+     * @see org.apache.woden.schema.Schema#getXMLElement()
+     */
+    public XMLElement getXMLElement() {
+        return fXMLElement;
+    }
+    
+    /* (non-Javadoc)
+     * @see org.apache.woden.schema.Schema#setXMLElement(org.apache.woden.XMLElement)
+     */
+    public void setXMLElement(XMLElement xsdElement) {
+        fXMLElement = xsdElement;
     }
 
     /* ************************************************************

Modified: incubator/woden/trunk/java/src/org/apache/woden/schema/Schema.java
URL: http://svn.apache.org/viewvc/incubator/woden/trunk/java/src/org/apache/woden/schema/Schema.java?view=diff&rev=500291&r1=500290&r2=500291
==============================================================================
--- incubator/woden/trunk/java/src/org/apache/woden/schema/Schema.java (original)
+++ incubator/woden/trunk/java/src/org/apache/woden/schema/Schema.java Fri Jan 26 10:03:10 2007
@@ -19,6 +19,7 @@
 
 import java.net.URI;
 
+import org.apache.woden.XMLElement;
 import org.apache.ws.commons.schema.XmlSchema;
 
 /**
@@ -57,4 +58,14 @@
     public XmlSchema getSchemaDefinition();
     public void setSchemaDefinition(XmlSchema schemaDef);
     
+    /**
+     * Returns the XMLElement object representing the <code>xs:schema</code> or <code>xs:import</code>
+     * element within the <code>wsdl:types</code> element. This provides an 'wrapper' to the 
+     * underlying XML Schema infoset for applications that need schema processing alternatives to
+     * Apache WS Commons XmlSchema.
+     * 
+     * @return the XMLElement
+     */
+    public XMLElement getXMLElement();
+    public void setXMLElement(XMLElement xsdElement);
 }

Added: incubator/woden/trunk/java/test/org/apache/woden/schema/SchemaTest.java
URL: http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/schema/SchemaTest.java?view=auto&rev=500291
==============================================================================
--- incubator/woden/trunk/java/test/org/apache/woden/schema/SchemaTest.java (added)
+++ incubator/woden/trunk/java/test/org/apache/woden/schema/SchemaTest.java Fri Jan 26 10:03:10 2007
@@ -0,0 +1,69 @@
+package org.apache.woden.schema;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.net.URI;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.apache.woden.XMLElement;
+import org.apache.woden.internal.DOMXMLElement;
+import org.apache.woden.internal.ErrorReporterImpl;
+import org.apache.woden.internal.schema.ImportedSchemaImpl;
+import org.apache.woden.internal.schema.InlinedSchemaImpl;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class SchemaTest extends TestCase {
+
+    public static Test suite()
+    {
+       return new TestSuite(SchemaTest.class);
+    }
+       
+    public void testSetGetNamespace() {
+        Schema schema = new InlinedSchemaImpl();
+        URI expectedNS = URI.create("http://example.com");
+        schema.setNamespace(expectedNS);
+        URI actualNS = schema.getNamespace();
+        assertEquals("Unexpected namespace URI", expectedNS, actualNS);
+    }
+
+    public void testSetGetSchemaDefinition() throws Exception {
+        String schemaString = 
+            "<schema targetNamespace=\"urn:abc\" />";
+        byte[] schemaBytes = schemaString.getBytes();
+        InputStream iStream = new ByteArrayInputStream(schemaBytes);
+
+        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+        factory.setNamespaceAware(true);
+        DocumentBuilder builder = factory.newDocumentBuilder();
+        Document doc = builder.parse(iStream);
+        Element elem = doc.getDocumentElement();
+        
+        XmlSchemaCollection xsc = new XmlSchemaCollection();
+        XmlSchema expectedSchemaDef = xsc.read(elem);
+        
+        Schema schema = new InlinedSchemaImpl();
+        schema.setSchemaDefinition(expectedSchemaDef);
+        XmlSchema actualSchemaDef = schema.getSchemaDefinition();
+        assertEquals("Unexpected XmlSchema", expectedSchemaDef, actualSchemaDef);
+    }
+
+    public void testSetGetXMLElement() throws Exception {
+        XMLElement expectedEl = null;
+        expectedEl = new DOMXMLElement(new ErrorReporterImpl());
+        Schema schema = new ImportedSchemaImpl();
+        schema.setXMLElement(expectedEl);
+        XMLElement actualEl = schema.getXMLElement();
+        assertEquals("Unexpected XMLElement", expectedEl, actualEl);
+    }
+
+}



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