? .classpath
? .project
? bin
? relativeXsiLocation.patch
? src/org/apache/xerces/dom/diff
? src/org/apache/xerces/dom/DOMNormalizer.patch
Index: src/org/apache/xerces/dom/DOMNormalizer.java
===================================================================
RCS file: /home/cvspublic/xml-xerces/java/src/org/apache/xerces/dom/DOMNormalizer.java,v
retrieving revision 1.33
diff -u -u -r1.33 DOMNormalizer.java
--- src/org/apache/xerces/dom/DOMNormalizer.java	8 May 2003 19:52:40 -0000	1.33
+++ src/org/apache/xerces/dom/DOMNormalizer.java	10 Nov 2003 20:09:20 -0000
@@ -66,6 +66,7 @@
 import org.apache.xerces.impl.RevalidationHandler;
 import org.apache.xerces.impl.dv.XSSimpleType;
 import org.apache.xerces.impl.xs.psvi.XSTypeDefinition;
+import org.apache.xerces.impl.xs.util.SimpleLocator;
 import org.apache.xerces.util.AugmentationsImpl;
 import org.apache.xerces.util.NamespaceSupport;
 import org.apache.xerces.util.SymbolTable;
@@ -225,9 +226,10 @@
 
 		fErrorHandler = (DOMErrorHandler) fConfiguration.getParameter("error-handler");
 		if (fValidationHandler != null) {
-			fValidationHandler.setBaseURI(fDocument.fDocumentURI);
 			fValidationHandler.setDocumentHandler(this);
-			fValidationHandler.startDocument(null, fDocument.encoding, fNamespaceContext, null);
+			fValidationHandler.startDocument(
+                    new SimpleLocator(fDocument.fDocumentURI, fDocument.fDocumentURI, -1, -1 ),
+                    fDocument.encoding, fNamespaceContext, null);
 
 		}
 		try {
Index: src/org/apache/xerces/impl/RevalidationHandler.java
===================================================================
RCS file: /home/cvspublic/xml-xerces/java/src/org/apache/xerces/impl/RevalidationHandler.java,v
retrieving revision 1.4
diff -u -u -r1.4 RevalidationHandler.java
--- src/org/apache/xerces/impl/RevalidationHandler.java	8 May 2003 20:11:54 -0000	1.4
+++ src/org/apache/xerces/impl/RevalidationHandler.java	10 Nov 2003 20:09:20 -0000
@@ -69,13 +69,6 @@
 public interface RevalidationHandler extends XMLDocumentFilter {
 
     /**
-     * Set the base URI of the document
-     * 
-     * @param base
-     */
-    public void setBaseURI(String base);
-    
-    /**
      * Character content.
      * 
      * @param data   The character data.
Index: src/org/apache/xerces/impl/xs/XMLSchemaValidator.java
===================================================================
RCS file: /home/cvspublic/xml-xerces/java/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java,v
retrieving revision 1.146
diff -u -u -r1.146 XMLSchemaValidator.java
--- src/org/apache/xerces/impl/xs/XMLSchemaValidator.java	7 Nov 2003 00:26:18 -0000	1.146
+++ src/org/apache/xerces/impl/xs/XMLSchemaValidator.java	10 Nov 2003 20:09:21 -0000
@@ -316,6 +316,11 @@
 
 	/** Symbol table. */
 	protected SymbolTable fSymbolTable;
+    
+    /**
+     * While parsing a document, keep the location of the document.
+     */
+    private XMLLocator fLocator;
 
 	/**
 	 * A wrapper of the standard error reporter. We'll store all schema errors
@@ -443,8 +448,6 @@
 	protected final XSDDescription fXSDDescription = new XSDDescription();
 	protected final Hashtable fLocationPairs = new Hashtable();
 
-	/** Base URI for the DOM revalidation*/
-	protected String fBaseURI = null;
 
 	// handlers
 
@@ -607,6 +610,7 @@
 		fValidationState.setNamespaceSupport(namespaceContext);
 		fState4XsiType.setNamespaceSupport(namespaceContext);
 		fState4ApplyDefault.setNamespaceSupport(namespaceContext);
+        fLocator = locator;
 
 		handleStartDocument(locator, encoding);
 		// call handlers
@@ -845,6 +849,7 @@
 		if (fDocumentHandler != null) {
 			fDocumentHandler.endDocument(augs);
 		}
+        fLocator = null;
 
 	} // endDocument(Augmentations)
 
@@ -852,10 +857,6 @@
 	// DOMRevalidationHandler methods
 	//
 
-	public void setBaseURI(String base) {
-		fBaseURI = base;
-	}
-
 	public boolean characterData(String data, Augmentations augs) {
 
 		fSawText = fSawText || data.length() > 0;
@@ -1267,7 +1268,6 @@
 		fInCDATA = false;
 
 		fMatcherStack.clear();
-		fBaseURI = null;
 		
 		// get error reporter
 		fXSIErrorReporter.reset((XMLErrorReporter) componentManager.getProperty(ERROR_REPORTER));
@@ -2312,9 +2312,9 @@
 			fXSDDescription.fEnclosedElementName = enclosingElement;
 			fXSDDescription.fTriggeringComponent = triggeringComponet;
 			fXSDDescription.fAttributes = attributes;
-			if (fBaseURI != null) {
-				fXSDDescription.setBaseSystemId(fBaseURI);
-			}
+            if (fLocator != null) {
+                fXSDDescription.setBaseSystemId(fLocator.getExpandedSystemId());
+            }
 
 			String[] temp = null;
 			Object locationArray =
