Index: org/apache/ws/jaxme/xs/xml/XsESchema.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/XsESchema.java,v
retrieving revision 1.3
diff -u -r1.3 XsESchema.java
--- org/apache/ws/jaxme/xs/xml/XsESchema.java	16 Feb 2004 23:39:46 -0000	1.3
+++ org/apache/ws/jaxme/xs/xml/XsESchema.java	19 Aug 2004 17:50:20 -0000
@@ -140,6 +140,7 @@
   public Object[] getChilds();
 
   public void setTargetNamespace(XsAnyURI pAnyURI);
+  public XsQName checkTargetNamespace(XsQName name);
   public void setVersion(XsToken pToken);
   public void setId(XsID pId);
   public void setFinalDefault(XsDerivationSet pSet);
Index: org/apache/ws/jaxme/xs/xml/impl/XsEKeyrefImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsEKeyrefImpl.java,v
retrieving revision 1.2
diff -u -r1.2 XsEKeyrefImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsEKeyrefImpl.java	16 Feb 2004 23:39:44 -0000	1.2
+++ org/apache/ws/jaxme/xs/xml/impl/XsEKeyrefImpl.java	19 Aug 2004 17:50:20 -0000
@@ -55,7 +55,7 @@
   }
 
   public XsQName getRefer() {
-    return refer;
+  	return getXsESchema().checkTargetNamespace(refer);
   }
 
   public void validate() {
Index: org/apache/ws/jaxme/xs/xml/impl/XsEListImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsEListImpl.java,v
retrieving revision 1.2
diff -u -r1.2 XsEListImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsEListImpl.java	16 Feb 2004 23:39:44 -0000	1.2
+++ org/apache/ws/jaxme/xs/xml/impl/XsEListImpl.java	19 Aug 2004 17:50:20 -0000
@@ -68,7 +68,7 @@
   }
 
   public XsQName getItemType() {
-    return itemType;
+    return getXsESchema().checkTargetNamespace(itemType);
   }
 
   public XsTLocalSimpleType createSimpleType() {
Index: org/apache/ws/jaxme/xs/xml/impl/XsERestrictionImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsERestrictionImpl.java,v
retrieving revision 1.2
diff -u -r1.2 XsERestrictionImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsERestrictionImpl.java	16 Feb 2004 23:39:44 -0000	1.2
+++ org/apache/ws/jaxme/xs/xml/impl/XsERestrictionImpl.java	19 Aug 2004 17:50:21 -0000
@@ -96,7 +96,7 @@
   }
 
   public XsQName getBase() {
-    return base;
+    return getXsESchema().checkTargetNamespace(base);
   }
 
   public XsTLocalSimpleType createSimpleType() throws SAXException {
Index: org/apache/ws/jaxme/xs/xml/impl/XsESchemaImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsESchemaImpl.java,v
retrieving revision 1.5
diff -u -r1.5 XsESchemaImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsESchemaImpl.java	16 Feb 2004 23:39:44 -0000	1.5
+++ org/apache/ws/jaxme/xs/xml/impl/XsESchemaImpl.java	19 Aug 2004 17:50:21 -0000
@@ -112,6 +112,7 @@
  */
 public class XsESchemaImpl extends XsTOpenAttrsImpl implements XsESchema {
   private final XSContext context;
+  private XsAnyURI overridenTargetNamespace;
   private XsAnyURI targetNamespace;
   private String targetNamespacePrefix;
   private XsToken version;
@@ -226,7 +227,12 @@
   public XsAnyURI getTargetNamespace() { return targetNamespace; }
   public String getTargetNamespacePrefix() { return targetNamespacePrefix; }
   public void setTargetNamespace(XsAnyURI pAnyURI) {
-    targetNamespace = pAnyURI;
+  	
+  	if (targetNamespace == null && pAnyURI != null){
+  		overridenTargetNamespace = pAnyURI;
+  	}
+  	
+  	targetNamespace = pAnyURI;
     if (targetNamespace == null) {
       targetNamespacePrefix = null;
     } else {
@@ -234,6 +240,18 @@
       targetNamespacePrefix = nss.getPrefix(targetNamespace.toString());
     }
   }
+	/* 
+	 * @see org.apache.ws.jaxme.xs.xml.XsESchema#checkTargetNamespace(org.apache.ws.jaxme.xs.xml.XsQName)
+	 */
+	public XsQName checkTargetNamespace(XsQName name) {
+		
+		if (name == null) return null;
+		XsQName result = name;
+		if (name.getNamespaceURI().equals("") && overridenTargetNamespace != null){
+			result = new XsQName(overridenTargetNamespace, name.getLocalName());
+		} 
+		return result;
+	}
   public XsToken getVersion() { return version; }
   public void setVersion(XsToken pToken) { version = pToken; }
   public XmlLang getLang() { return language; }
Index: org/apache/ws/jaxme/xs/xml/impl/XsEUnionImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsEUnionImpl.java,v
retrieving revision 1.2
diff -u -r1.2 XsEUnionImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsEUnionImpl.java	16 Feb 2004 23:39:44 -0000	1.2
+++ org/apache/ws/jaxme/xs/xml/impl/XsEUnionImpl.java	19 Aug 2004 17:50:21 -0000
@@ -108,6 +110,11 @@
     if (memberTypes == null) {
       return null;
     }
-    return (XsQName[]) memberTypes.toArray(new XsQName[memberTypes.size()]);
+    XsQName[] result = (XsQName[]) memberTypes.toArray(new XsQName[memberTypes.size()]);
+    for (int resultIndex = 0; resultIndex < result.length; resultIndex++){
+    	result[resultIndex] = getXsESchema().checkTargetNamespace(result[resultIndex]);
+    }
+    
+    return result;
   }
 }
Index: org/apache/ws/jaxme/xs/xml/impl/XsTAttributeGroupImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsTAttributeGroupImpl.java,v
retrieving revision 1.2
diff -u -r1.2 XsTAttributeGroupImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsTAttributeGroupImpl.java	16 Feb 2004 23:39:44 -0000	1.2
+++ org/apache/ws/jaxme/xs/xml/impl/XsTAttributeGroupImpl.java	19 Aug 2004 17:50:22 -0000
@@ -62,7 +62,8 @@
   }
 
   public XsQName getRef() {
-    return defRef.getRef();
+  	
+    return getXsESchema().checkTargetNamespace(defRef.getRef());
   }
 
   public XsTAttribute createAttribute() {
Index: org/apache/ws/jaxme/xs/xml/impl/XsTAttributeGroupRefImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsTAttributeGroupRefImpl.java,v
retrieving revision 1.2
diff -u -r1.2 XsTAttributeGroupRefImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsTAttributeGroupRefImpl.java	16 Feb 2004 23:39:44 -0000	1.2
+++ org/apache/ws/jaxme/xs/xml/impl/XsTAttributeGroupRefImpl.java	19 Aug 2004 17:50:22 -0000
@@ -51,7 +51,7 @@
   public void setRef(String pRef) throws SAXException {
     setRef(XsObjectImpl.asXsQName(getLocator(), getNamespaceSupport(), pRef));
   }
-  public XsQName getRef() { return ref; }
+  public XsQName getRef() { return getXsESchema().checkTargetNamespace(ref); }
   public void validate() {
     if (ref == null) {
       throw new NullPointerException("Missing attribute: 'ref'");
Index: org/apache/ws/jaxme/xs/xml/impl/XsTAttributeImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsTAttributeImpl.java,v
retrieving revision 1.3
diff -u -r1.3 XsTAttributeImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsTAttributeImpl.java	16 Feb 2004 23:39:44 -0000	1.3
+++ org/apache/ws/jaxme/xs/xml/impl/XsTAttributeImpl.java	19 Aug 2004 17:50:22 -0000
@@ -91,7 +91,7 @@
   }
 
   public XsQName getType() {
-    return type;
+    return getXsESchema().checkTargetNamespace(type);
   }
 
   public void setUse(Use pUse) {
@@ -147,7 +147,7 @@
   }
 
   public XsQName getRef() {
-    return ref;
+    return getXsESchema().checkTargetNamespace(ref);
   }
 
   public boolean isGlobal() { return isTopLevelObject(); }
Index: org/apache/ws/jaxme/xs/xml/impl/XsTElementImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsTElementImpl.java,v
retrieving revision 1.4
diff -u -r1.4 XsTElementImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsTElementImpl.java	16 Feb 2004 23:39:44 -0000	1.4
+++ org/apache/ws/jaxme/xs/xml/impl/XsTElementImpl.java	19 Aug 2004 17:50:22 -0000
@@ -133,7 +133,8 @@
   }
 
   public XsQName getType() {
-    return type;
+  	
+    return getXsESchema().checkTargetNamespace(type);
   }
 
   public void setSubstitutionGroup(XsQName pSubstitutionGroup) throws SAXException {
@@ -145,7 +146,7 @@
   }
 
   public XsQName getSubstitutionGroup() {
-    return substitutionGroup;
+    return getXsESchema().checkTargetNamespace(substitutionGroup);
   }
 
   public void setDefault(String pDefault) {
@@ -230,7 +231,7 @@
   }
 
   public XsQName getRef() {
-    return defRef.getRef();
+    return getXsESchema().checkTargetNamespace(defRef.getRef());
   }
 
   public void setMaxOccurs(String pMaxOccurs) {
Index: org/apache/ws/jaxme/xs/xml/impl/XsTExtensionTypeImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsTExtensionTypeImpl.java,v
retrieving revision 1.2
diff -u -r1.2 XsTExtensionTypeImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsTExtensionTypeImpl.java	16 Feb 2004 23:39:44 -0000	1.2
+++ org/apache/ws/jaxme/xs/xml/impl/XsTExtensionTypeImpl.java	19 Aug 2004 17:50:23 -0000
@@ -58,7 +58,7 @@
   }
 
   public XsQName getBase() {
-    return base;
+    return getXsESchema().checkTargetNamespace(base);
   }
 
   public XsTGroupRef createGroup() {
Index: org/apache/ws/jaxme/xs/xml/impl/XsTGroupImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsTGroupImpl.java,v
retrieving revision 1.2
diff -u -r1.2 XsTGroupImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsTGroupImpl.java	16 Feb 2004 23:39:44 -0000	1.2
+++ org/apache/ws/jaxme/xs/xml/impl/XsTGroupImpl.java	19 Aug 2004 17:50:23 -0000
@@ -71,7 +71,7 @@
   }
 
   public XsQName getRef() {
-    return defRef.getRef();
+    return getXsESchema().checkTargetNamespace(defRef.getRef());
   }
 
   public void setMaxOccurs(String pMaxOccurs) {
Index: org/apache/ws/jaxme/xs/xml/impl/XsTRestrictionTypeImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsTRestrictionTypeImpl.java,v
retrieving revision 1.2
diff -u -r1.2 XsTRestrictionTypeImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsTRestrictionTypeImpl.java	16 Feb 2004 23:39:44 -0000	1.2
+++ org/apache/ws/jaxme/xs/xml/impl/XsTRestrictionTypeImpl.java	19 Aug 2004 17:50:23 -0000
@@ -64,7 +64,7 @@
   }
 
   public XsQName getBase() {
-    return base;
+  	return getXsESchema().checkTargetNamespace(base);
   }
 
   public XsTGroupRef createGroup() {
Index: org/apache/ws/jaxme/xs/xml/impl/XsTSimpleExtensionTypeImpl.java
===================================================================
RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsTSimpleExtensionTypeImpl.java,v
retrieving revision 1.2
diff -u -r1.2 XsTSimpleExtensionTypeImpl.java
--- org/apache/ws/jaxme/xs/xml/impl/XsTSimpleExtensionTypeImpl.java	16 Feb 2004 23:39:44 -0000	1.2
+++ org/apache/ws/jaxme/xs/xml/impl/XsTSimpleExtensionTypeImpl.java	19 Aug 2004 17:50:23 -0000
@@ -61,7 +61,7 @@
   }
 
   public XsQName getBase() {
-    return base;
+    return getXsESchema().checkTargetNamespace(base);
   }
 
   public void validate() throws SAXException {
