You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by kn...@apache.org on 2010/11/17 21:43:35 UTC
svn commit: r1036217 -
/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/override/DOMOverrideImpl.java
Author: knoaman
Date: Wed Nov 17 20:43:35 2010
New Revision: 1036217
URL: http://svn.apache.org/viewvc?rev=1036217&view=rev
Log:
Fixing another bug in xs:override where we did not report an error for duplicate children components
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/override/DOMOverrideImpl.java
Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/override/DOMOverrideImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/override/DOMOverrideImpl.java?rev=1036217&r1=1036216&r2=1036217&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/override/DOMOverrideImpl.java (original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/override/DOMOverrideImpl.java Wed Nov 17 20:43:35 2010
@@ -18,6 +18,7 @@
package org.apache.xerces.impl.xs.traversers.override;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
import org.apache.xerces.impl.xs.SchemaSymbols;
@@ -38,6 +39,10 @@ public final class DOMOverrideImpl exten
// records all the override schema components and it's properties
private final ArrayList fOverrideComponents = new ArrayList();
+ private final HashMap[] fOverrideComponentsMap = new HashMap[] {
+ null, new HashMap(), new HashMap(), new HashMap(),
+ new HashMap(), new HashMap(), new HashMap()
+ };
// overridden schema document
private Document fOverridenDoc;
@@ -78,6 +83,9 @@ public final class DOMOverrideImpl exten
public void clearState(){
fOverrideComponents.clear();
+ for (int i=1; i <fOverrideComponentsMap.length; i++) {
+ fOverrideComponentsMap[i].clear();
+ }
fOverridenDoc = null;
fOverrideElem = null;
hasPerformedTransformations = false;
@@ -214,9 +222,16 @@ public final class DOMOverrideImpl exten
* Create a new OverrideElemnt and record it into <override> components
*/
private void addOverrideElement(int componentType, Element elem) {
- String cName = DOMUtil.getAttrValue(elem, SchemaSymbols.ATT_NAME);
- OverrideElement e = new OverrideElement(componentType, elem,cName);
- fOverrideComponents.add(e);
+ final String cName = DOMUtil.getAttrValue(elem, SchemaSymbols.ATT_NAME);
+ final HashMap cMap = fOverrideComponentsMap[componentType];
+ if (cMap.get(cName) != null) {
+ fSchemaHandler.reportSchemaError("sch-props-correct.2", new Object []{cName}, elem);
+ }
+ else {
+ OverrideElement e = new OverrideElement(componentType, elem,cName);
+ fOverrideComponents.add(e);
+ cMap.put(cName, e);
+ }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org