Index: org/apache/ws/jaxme/xs/impl/XSLogicalParser.java =================================================================== RCS file: /home/cvspublic/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/impl/XSLogicalParser.java,v retrieving revision 1.18 diff -u -r1.18 XSLogicalParser.java --- org/apache/ws/jaxme/xs/impl/XSLogicalParser.java 16 Feb 2004 23:39:43 -0000 1.18 +++ org/apache/ws/jaxme/xs/impl/XSLogicalParser.java 19 Aug 2004 17:50:16 -0000 @@ -359,7 +359,8 @@ XsESchema includedSchema = parseSyntax(schemaSource); XsAnyURI incNamespace = includedSchema.getTargetNamespace(); if (incNamespace == null) { - includedSchema.setTargetNamespace(includedSchema.getTargetNamespace()); + includedSchema.setTargetNamespace(pIncludingSchema.getTargetNamespace()); + } else { XsAnyURI myNamespace = includedSchema.getTargetNamespace(); if (!incNamespace.equals(myNamespace)) { 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 {