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/08/23 13:24:56 UTC

svn commit: r568937 [4/17] - in /incubator/woden/trunk/java/test: javax/xml/namespace/ org/apache/woden/ org/apache/woden/ant/ org/apache/woden/internal/ org/apache/woden/internal/wsdl20/validation/ org/apache/woden/resolver/ org/apache/woden/resolver/...

Propchange: incubator/woden/trunk/java/test/org/apache/woden/internal/wsdl20/validation/WSDLComponentValidatorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/woden/trunk/java/test/org/apache/woden/internal/wsdl20/validation/WSDLDocumentValidatorTest.java
URL: http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/internal/wsdl20/validation/WSDLDocumentValidatorTest.java?rev=568937&r1=568936&r2=568937&view=diff
==============================================================================
--- incubator/woden/trunk/java/test/org/apache/woden/internal/wsdl20/validation/WSDLDocumentValidatorTest.java (original)
+++ incubator/woden/trunk/java/test/org/apache/woden/internal/wsdl20/validation/WSDLDocumentValidatorTest.java Thu Aug 23 04:24:51 2007
@@ -1,1166 +1,1166 @@
-/**
+/**
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
  * The ASF licenses this file to You 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.
- */
-package org.apache.woden.internal.wsdl20.validation;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import javax.xml.namespace.QName;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.apache.woden.ErrorReporter;
-import org.apache.woden.WSDLException;
-import org.apache.woden.WSDLFactory;
-import org.apache.woden.internal.DOMWSDLFactory;
-import org.apache.woden.internal.ErrorReporterImpl;
-import org.apache.woden.internal.schema.ImportedSchemaImpl;
-import org.apache.woden.internal.schema.InlinedSchemaImpl;
-import org.apache.woden.internal.wsdl20.Constants;
-import org.apache.woden.internal.wsdl20.DescriptionImpl;
-import org.apache.woden.schema.ImportedSchema;
-import org.apache.woden.schema.InlinedSchema;
-import org.apache.woden.tests.TestErrorHandler;
-import org.apache.woden.wsdl20.xml.DescriptionElement;
-import org.apache.woden.wsdl20.xml.InterfaceElement;
-import org.apache.woden.wsdl20.xml.TypesElement;
-import org.apache.ws.commons.schema.XmlSchema;
-import org.apache.ws.commons.schema.XmlSchemaCollection;
-import org.apache.xerces.parsers.DOMParser;
-import org.apache.xerces.xni.parser.XMLInputSource;
-import org.w3c.dom.Document;
-
-/**
- * A test class to test the assertion tests in the WSDLDocumentValidator.
- */
-public class WSDLDocumentValidatorTest extends TestCase 
-{
-  private WSDLDocumentValidator val;
-  private ErrorReporter reporter;
-  private TestErrorHandler handler;
-  
-  /**
-   * Create a test suite from this test class.
-   * 
-   * @return A test suite from this test class.
-   */
-  public static Test suite()
-  {
-	return new TestSuite(WSDLDocumentValidatorTest.class);
-  }
-  
-  /* (non-Javadoc)
-   * @see junit.framework.TestCase#setUp()
-   */
-  protected void setUp() throws Exception 
-  {
-    val = new WSDLDocumentValidator();
-    handler = new TestErrorHandler();
-    reporter = new ErrorReporterImpl();
-    reporter.setErrorHandler(handler);
-  }
-
-  /* (non-Javadoc)
-   * @see junit.framework.TestCase#tearDown()
-   */
-  protected void tearDown() throws Exception 
-  {
-    val = null;
-    reporter = null;
-    handler = null;
-  }
-  
-  /**
-   * Test that the testAssertionDescription1006 method returns
-   * true if given a description element with an absolute IRI,
-   * false otherwise.
-   */
-  public void testTestAssertionDescription1006()
-  {
-	// Test that no error is reported with an absolute IRI.
-	handler.reset();
-	try
-	{
-	  DescriptionElement desc = new DOMWSDLFactory().newDescription();
-	  desc.setTargetNamespace(new URI("http://www.sample.org"));
-	  
-	  if(!val.testAssertionDescription1006(desc, reporter))
-	  {
-		fail("A message was reported for a description element with an absolute IRI.");
-	  }
-	}
-	catch(Exception e)
-	{
-	  fail("There was a problem while testing an absolute IRI.");
-	}
-	
-    // Test that error Description-1006 is reported for a relative IRI.
-	handler.reset();
-	try
-	{
-	  DescriptionElement desc = new DOMWSDLFactory().newDescription();
-	  desc.setTargetNamespace(new URI("//www.sample.org"));
-	  boolean isValid = val.testAssertionDescription1006(desc, reporter);
-	  if(isValid)
-	  {
-		fail("No message was reported for a description element with the relative IRI //www.sample.org.");
-	  }
-	  else if(handler.warnings.size() > 0)
-	  {
-		fail("A warning was reported for a description element with the relative IRI //www.sample.org.");
-	  }
-	  else if(handler.fatalErrors.size() > 0)
-	  {
-		fail("A fatal error was reported for a description element with the relative IRI //www.sample.org.");
-	  }
-	  else if(handler.errors.size() != 1)
-	  {
-		fail("More than one error was reported for a description element with the relative IRI //www.sample.org.");
-	  }
-	  else if(!handler.errors.containsKey("Description-1006"))
-	  {
-		fail("The error for Description-1006 was not reported for a description element with the relative IRI //www.sample.org.");
-	  }
-	}
-	catch(Exception e)
-	{
-	  fail("There was a problem while testing an absolute IRI.");
-	}
-	  
-  }
-  
-  /**
-   * Test assertion Schema-1070. An imported schema must contain the
-   * same target namespace as the import element.
-   */
-  public void testTestAssertionSchema1070()
-  {
-    // Test that no error is reported for an imported schema that has
-	// a null schema. This error should be caught elseware.
-	handler.reset();
-	try
-	{
-	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
-	  importedSchema.setNamespace(new URI("http://www.sample.org"));
-	
-	  if(!val.testAssertionSchema1070(importedSchema, reporter))
-	  {
-		fail("The testAssertionSchema1070 method returned false for a null schema.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-	// Test that no error is reported for an imported schema that has
-	// the same target namespace as the imported element.
-	handler.reset();
-	try
-	{
-	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
-	
-	  importedSchema.setNamespace(new URI("http://www.sample.org"));
-	
-	
-	  XmlSchema schema = new XmlSchema("http://www.sample.org", null);
-	  importedSchema.setSchemaDefinition(schema);
-	  if(!val.testAssertionSchema1070(importedSchema, reporter))
-	  {
-		fail("The testAssertionSchema1070 method returned false for a schema with the same target namespace as the import element.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-	// Test that an error is reported for an imported schema that has
-	// a different defined target namespace than the import element.
-	handler.reset();
-	try
-	{
-	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
-	
-	  importedSchema.setNamespace(new URI("http://www.sample.org"));
-	
-	
-	  XmlSchema schema = new XmlSchema("http://differentnamespace.sample.org", null);
-	  importedSchema.setSchemaDefinition(schema);
-	  if(val.testAssertionSchema1070(importedSchema, reporter))
-	  {
-		fail("There was no error reported for a schema with a different target namespace than the import element.");
-	  }
-	  else if(handler.errors.size() > 1)
-	  {
-		fail("More than one error was reported for a schema with a different target namespace than the import element.");
-	  }
-	  else if(!handler.errors.containsKey("Schema-1070"))
-	  {
-		fail("The error Schema-1070 was not reported for a schema with a different target namespace than the import element.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-    // Test that an error is reported for an imported schema that has
-	// no defined target namespace.
-	handler.reset();
-	try
-	{
-	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
-	
-	  importedSchema.setNamespace(new URI("http://www.sample.org"));
-	
-	
-	  XmlSchema schema = new XmlSchema(null, null);
-	  importedSchema.setSchemaDefinition(schema);
-	  if(val.testAssertionSchema1070(importedSchema, reporter))
-	  {
-		fail("There was no error reported for a schema with a null target namespace.");
-	  }
-	  else if(handler.errors.size() > 1)
-	  {
-		fail("More than one error was reported for a schema with a null target namespace.");
-	  }
-	  else if(!handler.errors.containsKey("Schema-1070"))
-	  {
-		fail("The error Schema-1070 was not reported for a schema with a null target namespace.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-    // Test that an error is reported for an imported schema that has
-	// an empty defined target namespace.
-	handler.reset();
-	try
-	{
-	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
-	
-	  importedSchema.setNamespace(new URI("http://www.sample.org"));
-	
-	
-	  XmlSchema schema = new XmlSchema("", null);
-	  importedSchema.setSchemaDefinition(schema);
-	  if(val.testAssertionSchema1070(importedSchema, reporter))
-	  {
-		fail("There was no error reported for a schema with an empty target namespace.");
-	  }
-	  else if(handler.errors.size() > 1)
-	  {
-		fail("More than one error was reported for a schema with an empty target namespace.");
-	  }
-	  else if(!handler.errors.containsKey("Schema-1070"))
-	  {
-		fail("The error Schema-1070 was not reported for a schema with an empty target namespace.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-  }
-  
-  /**
-   * Test assertion Schema-1069. An imported schema must contain a
-   * target namespace.
-   */
-  public void testTestAssertionSchema1069()
-  {
-    // Test that no error is reported for an imported schema that has
-	// a null schema. This error should be caught elseware.
-	handler.reset();
-	try
-	{
-	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
-	  importedSchema.setNamespace(new URI("http://www.sample.org"));
-	
-	  if(!val.testAssertionSchema1069(importedSchema, reporter))
-	  {
-		fail("The testAssertionSchema0017 method returned false for a null schema.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-	// Test that no error is reported for an imported schema that has
-	// defined a target namespace.
-	handler.reset();
-	try
-	{
-	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
-	  importedSchema.setNamespace(new URI("http://www.sample.org"));
-	
-	  XmlSchema schema = new XmlSchema("http://www.sample.org", null);
-	  importedSchema.setSchemaDefinition(schema);
-	  if(!val.testAssertionSchema1069(importedSchema, reporter))
-	  {
-		fail("The testAssertionSchema1069 method returned false for a schema with a target namespace.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-    // Test that an error is reported for an imported schema that has
-	// no defined target namespace.
-	handler.reset();
-	try
-	{
-	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
-	
-	  importedSchema.setNamespace(new URI("http://www.sample.org"));
-	
-	
-	  XmlSchema schema = new XmlSchema(null, null);
-	  importedSchema.setSchemaDefinition(schema);
-	  if(val.testAssertionSchema1069(importedSchema, reporter))
-	  {
-		fail("There was no error reported for a schema with a null target namespace.");
-	  }
-	  else if(handler.errors.size() > 1)
-	  {
-		fail("More than one error was reported for a schema with a null target namespace.");
-	  }
-	  else if(!handler.errors.containsKey("Schema-1069"))
-	  {
-		fail("The error Schema-1069 was not reported for a schema with a null target namespace.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-    // Test that an error is reported for an imported schema that has
-	// an empty defined target namespace.
-	handler.reset();
-	try
-	{
-	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
-	
-	  importedSchema.setNamespace(new URI("http://www.sample.org"));
-	
-	
-	  XmlSchema schema = new XmlSchema("", null);
-	  importedSchema.setSchemaDefinition(schema);
-	  if(val.testAssertionSchema1069(importedSchema, reporter))
-	  {
-		fail("There was no error reported for a schema with an empty target namespace.");
-	  }
-	  else if(handler.errors.size() > 1)
-	  {
-		fail("More than one error was reported for a schema with an empty target namespace.");
-	  }
-	  else if(!handler.errors.containsKey("Schema-1069"))
-	  {
-		fail("The error Schema-1069 was not reported for a schema with an empty target namespace.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-  }
-  
-  /**
-   * Test assertion Schema-1073. Inline schemas must not define an element with a name
-   * of an element that has already been defined in another inline schema with the same target namespace.
-   */
-  public void testTestAssertionSchema1073()
-  {
-	String schemaString = "<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"http://www.sample.org\">"
-		  	+ "<element name=\"myElement\" type=\"string\"/></schema>";
-    String schemaStringNS2 = "<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"http://www.sample2.org\">"
-		  	+ "<element name=\"myElement\" type=\"string\"/></schema>";
-	// Test that the method returns true for an empty list of inline schemas.
-	handler.reset();
-	try
-	{
-      InlinedSchema[] emptySchemaList = new InlinedSchema[0];
-      if(!val.testAssertionSchema1073(emptySchemaList, reporter))
-	  {
-        fail("The testAssertionSchema1073 method returned false for an empty inline schema list.");
-	  }
-    }
-    catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-    
-	// Test that two inline schemas with the same target namespace
-	// that define the same element produce an error.
-	handler.reset();
-	try
-	{
-	  InlinedSchema[] inlinedSchemas = new InlinedSchema[2];
-	  inlinedSchemas[0]= new InlinedSchemaImpl();
-	  inlinedSchemas[1] = new InlinedSchemaImpl();
-	
-	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
-	  inlinedSchemas[1].setNamespace(new URI("http://www.sample.org"));
-	  
-	  // Create DOM representation of schema, have XmlSchema parse it.
-	  DOMParser builder = new DOMParser();
-	  Reader reader = new StringReader(schemaString);
-      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
-      builder.parse(is);
-      Document schemaDoc1 = builder.getDocument();
-      reader = new StringReader(schemaString);
-      is = new XMLInputSource(null,null,null,reader,null);
-      builder.parse(is);
-      Document schemaDoc2 = builder.getDocument();
-      XmlSchemaCollection xsc = new XmlSchemaCollection();
-      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
-      XmlSchema xs2 = xsc.read(schemaDoc2.getDocumentElement());
-	  inlinedSchemas[0].setSchemaDefinition(xs1);
-	  inlinedSchemas[1].setSchemaDefinition(xs2);
-	  if(val.testAssertionSchema1073(inlinedSchemas, reporter))
-	  {
-		fail("There was no error reported for an inline schema that declares the same element as another inline schema with the same namespace.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(IOException e)
-	{
-	  fail("There was a problem parsing the test inline schema document");
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-
-	// Test that two inline schemas with the different target namespaces
-	// that define the same element do not produce an error.
-	handler.reset();
-	try
-	{
-	  InlinedSchema[] inlinedSchemas = new InlinedSchema[2];
-	  inlinedSchemas[0]= new InlinedSchemaImpl();
-	  inlinedSchemas[1] = new InlinedSchemaImpl();
-	
-	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
-	  inlinedSchemas[1].setNamespace(new URI("http://www.sample2.org"));
-	  
-	  // Create DOM representation of schema, have XmlSchema parse it.
-	  DOMParser builder = new DOMParser();
-	  Reader reader = new StringReader(schemaString);
-      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
-      builder.parse(is);
-      Document schemaDoc1 = builder.getDocument();
-      reader = new StringReader(schemaStringNS2);
-      is = new XMLInputSource(null,null,null,reader,null);
-      builder.parse(is);
-      Document schemaDoc2 = builder.getDocument();
-      XmlSchemaCollection xsc = new XmlSchemaCollection();
-      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
-      XmlSchema xs2 = xsc.read(schemaDoc2.getDocumentElement());
-	  inlinedSchemas[0].setSchemaDefinition(xs1);
-	  inlinedSchemas[1].setSchemaDefinition(xs2);
-	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
-	  {
-		fail("There was an error reported for an inline schema that declares the same element as another inline schema but has a different target namespace.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(IOException e)
-	{
-	  fail("There was a problem parsing the test inline schema document");
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-    // Test that only one inline schema does not produce an error.
-	handler.reset();
-	try
-	{
-	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
-	  inlinedSchemas[0]= new InlinedSchemaImpl();
-	
-	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
-	  
-	  // Create DOM representation of schema, have XmlSchema parse it.
-	  DOMParser builder = new DOMParser();
-	  Reader reader = new StringReader(schemaString);
-      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
-      builder.parse(is);
-      Document schemaDoc1 = builder.getDocument();
-      XmlSchemaCollection xsc = new XmlSchemaCollection();
-      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
-	  inlinedSchemas[0].setSchemaDefinition(xs1);
-	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
-	  {
-		fail("There was an error reported for an inline schema list that contains only one inline schema.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(IOException e)
-	{
-	  fail("There was a problem parsing the test inline schema document");
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-	// Test that an inline schema that can not be read (that's null) does not produce an error.
-	handler.reset();
-	try
-	{
-	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
-	  inlinedSchemas[0]= new InlinedSchemaImpl();
-	
-	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
-
-	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
-	  {
-		fail("There was an error reported for an inline schema list that contains a schema that couldn't be read (is null).");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-	//	 Test that only one inline schema does not produce an error.
-	handler.reset();
-	try
-	{
-	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
-	  inlinedSchemas[0]= new InlinedSchemaImpl();
-	
-	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
-	  
-	  // Create DOM representation of schema, have XmlSchema parse it.
-	  DOMParser builder = new DOMParser();
-	  Reader reader = new StringReader(schemaString);
-      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
-      builder.parse(is);
-      Document schemaDoc1 = builder.getDocument();
-      XmlSchemaCollection xsc = new XmlSchemaCollection();
-      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
-	  inlinedSchemas[0].setSchemaDefinition(xs1);
-	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
-	  {
-		fail("There was an error reported for an inline schema list that contains only one inline schema.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(IOException e)
-	{
-	  fail("There was a problem parsing the test inline schema document");
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-	// Test that an inline schema with no defined target namespace doesn't produce an error.
-	handler.reset();
-	try
-	{
-	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
-	  inlinedSchemas[0]= new InlinedSchemaImpl();
-	
-	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
-	  {
-		fail("There was an error reported for an inline schema that contains a null namespace.");
-	  }
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-  }
-  
-  /**
-   * Test assertion Schema-1073b. Inline schemas must not define a type with a name
-   * of an type that has already been defined in another inline schema with the same target namespace.
-   */
-  public void testTestAssertionSchema1073b()
-  {
-	String schemaString = "<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"http://www.sample.org\">"
-		  + "<complexType name=\"myType\">"     
-		  + "<sequence>"     
-          + "<element  name=\"element\" type=\"string\"/>"      
-          + "</sequence>"     
-          + "</complexType>"
-          + "</schema>";
-	String schemaStringNS2 = "<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"http://www.sample2.org\">"
-		  + "<complexType name=\"myType\">"     
-		  + "<sequence>"     
-        + "<element  name=\"element\" type=\"string\"/>"      
-        + "</sequence>"     
-        + "</complexType>"
-        + "</schema>";
-	// Test that the method returns true for an empty list of inline schemas.
-	handler.reset();
-	try
-	{
-      InlinedSchema[] emptySchemaList = new InlinedSchema[0];
-      if(!val.testAssertionSchema1073(emptySchemaList, reporter))
-	  {
-        fail("The testAssertionSchema1073b method returned false for an empty inline schema list.");
-	  }
-    }
-    catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-    
-	// Test that two inline schemas with the same target namespace
-	// that define the same type produce an error.
-	handler.reset();
-	try
-	{
-	  InlinedSchema[] inlinedSchemas = new InlinedSchema[2];
-	  inlinedSchemas[0]= new InlinedSchemaImpl();
-	  inlinedSchemas[1] = new InlinedSchemaImpl();
-	
-	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
-	  inlinedSchemas[1].setNamespace(new URI("http://www.sample.org"));
-	  
-	  // Create DOM representation of schema, have XmlSchema parse it.
-	  
-	  DOMParser builder = new DOMParser();
-	  Reader reader = new StringReader(schemaString);
-      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
-      builder.parse(is);
-      Document schemaDoc1 = builder.getDocument();
-      reader = new StringReader(schemaString);
-      is = new XMLInputSource(null,null,null,reader,null);
-      builder.parse(is);
-      Document schemaDoc2 = builder.getDocument();
-      XmlSchemaCollection xsc = new XmlSchemaCollection();
-      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
-      XmlSchema xs2 = xsc.read(schemaDoc2.getDocumentElement());
-	  inlinedSchemas[0].setSchemaDefinition(xs1);
-	  inlinedSchemas[1].setSchemaDefinition(xs2);
-	  if(val.testAssertionSchema1073(inlinedSchemas, reporter))
-	  {
-		fail("There was no error reported for an inline schema that declares the same type as another inline schema with the same namespace.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(IOException e)
-	{
-	  fail("There was a problem parsing the test inline schema document");
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-
-	// Test that two inline schemas with different target namespaces
-	// that define the same type do not produce an error.
-	handler.reset();
-	try
-	{
-	  InlinedSchema[] inlinedSchemas = new InlinedSchema[2];
-	  inlinedSchemas[0]= new InlinedSchemaImpl();
-	  inlinedSchemas[1] = new InlinedSchemaImpl();
-	
-	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
-	  inlinedSchemas[1].setNamespace(new URI("http://www.sample2.org"));
-	  
-	  // Create DOM representation of schema, have XmlSchema parse it.
-	  DOMParser builder = new DOMParser();
-	  Reader reader = new StringReader(schemaString);
-      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
-      builder.parse(is);
-      Document schemaDoc1 = builder.getDocument();
-      reader = new StringReader(schemaStringNS2);
-      is = new XMLInputSource(null,null,null,reader,null);
-      builder.parse(is);
-      Document schemaDoc2 = builder.getDocument();
-      XmlSchemaCollection xsc = new XmlSchemaCollection();
-      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
-      XmlSchema xs2 = xsc.read(schemaDoc2.getDocumentElement());
-	  inlinedSchemas[0].setSchemaDefinition(xs1);
-	  inlinedSchemas[1].setSchemaDefinition(xs2);
-	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
-	  {
-		fail("There was an error reported for an inline schema that declares the same element as another inline schema but has a different target namespace.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(IOException e)
-	{
-	  fail("There was a problem parsing the test inline schema document");
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-    // Test that only one inline schema does not produce an error.
-	handler.reset();
-	try
-	{
-	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
-	  inlinedSchemas[0]= new InlinedSchemaImpl();
-	
-	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
-	  
-	  // Create DOM representation of schema, have XmlSchema parse it.
-	  DOMParser builder = new DOMParser();
-	  Reader reader = new StringReader(schemaString);
-      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
-      builder.parse(is);
-      Document schemaDoc1 = builder.getDocument();
-      XmlSchemaCollection xsc = new XmlSchemaCollection();
-      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
-	  inlinedSchemas[0].setSchemaDefinition(xs1);
-	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
-	  {
-		fail("There was an error reported for an inline schema list that contains only one inline schema.");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(IOException e)
-	{
-	  fail("There was a problem parsing the test inline schema document");
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-	// Test that an inline schema that can not be read (that's null) does not produce an error.
-	handler.reset();
-	try
-	{
-	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
-	  inlinedSchemas[0]= new InlinedSchemaImpl();
-	
-	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
-
-	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
-	  {
-		fail("There was an error reported for an inline schema list that contains a schema that couldn't be read (is null).");
-	  }
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem setting the namespace of the imported schema: " + e);
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-	// Test that an inline schema with no defined target namespace doesn't produce an error.
-	handler.reset();
-	try
-	{
-	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
-	  inlinedSchemas[0]= new InlinedSchemaImpl();
-	
-	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
-	  {
-		fail("There was an error reported for an inline schema that contains a null namespace.");
-	  }
-	}
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-  }
-  
-  /**
-   * Test assertion Interface-1012. Style defaults specified on interface elements
-   * must all be absolute.
-   */
-  public void testTestAssertionInterface1012()
-  {
-	URI relativeURI = null;
-	URI relativeURI2 = null;
-	URI absoluteURI = null;
-	try
-	{
-	  relativeURI = new URI("relativeuri");
-	  relativeURI2 = new URI("relativeuri2");
-	  absoluteURI = new URI("http://absoluteuri");
-	}
-	catch(URISyntaxException e)
-	{
-	  fail("There was a problem creating the test URIs: " + e);
-	}
-
-    WSDLFactory factory = null;
-    try {
-        factory = WSDLFactory.newInstance();
-    } catch (WSDLException e) {
-        fail("Can't instantiate the WSDLFactory object.");
-    }
-    
-	// Test that a schema without any style defaults is valid.
-	handler.reset();
-    try
-	{
-      DescriptionElement desc = factory.newDescription();
-      InterfaceElement interfaceElem = desc.addInterfaceElement();
-	  if(!val.testAssertionInterface1012(interfaceElem, reporter))
-	  {
-	    fail("The testAssertionInterface1012 method returned false for an interface that specifies no style defaults.");
-	  }
-	}
-	catch(WSDLException e)
-    {
-	  fail("There was a problem running the test assertion method " + e);
-	}
-	
-    // Test that a schema with an absolute style default is valid.
-	handler.reset();
-	try
-	{
-          DescriptionElement desc = factory.newDescription();
-      InterfaceElement interfaceElem = desc.addInterfaceElement();
-	  interfaceElem.addStyleDefaultURI(absoluteURI);
-	  if(!val.testAssertionInterface1012(interfaceElem, reporter))
-	  {
-	    fail("The testAssertionInterface1012 method returned false for an interface that specifies one absolute style default.");
-	  }
-    }
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-    // Test that a schema with a relative style default is not valid.
-	handler.reset();
-	try
-	{
-      DescriptionElement desc = factory.newDescription();
-	  InterfaceElement interfaceElem = desc.addInterfaceElement();
-	  interfaceElem.addStyleDefaultURI(relativeURI);
-	  if(val.testAssertionInterface1012(interfaceElem, reporter))
-	  {
-	    fail("The testAssertionInterface1012 method returned true for an interface that specifies one relative style default.");
-	  }
-    }
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-    // Test that a schema with an absolute style default and a relative sytle default is not valid.
-	handler.reset();
-	try
-	{
-      DescriptionElement desc = factory.newDescription();
-      InterfaceElement interfaceElem = desc.addInterfaceElement();
-	  interfaceElem.addStyleDefaultURI(absoluteURI);
-	  interfaceElem.addStyleDefaultURI(relativeURI);
-	  if(val.testAssertionInterface1012(interfaceElem, reporter))
-	  {
-	    fail("The testAssertionInterface1012 method returned true for an interface that specifies an absolute style default and a relative style default.");
-	  }
-    }
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-	
-    // Test that a schema with two relative style defaults returns two error messages
-	handler.reset();
-	try
-	{
-      DescriptionElement desc = factory.newDescription();
-      InterfaceElement interfaceElem = desc.addInterfaceElement();
-	  interfaceElem.addStyleDefaultURI(relativeURI);
-	  interfaceElem.addStyleDefaultURI(relativeURI2);
-	  val.testAssertionInterface1012(interfaceElem, reporter);
-	  if(handler.numErrors != 2)
-	  {
-	    fail("The testAssertionInterface1012 method only reported one error for an interface that specifies two relative style defaults.");
-	  }
-    }
-	catch(WSDLException e)
-	{
-	  fail("There was a problem running the test assertion method " + e);
-    }
-  }
-  
-  /**
-   * Test assertion Schema-1066. References to XML schema components must only refer
-   * to elements and types in namespaces that have been imported or inlined or that
-   * are part of the XML schema namespace.
-   * 
-   * TODO: Implement tests for specific elements that contain invalid references.
-   *       These tests should probably be contained in a test method for validateInterfaces, validateBindings, etc.
-   */
-  public void testTestAssertionSchema1066()
-  {
-    WSDLFactory factory = null;
-    try {
-        factory = WSDLFactory.newInstance();
-    } catch (WSDLException e) {
-        fail("Can't instantiate the WSDLFactory object.");
-    }
-
-	// Create a schema for use in the tests and add it to a types section.
-    InlinedSchema schema = new InlinedSchemaImpl();
-    XmlSchema xs1 = null;
-    URI schemaNS = null;
-	try
-	{
-      String schemaString = "<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"http://www.sample.org\">"
-              + "<complexType name=\"myType\">"     
-              + "<sequence>"     
-              + "<element  name=\"element\" type=\"string\"/>"      
-              + "</sequence>"     
-              + "</complexType>" 
-              + "<element name=\"myElement\" type=\"string\"/>"
-              + "</schema>";
-      DOMParser builder = new DOMParser();
-	  Reader reader = new StringReader(schemaString);
-      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
-      builder.parse(is);
-      Document schemaDoc1 = builder.getDocument();
-      XmlSchemaCollection xsc = new XmlSchemaCollection();
-      xs1 = xsc.read(schemaDoc1.getDocumentElement());
-      schemaNS = new URI("http://www.sample.org");
-      schema.setSchemaDefinition(xs1);
-      schema.setNamespace(schemaNS);
-      TypesElement types = factory.newDescription().addTypesElement();
-      types.addSchema(schema);
-	}
-	catch(Exception e)
-	{
-	  fail("An error occurred while creating the sample types section.");
-	}
-    
-    // Test that a null namespace returns true.
-	handler.reset();
-    try
-	{
-      DescriptionElement descElem = factory.newDescription();
-      TypesElement types = descElem.addTypesElement();
-      types.addSchema(schema);
-      
-	  if(!val.testAssertionSchema1066(descElem, null, reporter))
-	  {
-	    fail("The testAssertionSchema1066 method returned false for a null namespace.");
-	  }
-	}
-	catch(WSDLException e)
-    {
-	  fail("There was a problem running the test assertion method " + e);
-	}
-	
-	// Test that a reference to a namespace that is defined inline
-	// does not return an error.
-	handler.reset();
-    try
-	{
-      DescriptionElement descElem = factory.newDescription();
-      TypesElement types = descElem.addTypesElement();
-      types.addSchema(schema);
-      
-	  if(!val.testAssertionSchema1066(descElem, new QName("http://www.sample.org", "myElement"), reporter))
-	  {
-	    fail("The testAssertionSchema1066 method returned false for a namespace that has been defined inline.");
-	  }
-	}
-	catch(WSDLException e)
-    {
-	  fail("There was a problem running the test assertion method " + e);
-	}
-	
-    // Test that a reference to a namespace that is imported
-	// does not return an error.
-	handler.reset();
-    try
-	{
-      DescriptionElement descElem = factory.newDescription();
-      TypesElement typesImported = descElem.addTypesElement();
-      ImportedSchema importedSchema = new ImportedSchemaImpl();
-      importedSchema.setSchemaDefinition(xs1);
-      importedSchema.setNamespace(schemaNS);
-      typesImported.addSchema(importedSchema);
-      
-	  if(!val.testAssertionSchema1066(descElem, new QName("http://www.sample.org", "myElement"), reporter))
-	  {
-	    fail("The testAssertionSchema1066 method returned false for a namespace that has been imported.");
-	  }
-	}
-	catch(WSDLException e)
-    {
-	  fail("There was a problem running the test assertion method " + e);
-	}
-	
-    // Test that a reference to the XML Schema namespace does not return an error.
-	handler.reset();
-    try
-	{
-      DescriptionElement descElem = factory.newDescription();
-      //descElem.setTypesElement(types);
-      
-	  if(!val.testAssertionSchema1066(descElem, new QName(Constants.TYPE_XSD_2001, "myElement"), reporter))
-	  {
-	    fail("The testAssertionSchema1066 method returned false for the XML Schema namespace.");
-	  }
-	}
-	catch(WSDLException e)
-    {
-	  fail("There was a problem running the test assertion method " + e);
-	}
-	
-    // Test that a reference to a namespace that has not been defined inline or imported returns an error.
-	// This test also checks that the method functions correctly with no defined types element.
-	handler.reset();
-    try
-	{
-      DescriptionElement descElem = factory.newDescription();
-      //descElem.setTypesElement(types);
-      
-	  if(val.testAssertionSchema1066(descElem, new QName("http://www.sample2.org", "myElement"), reporter))
-	  {
-	    fail("The testAssertionSchema1066 method returned true for a namespace that is not available..");
-	  }
-	}
-	catch(WSDLException e)
-    {
-	  fail("There was a problem running the test assertion method " + e);
-	}
-	
-	// Test that a reference to an inline schema that does not define a 
-	// target namespace (the targetNamespace is null) does not return an
-	// error.
-	handler.reset();
-    try
-	{
-      DescriptionElement descElem = factory.newDescription();
-      TypesElement typesImported = descElem.addTypesElement();
-      InlinedSchema inlinedSchema = new InlinedSchemaImpl();
-      typesImported.addSchema(inlinedSchema);
-      InlinedSchema inlinedSchema2 = new InlinedSchemaImpl();
-      inlinedSchema2.setNamespace(schemaNS);
-      typesImported.addSchema(inlinedSchema2);
-      
-	  if(!val.testAssertionSchema1066(descElem, new QName("http://www.sample.org", "myElement"), reporter))
-	  {
-	    fail("The testAssertionSchema1066 method returned false for a namespace that has been imported.");
-	  }
-	}
-	catch(WSDLException e)
-    {
-	  fail("There was a problem running the test assertion method " + e);
-	}
-	
-  }
-  
-  /**
-   * Test the validateTypes method.
-   */
-  public void testValidateTypes()
-  {
-	// Test that the method returns true when the type is null.
-	try
-	{
-	  if(!val.validateTypes(null, reporter))
-	  {
-		fail("The validateTypes method returned false for a null types element.");
-	  }
-	}
-	catch(WSDLException e)
-	{
-		fail("There was a problem running the test assertion method " + e);
-	}
-  }
-}
+ * 
+ *     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.
+ */
+package org.apache.woden.internal.wsdl20.validation;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.apache.woden.ErrorReporter;
+import org.apache.woden.WSDLException;
+import org.apache.woden.WSDLFactory;
+import org.apache.woden.internal.DOMWSDLFactory;
+import org.apache.woden.internal.ErrorReporterImpl;
+import org.apache.woden.internal.schema.ImportedSchemaImpl;
+import org.apache.woden.internal.schema.InlinedSchemaImpl;
+import org.apache.woden.internal.wsdl20.Constants;
+import org.apache.woden.internal.wsdl20.DescriptionImpl;
+import org.apache.woden.schema.ImportedSchema;
+import org.apache.woden.schema.InlinedSchema;
+import org.apache.woden.tests.TestErrorHandler;
+import org.apache.woden.wsdl20.xml.DescriptionElement;
+import org.apache.woden.wsdl20.xml.InterfaceElement;
+import org.apache.woden.wsdl20.xml.TypesElement;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.apache.xerces.parsers.DOMParser;
+import org.apache.xerces.xni.parser.XMLInputSource;
+import org.w3c.dom.Document;
+
+/**
+ * A test class to test the assertion tests in the WSDLDocumentValidator.
+ */
+public class WSDLDocumentValidatorTest extends TestCase 
+{
+  private WSDLDocumentValidator val;
+  private ErrorReporter reporter;
+  private TestErrorHandler handler;
+  
+  /**
+   * Create a test suite from this test class.
+   * 
+   * @return A test suite from this test class.
+   */
+  public static Test suite()
+  {
+	return new TestSuite(WSDLDocumentValidatorTest.class);
+  }
+  
+  /* (non-Javadoc)
+   * @see junit.framework.TestCase#setUp()
+   */
+  protected void setUp() throws Exception 
+  {
+    val = new WSDLDocumentValidator();
+    handler = new TestErrorHandler();
+    reporter = new ErrorReporterImpl();
+    reporter.setErrorHandler(handler);
+  }
+
+  /* (non-Javadoc)
+   * @see junit.framework.TestCase#tearDown()
+   */
+  protected void tearDown() throws Exception 
+  {
+    val = null;
+    reporter = null;
+    handler = null;
+  }
+  
+  /**
+   * Test that the testAssertionDescription1006 method returns
+   * true if given a description element with an absolute IRI,
+   * false otherwise.
+   */
+  public void testTestAssertionDescription1006()
+  {
+	// Test that no error is reported with an absolute IRI.
+	handler.reset();
+	try
+	{
+	  DescriptionElement desc = new DOMWSDLFactory().newDescription();
+	  desc.setTargetNamespace(new URI("http://www.sample.org"));
+	  
+	  if(!val.testAssertionDescription1006(desc, reporter))
+	  {
+		fail("A message was reported for a description element with an absolute IRI.");
+	  }
+	}
+	catch(Exception e)
+	{
+	  fail("There was a problem while testing an absolute IRI.");
+	}
+	
+    // Test that error Description-1006 is reported for a relative IRI.
+	handler.reset();
+	try
+	{
+	  DescriptionElement desc = new DOMWSDLFactory().newDescription();
+	  desc.setTargetNamespace(new URI("//www.sample.org"));
+	  boolean isValid = val.testAssertionDescription1006(desc, reporter);
+	  if(isValid)
+	  {
+		fail("No message was reported for a description element with the relative IRI //www.sample.org.");
+	  }
+	  else if(handler.warnings.size() > 0)
+	  {
+		fail("A warning was reported for a description element with the relative IRI //www.sample.org.");
+	  }
+	  else if(handler.fatalErrors.size() > 0)
+	  {
+		fail("A fatal error was reported for a description element with the relative IRI //www.sample.org.");
+	  }
+	  else if(handler.errors.size() != 1)
+	  {
+		fail("More than one error was reported for a description element with the relative IRI //www.sample.org.");
+	  }
+	  else if(!handler.errors.containsKey("Description-1006"))
+	  {
+		fail("The error for Description-1006 was not reported for a description element with the relative IRI //www.sample.org.");
+	  }
+	}
+	catch(Exception e)
+	{
+	  fail("There was a problem while testing an absolute IRI.");
+	}
+	  
+  }
+  
+  /**
+   * Test assertion Schema-1070. An imported schema must contain the
+   * same target namespace as the import element.
+   */
+  public void testTestAssertionSchema1070()
+  {
+    // Test that no error is reported for an imported schema that has
+	// a null schema. This error should be caught elseware.
+	handler.reset();
+	try
+	{
+	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
+	  importedSchema.setNamespace(new URI("http://www.sample.org"));
+	
+	  if(!val.testAssertionSchema1070(importedSchema, reporter))
+	  {
+		fail("The testAssertionSchema1070 method returned false for a null schema.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+	// Test that no error is reported for an imported schema that has
+	// the same target namespace as the imported element.
+	handler.reset();
+	try
+	{
+	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
+	
+	  importedSchema.setNamespace(new URI("http://www.sample.org"));
+	
+	
+	  XmlSchema schema = new XmlSchema("http://www.sample.org", null);
+	  importedSchema.setSchemaDefinition(schema);
+	  if(!val.testAssertionSchema1070(importedSchema, reporter))
+	  {
+		fail("The testAssertionSchema1070 method returned false for a schema with the same target namespace as the import element.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+	// Test that an error is reported for an imported schema that has
+	// a different defined target namespace than the import element.
+	handler.reset();
+	try
+	{
+	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
+	
+	  importedSchema.setNamespace(new URI("http://www.sample.org"));
+	
+	
+	  XmlSchema schema = new XmlSchema("http://differentnamespace.sample.org", null);
+	  importedSchema.setSchemaDefinition(schema);
+	  if(val.testAssertionSchema1070(importedSchema, reporter))
+	  {
+		fail("There was no error reported for a schema with a different target namespace than the import element.");
+	  }
+	  else if(handler.errors.size() > 1)
+	  {
+		fail("More than one error was reported for a schema with a different target namespace than the import element.");
+	  }
+	  else if(!handler.errors.containsKey("Schema-1070"))
+	  {
+		fail("The error Schema-1070 was not reported for a schema with a different target namespace than the import element.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+    // Test that an error is reported for an imported schema that has
+	// no defined target namespace.
+	handler.reset();
+	try
+	{
+	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
+	
+	  importedSchema.setNamespace(new URI("http://www.sample.org"));
+	
+	
+	  XmlSchema schema = new XmlSchema(null, null);
+	  importedSchema.setSchemaDefinition(schema);
+	  if(val.testAssertionSchema1070(importedSchema, reporter))
+	  {
+		fail("There was no error reported for a schema with a null target namespace.");
+	  }
+	  else if(handler.errors.size() > 1)
+	  {
+		fail("More than one error was reported for a schema with a null target namespace.");
+	  }
+	  else if(!handler.errors.containsKey("Schema-1070"))
+	  {
+		fail("The error Schema-1070 was not reported for a schema with a null target namespace.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+    // Test that an error is reported for an imported schema that has
+	// an empty defined target namespace.
+	handler.reset();
+	try
+	{
+	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
+	
+	  importedSchema.setNamespace(new URI("http://www.sample.org"));
+	
+	
+	  XmlSchema schema = new XmlSchema("", null);
+	  importedSchema.setSchemaDefinition(schema);
+	  if(val.testAssertionSchema1070(importedSchema, reporter))
+	  {
+		fail("There was no error reported for a schema with an empty target namespace.");
+	  }
+	  else if(handler.errors.size() > 1)
+	  {
+		fail("More than one error was reported for a schema with an empty target namespace.");
+	  }
+	  else if(!handler.errors.containsKey("Schema-1070"))
+	  {
+		fail("The error Schema-1070 was not reported for a schema with an empty target namespace.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+  }
+  
+  /**
+   * Test assertion Schema-1069. An imported schema must contain a
+   * target namespace.
+   */
+  public void testTestAssertionSchema1069()
+  {
+    // Test that no error is reported for an imported schema that has
+	// a null schema. This error should be caught elseware.
+	handler.reset();
+	try
+	{
+	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
+	  importedSchema.setNamespace(new URI("http://www.sample.org"));
+	
+	  if(!val.testAssertionSchema1069(importedSchema, reporter))
+	  {
+		fail("The testAssertionSchema0017 method returned false for a null schema.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+	// Test that no error is reported for an imported schema that has
+	// defined a target namespace.
+	handler.reset();
+	try
+	{
+	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
+	  importedSchema.setNamespace(new URI("http://www.sample.org"));
+	
+	  XmlSchema schema = new XmlSchema("http://www.sample.org", null);
+	  importedSchema.setSchemaDefinition(schema);
+	  if(!val.testAssertionSchema1069(importedSchema, reporter))
+	  {
+		fail("The testAssertionSchema1069 method returned false for a schema with a target namespace.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+    // Test that an error is reported for an imported schema that has
+	// no defined target namespace.
+	handler.reset();
+	try
+	{
+	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
+	
+	  importedSchema.setNamespace(new URI("http://www.sample.org"));
+	
+	
+	  XmlSchema schema = new XmlSchema(null, null);
+	  importedSchema.setSchemaDefinition(schema);
+	  if(val.testAssertionSchema1069(importedSchema, reporter))
+	  {
+		fail("There was no error reported for a schema with a null target namespace.");
+	  }
+	  else if(handler.errors.size() > 1)
+	  {
+		fail("More than one error was reported for a schema with a null target namespace.");
+	  }
+	  else if(!handler.errors.containsKey("Schema-1069"))
+	  {
+		fail("The error Schema-1069 was not reported for a schema with a null target namespace.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+    // Test that an error is reported for an imported schema that has
+	// an empty defined target namespace.
+	handler.reset();
+	try
+	{
+	  ImportedSchemaImpl importedSchema = new ImportedSchemaImpl();
+	
+	  importedSchema.setNamespace(new URI("http://www.sample.org"));
+	
+	
+	  XmlSchema schema = new XmlSchema("", null);
+	  importedSchema.setSchemaDefinition(schema);
+	  if(val.testAssertionSchema1069(importedSchema, reporter))
+	  {
+		fail("There was no error reported for a schema with an empty target namespace.");
+	  }
+	  else if(handler.errors.size() > 1)
+	  {
+		fail("More than one error was reported for a schema with an empty target namespace.");
+	  }
+	  else if(!handler.errors.containsKey("Schema-1069"))
+	  {
+		fail("The error Schema-1069 was not reported for a schema with an empty target namespace.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+  }
+  
+  /**
+   * Test assertion Schema-1073. Inline schemas must not define an element with a name
+   * of an element that has already been defined in another inline schema with the same target namespace.
+   */
+  public void testTestAssertionSchema1073()
+  {
+	String schemaString = "<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"http://www.sample.org\">"
+		  	+ "<element name=\"myElement\" type=\"string\"/></schema>";
+    String schemaStringNS2 = "<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"http://www.sample2.org\">"
+		  	+ "<element name=\"myElement\" type=\"string\"/></schema>";
+	// Test that the method returns true for an empty list of inline schemas.
+	handler.reset();
+	try
+	{
+      InlinedSchema[] emptySchemaList = new InlinedSchema[0];
+      if(!val.testAssertionSchema1073(emptySchemaList, reporter))
+	  {
+        fail("The testAssertionSchema1073 method returned false for an empty inline schema list.");
+	  }
+    }
+    catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+    
+	// Test that two inline schemas with the same target namespace
+	// that define the same element produce an error.
+	handler.reset();
+	try
+	{
+	  InlinedSchema[] inlinedSchemas = new InlinedSchema[2];
+	  inlinedSchemas[0]= new InlinedSchemaImpl();
+	  inlinedSchemas[1] = new InlinedSchemaImpl();
+	
+	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
+	  inlinedSchemas[1].setNamespace(new URI("http://www.sample.org"));
+	  
+	  // Create DOM representation of schema, have XmlSchema parse it.
+	  DOMParser builder = new DOMParser();
+	  Reader reader = new StringReader(schemaString);
+      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
+      builder.parse(is);
+      Document schemaDoc1 = builder.getDocument();
+      reader = new StringReader(schemaString);
+      is = new XMLInputSource(null,null,null,reader,null);
+      builder.parse(is);
+      Document schemaDoc2 = builder.getDocument();
+      XmlSchemaCollection xsc = new XmlSchemaCollection();
+      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
+      XmlSchema xs2 = xsc.read(schemaDoc2.getDocumentElement());
+	  inlinedSchemas[0].setSchemaDefinition(xs1);
+	  inlinedSchemas[1].setSchemaDefinition(xs2);
+	  if(val.testAssertionSchema1073(inlinedSchemas, reporter))
+	  {
+		fail("There was no error reported for an inline schema that declares the same element as another inline schema with the same namespace.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(IOException e)
+	{
+	  fail("There was a problem parsing the test inline schema document");
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+
+	// Test that two inline schemas with the different target namespaces
+	// that define the same element do not produce an error.
+	handler.reset();
+	try
+	{
+	  InlinedSchema[] inlinedSchemas = new InlinedSchema[2];
+	  inlinedSchemas[0]= new InlinedSchemaImpl();
+	  inlinedSchemas[1] = new InlinedSchemaImpl();
+	
+	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
+	  inlinedSchemas[1].setNamespace(new URI("http://www.sample2.org"));
+	  
+	  // Create DOM representation of schema, have XmlSchema parse it.
+	  DOMParser builder = new DOMParser();
+	  Reader reader = new StringReader(schemaString);
+      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
+      builder.parse(is);
+      Document schemaDoc1 = builder.getDocument();
+      reader = new StringReader(schemaStringNS2);
+      is = new XMLInputSource(null,null,null,reader,null);
+      builder.parse(is);
+      Document schemaDoc2 = builder.getDocument();
+      XmlSchemaCollection xsc = new XmlSchemaCollection();
+      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
+      XmlSchema xs2 = xsc.read(schemaDoc2.getDocumentElement());
+	  inlinedSchemas[0].setSchemaDefinition(xs1);
+	  inlinedSchemas[1].setSchemaDefinition(xs2);
+	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
+	  {
+		fail("There was an error reported for an inline schema that declares the same element as another inline schema but has a different target namespace.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(IOException e)
+	{
+	  fail("There was a problem parsing the test inline schema document");
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+    // Test that only one inline schema does not produce an error.
+	handler.reset();
+	try
+	{
+	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
+	  inlinedSchemas[0]= new InlinedSchemaImpl();
+	
+	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
+	  
+	  // Create DOM representation of schema, have XmlSchema parse it.
+	  DOMParser builder = new DOMParser();
+	  Reader reader = new StringReader(schemaString);
+      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
+      builder.parse(is);
+      Document schemaDoc1 = builder.getDocument();
+      XmlSchemaCollection xsc = new XmlSchemaCollection();
+      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
+	  inlinedSchemas[0].setSchemaDefinition(xs1);
+	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
+	  {
+		fail("There was an error reported for an inline schema list that contains only one inline schema.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(IOException e)
+	{
+	  fail("There was a problem parsing the test inline schema document");
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+	// Test that an inline schema that can not be read (that's null) does not produce an error.
+	handler.reset();
+	try
+	{
+	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
+	  inlinedSchemas[0]= new InlinedSchemaImpl();
+	
+	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
+
+	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
+	  {
+		fail("There was an error reported for an inline schema list that contains a schema that couldn't be read (is null).");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+	//	 Test that only one inline schema does not produce an error.
+	handler.reset();
+	try
+	{
+	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
+	  inlinedSchemas[0]= new InlinedSchemaImpl();
+	
+	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
+	  
+	  // Create DOM representation of schema, have XmlSchema parse it.
+	  DOMParser builder = new DOMParser();
+	  Reader reader = new StringReader(schemaString);
+      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
+      builder.parse(is);
+      Document schemaDoc1 = builder.getDocument();
+      XmlSchemaCollection xsc = new XmlSchemaCollection();
+      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
+	  inlinedSchemas[0].setSchemaDefinition(xs1);
+	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
+	  {
+		fail("There was an error reported for an inline schema list that contains only one inline schema.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(IOException e)
+	{
+	  fail("There was a problem parsing the test inline schema document");
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+	// Test that an inline schema with no defined target namespace doesn't produce an error.
+	handler.reset();
+	try
+	{
+	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
+	  inlinedSchemas[0]= new InlinedSchemaImpl();
+	
+	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
+	  {
+		fail("There was an error reported for an inline schema that contains a null namespace.");
+	  }
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+  }
+  
+  /**
+   * Test assertion Schema-1073b. Inline schemas must not define a type with a name
+   * of an type that has already been defined in another inline schema with the same target namespace.
+   */
+  public void testTestAssertionSchema1073b()
+  {
+	String schemaString = "<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"http://www.sample.org\">"
+		  + "<complexType name=\"myType\">"     
+		  + "<sequence>"     
+          + "<element  name=\"element\" type=\"string\"/>"      
+          + "</sequence>"     
+          + "</complexType>"
+          + "</schema>";
+	String schemaStringNS2 = "<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"http://www.sample2.org\">"
+		  + "<complexType name=\"myType\">"     
+		  + "<sequence>"     
+        + "<element  name=\"element\" type=\"string\"/>"      
+        + "</sequence>"     
+        + "</complexType>"
+        + "</schema>";
+	// Test that the method returns true for an empty list of inline schemas.
+	handler.reset();
+	try
+	{
+      InlinedSchema[] emptySchemaList = new InlinedSchema[0];
+      if(!val.testAssertionSchema1073(emptySchemaList, reporter))
+	  {
+        fail("The testAssertionSchema1073b method returned false for an empty inline schema list.");
+	  }
+    }
+    catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+    
+	// Test that two inline schemas with the same target namespace
+	// that define the same type produce an error.
+	handler.reset();
+	try
+	{
+	  InlinedSchema[] inlinedSchemas = new InlinedSchema[2];
+	  inlinedSchemas[0]= new InlinedSchemaImpl();
+	  inlinedSchemas[1] = new InlinedSchemaImpl();
+	
+	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
+	  inlinedSchemas[1].setNamespace(new URI("http://www.sample.org"));
+	  
+	  // Create DOM representation of schema, have XmlSchema parse it.
+	  
+	  DOMParser builder = new DOMParser();
+	  Reader reader = new StringReader(schemaString);
+      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
+      builder.parse(is);
+      Document schemaDoc1 = builder.getDocument();
+      reader = new StringReader(schemaString);
+      is = new XMLInputSource(null,null,null,reader,null);
+      builder.parse(is);
+      Document schemaDoc2 = builder.getDocument();
+      XmlSchemaCollection xsc = new XmlSchemaCollection();
+      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
+      XmlSchema xs2 = xsc.read(schemaDoc2.getDocumentElement());
+	  inlinedSchemas[0].setSchemaDefinition(xs1);
+	  inlinedSchemas[1].setSchemaDefinition(xs2);
+	  if(val.testAssertionSchema1073(inlinedSchemas, reporter))
+	  {
+		fail("There was no error reported for an inline schema that declares the same type as another inline schema with the same namespace.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(IOException e)
+	{
+	  fail("There was a problem parsing the test inline schema document");
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+
+	// Test that two inline schemas with different target namespaces
+	// that define the same type do not produce an error.
+	handler.reset();
+	try
+	{
+	  InlinedSchema[] inlinedSchemas = new InlinedSchema[2];
+	  inlinedSchemas[0]= new InlinedSchemaImpl();
+	  inlinedSchemas[1] = new InlinedSchemaImpl();
+	
+	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
+	  inlinedSchemas[1].setNamespace(new URI("http://www.sample2.org"));
+	  
+	  // Create DOM representation of schema, have XmlSchema parse it.
+	  DOMParser builder = new DOMParser();
+	  Reader reader = new StringReader(schemaString);
+      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
+      builder.parse(is);
+      Document schemaDoc1 = builder.getDocument();
+      reader = new StringReader(schemaStringNS2);
+      is = new XMLInputSource(null,null,null,reader,null);
+      builder.parse(is);
+      Document schemaDoc2 = builder.getDocument();
+      XmlSchemaCollection xsc = new XmlSchemaCollection();
+      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
+      XmlSchema xs2 = xsc.read(schemaDoc2.getDocumentElement());
+	  inlinedSchemas[0].setSchemaDefinition(xs1);
+	  inlinedSchemas[1].setSchemaDefinition(xs2);
+	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
+	  {
+		fail("There was an error reported for an inline schema that declares the same element as another inline schema but has a different target namespace.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(IOException e)
+	{
+	  fail("There was a problem parsing the test inline schema document");
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+    // Test that only one inline schema does not produce an error.
+	handler.reset();
+	try
+	{
+	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
+	  inlinedSchemas[0]= new InlinedSchemaImpl();
+	
+	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
+	  
+	  // Create DOM representation of schema, have XmlSchema parse it.
+	  DOMParser builder = new DOMParser();
+	  Reader reader = new StringReader(schemaString);
+      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
+      builder.parse(is);
+      Document schemaDoc1 = builder.getDocument();
+      XmlSchemaCollection xsc = new XmlSchemaCollection();
+      XmlSchema xs1 = xsc.read(schemaDoc1.getDocumentElement());
+	  inlinedSchemas[0].setSchemaDefinition(xs1);
+	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
+	  {
+		fail("There was an error reported for an inline schema list that contains only one inline schema.");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(IOException e)
+	{
+	  fail("There was a problem parsing the test inline schema document");
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+	// Test that an inline schema that can not be read (that's null) does not produce an error.
+	handler.reset();
+	try
+	{
+	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
+	  inlinedSchemas[0]= new InlinedSchemaImpl();
+	
+	  inlinedSchemas[0].setNamespace(new URI("http://www.sample.org"));
+
+	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
+	  {
+		fail("There was an error reported for an inline schema list that contains a schema that couldn't be read (is null).");
+	  }
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem setting the namespace of the imported schema: " + e);
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+	// Test that an inline schema with no defined target namespace doesn't produce an error.
+	handler.reset();
+	try
+	{
+	  InlinedSchema[] inlinedSchemas = new InlinedSchema[1];
+	  inlinedSchemas[0]= new InlinedSchemaImpl();
+	
+	  if(!val.testAssertionSchema1073(inlinedSchemas, reporter))
+	  {
+		fail("There was an error reported for an inline schema that contains a null namespace.");
+	  }
+	}
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+  }
+  
+  /**
+   * Test assertion Interface-1012. Style defaults specified on interface elements
+   * must all be absolute.
+   */
+  public void testTestAssertionInterface1012()
+  {
+	URI relativeURI = null;
+	URI relativeURI2 = null;
+	URI absoluteURI = null;
+	try
+	{
+	  relativeURI = new URI("relativeuri");
+	  relativeURI2 = new URI("relativeuri2");
+	  absoluteURI = new URI("http://absoluteuri");
+	}
+	catch(URISyntaxException e)
+	{
+	  fail("There was a problem creating the test URIs: " + e);
+	}
+
+    WSDLFactory factory = null;
+    try {
+        factory = WSDLFactory.newInstance();
+    } catch (WSDLException e) {
+        fail("Can't instantiate the WSDLFactory object.");
+    }
+    
+	// Test that a schema without any style defaults is valid.
+	handler.reset();
+    try
+	{
+      DescriptionElement desc = factory.newDescription();
+      InterfaceElement interfaceElem = desc.addInterfaceElement();
+	  if(!val.testAssertionInterface1012(interfaceElem, reporter))
+	  {
+	    fail("The testAssertionInterface1012 method returned false for an interface that specifies no style defaults.");
+	  }
+	}
+	catch(WSDLException e)
+    {
+	  fail("There was a problem running the test assertion method " + e);
+	}
+	
+    // Test that a schema with an absolute style default is valid.
+	handler.reset();
+	try
+	{
+          DescriptionElement desc = factory.newDescription();
+      InterfaceElement interfaceElem = desc.addInterfaceElement();
+	  interfaceElem.addStyleDefaultURI(absoluteURI);
+	  if(!val.testAssertionInterface1012(interfaceElem, reporter))
+	  {
+	    fail("The testAssertionInterface1012 method returned false for an interface that specifies one absolute style default.");
+	  }
+    }
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+    // Test that a schema with a relative style default is not valid.
+	handler.reset();
+	try
+	{
+      DescriptionElement desc = factory.newDescription();
+	  InterfaceElement interfaceElem = desc.addInterfaceElement();
+	  interfaceElem.addStyleDefaultURI(relativeURI);
+	  if(val.testAssertionInterface1012(interfaceElem, reporter))
+	  {
+	    fail("The testAssertionInterface1012 method returned true for an interface that specifies one relative style default.");
+	  }
+    }
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+    // Test that a schema with an absolute style default and a relative sytle default is not valid.
+	handler.reset();
+	try
+	{
+      DescriptionElement desc = factory.newDescription();
+      InterfaceElement interfaceElem = desc.addInterfaceElement();
+	  interfaceElem.addStyleDefaultURI(absoluteURI);
+	  interfaceElem.addStyleDefaultURI(relativeURI);
+	  if(val.testAssertionInterface1012(interfaceElem, reporter))
+	  {
+	    fail("The testAssertionInterface1012 method returned true for an interface that specifies an absolute style default and a relative style default.");
+	  }
+    }
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+	
+    // Test that a schema with two relative style defaults returns two error messages
+	handler.reset();
+	try
+	{
+      DescriptionElement desc = factory.newDescription();
+      InterfaceElement interfaceElem = desc.addInterfaceElement();
+	  interfaceElem.addStyleDefaultURI(relativeURI);
+	  interfaceElem.addStyleDefaultURI(relativeURI2);
+	  val.testAssertionInterface1012(interfaceElem, reporter);
+	  if(handler.numErrors != 2)
+	  {
+	    fail("The testAssertionInterface1012 method only reported one error for an interface that specifies two relative style defaults.");
+	  }
+    }
+	catch(WSDLException e)
+	{
+	  fail("There was a problem running the test assertion method " + e);
+    }
+  }
+  
+  /**
+   * Test assertion Schema-1066. References to XML schema components must only refer
+   * to elements and types in namespaces that have been imported or inlined or that
+   * are part of the XML schema namespace.
+   * 
+   * TODO: Implement tests for specific elements that contain invalid references.
+   *       These tests should probably be contained in a test method for validateInterfaces, validateBindings, etc.
+   */
+  public void testTestAssertionSchema1066()
+  {
+    WSDLFactory factory = null;
+    try {
+        factory = WSDLFactory.newInstance();
+    } catch (WSDLException e) {
+        fail("Can't instantiate the WSDLFactory object.");
+    }
+
+	// Create a schema for use in the tests and add it to a types section.
+    InlinedSchema schema = new InlinedSchemaImpl();
+    XmlSchema xs1 = null;
+    URI schemaNS = null;
+	try
+	{
+      String schemaString = "<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"http://www.sample.org\">"
+              + "<complexType name=\"myType\">"     
+              + "<sequence>"     
+              + "<element  name=\"element\" type=\"string\"/>"      
+              + "</sequence>"     
+              + "</complexType>" 
+              + "<element name=\"myElement\" type=\"string\"/>"
+              + "</schema>";
+      DOMParser builder = new DOMParser();
+	  Reader reader = new StringReader(schemaString);
+      XMLInputSource is = new XMLInputSource(null,null,null,reader,null);
+      builder.parse(is);
+      Document schemaDoc1 = builder.getDocument();
+      XmlSchemaCollection xsc = new XmlSchemaCollection();
+      xs1 = xsc.read(schemaDoc1.getDocumentElement());
+      schemaNS = new URI("http://www.sample.org");
+      schema.setSchemaDefinition(xs1);
+      schema.setNamespace(schemaNS);
+      TypesElement types = factory.newDescription().addTypesElement();
+      types.addSchema(schema);
+	}
+	catch(Exception e)
+	{
+	  fail("An error occurred while creating the sample types section.");
+	}
+    
+    // Test that a null namespace returns true.
+	handler.reset();
+    try
+	{
+      DescriptionElement descElem = factory.newDescription();
+      TypesElement types = descElem.addTypesElement();
+      types.addSchema(schema);
+      
+	  if(!val.testAssertionSchema1066(descElem, null, reporter))
+	  {
+	    fail("The testAssertionSchema1066 method returned false for a null namespace.");
+	  }
+	}
+	catch(WSDLException e)
+    {
+	  fail("There was a problem running the test assertion method " + e);
+	}
+	
+	// Test that a reference to a namespace that is defined inline
+	// does not return an error.
+	handler.reset();
+    try
+	{
+      DescriptionElement descElem = factory.newDescription();
+      TypesElement types = descElem.addTypesElement();
+      types.addSchema(schema);
+      
+	  if(!val.testAssertionSchema1066(descElem, new QName("http://www.sample.org", "myElement"), reporter))
+	  {
+	    fail("The testAssertionSchema1066 method returned false for a namespace that has been defined inline.");
+	  }
+	}
+	catch(WSDLException e)
+    {
+	  fail("There was a problem running the test assertion method " + e);
+	}
+	
+    // Test that a reference to a namespace that is imported
+	// does not return an error.
+	handler.reset();
+    try
+	{
+      DescriptionElement descElem = factory.newDescription();
+      TypesElement typesImported = descElem.addTypesElement();
+      ImportedSchema importedSchema = new ImportedSchemaImpl();
+      importedSchema.setSchemaDefinition(xs1);
+      importedSchema.setNamespace(schemaNS);
+      typesImported.addSchema(importedSchema);
+      
+	  if(!val.testAssertionSchema1066(descElem, new QName("http://www.sample.org", "myElement"), reporter))
+	  {
+	    fail("The testAssertionSchema1066 method returned false for a namespace that has been imported.");
+	  }
+	}
+	catch(WSDLException e)
+    {
+	  fail("There was a problem running the test assertion method " + e);
+	}
+	
+    // Test that a reference to the XML Schema namespace does not return an error.
+	handler.reset();
+    try
+	{
+      DescriptionElement descElem = factory.newDescription();
+      //descElem.setTypesElement(types);
+      
+	  if(!val.testAssertionSchema1066(descElem, new QName(Constants.TYPE_XSD_2001, "myElement"), reporter))
+	  {
+	    fail("The testAssertionSchema1066 method returned false for the XML Schema namespace.");
+	  }
+	}
+	catch(WSDLException e)
+    {
+	  fail("There was a problem running the test assertion method " + e);
+	}
+	
+    // Test that a reference to a namespace that has not been defined inline or imported returns an error.
+	// This test also checks that the method functions correctly with no defined types element.
+	handler.reset();
+    try
+	{
+      DescriptionElement descElem = factory.newDescription();
+      //descElem.setTypesElement(types);
+      
+	  if(val.testAssertionSchema1066(descElem, new QName("http://www.sample2.org", "myElement"), reporter))
+	  {
+	    fail("The testAssertionSchema1066 method returned true for a namespace that is not available..");
+	  }
+	}
+	catch(WSDLException e)
+    {
+	  fail("There was a problem running the test assertion method " + e);
+	}
+	
+	// Test that a reference to an inline schema that does not define a 
+	// target namespace (the targetNamespace is null) does not return an
+	// error.
+	handler.reset();
+    try
+	{
+      DescriptionElement descElem = factory.newDescription();
+      TypesElement typesImported = descElem.addTypesElement();
+      InlinedSchema inlinedSchema = new InlinedSchemaImpl();
+      typesImported.addSchema(inlinedSchema);
+      InlinedSchema inlinedSchema2 = new InlinedSchemaImpl();
+      inlinedSchema2.setNamespace(schemaNS);
+      typesImported.addSchema(inlinedSchema2);
+      
+	  if(!val.testAssertionSchema1066(descElem, new QName("http://www.sample.org", "myElement"), reporter))
+	  {
+	    fail("The testAssertionSchema1066 method returned false for a namespace that has been imported.");
+	  }
+	}
+	catch(WSDLException e)
+    {
+	  fail("There was a problem running the test assertion method " + e);
+	}
+	
+  }
+  
+  /**
+   * Test the validateTypes method.
+   */
+  public void testValidateTypes()
+  {
+	// Test that the method returns true when the type is null.
+	try
+	{
+	  if(!val.validateTypes(null, reporter))
+	  {
+		fail("The validateTypes method returned false for a null types element.");
+	  }
+	}
+	catch(WSDLException e)
+	{
+		fail("There was a problem running the test assertion method " + e);
+	}
+  }
+}

Propchange: incubator/woden/trunk/java/test/org/apache/woden/internal/wsdl20/validation/WSDLDocumentValidatorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/woden/trunk/java/test/org/apache/woden/primer-hotelReservationService.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native



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