Index: XMLDTDProcessor.java
===================================================================
RCS file: /home/cvspublic/xml-xerces/java/src/org/apache/xerces/impl/dtd/XMLDTDProcessor.java,v
retrieving revision 1.10
diff -u -r1.10 XMLDTDProcessor.java
--- XMLDTDProcessor.java	7 Nov 2003 00:26:18 -0000	1.10
+++ XMLDTDProcessor.java	7 Nov 2003 23:31:54 -0000
@@ -266,6 +263,9 @@
     /** Notation declaration hash. */
     private Hashtable fNDataDeclNotations = new Hashtable();
 
+    /** Duplicate notations. */
+    private int fDuplicateNotationCount = 0;
+    
     /** DTD element declaration name. */
     private String fDTDElementDeclName = null;
@@ -1229,13 +1204,23 @@
      */
     public void notationDecl(String name, XMLResourceIdentifier identifier,
                              Augmentations augs) throws XNIException {
+		
+		if (fValidation) {
+
+            DTDGrammar grammar = (fDTDGrammar != null? fDTDGrammar:fGrammarBucket.getActiveGrammar());
+            int index = grammar.getNotationDeclIndex( name);
+
+            if (index != -1) {
+				fDuplicateNotationCount++;
+			}
+		}	
 
         // call handlers
         if(fDTDGrammar != null) 
             fDTDGrammar.notationDecl(name, identifier, augs);
-        if (fDTDHandler != null) {
+        if (fDTDHandler != null) 
             fDTDHandler.notationDecl(name, identifier, augs);
-        }
+
 
     } // notationDecl(String,XMLResourceIdentifier, Augmentations)
 
@@ -1334,6 +1319,14 @@
                                                new Object[]{attributeName, notation},
                                                XMLErrorReporter.SEVERITY_ERROR);
                 }
+                
+				//VC: Unique Notation Name
+	            if (fDuplicateNotationCount > 0) {
+	                fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,
+	                                           "UniqueNotationName",
+	                                           new Object[]{notation, new Integer(fDuplicateNotationCount)},
+	                                           XMLErrorReporter.SEVERITY_ERROR);
+	            }
             }
 
             fTableOfIDAttributeNames = null;//should be safe to release these references
