Hi,
Please find patch for "XSDUniqueOrKeyTraverser", "XSDKeyRefTraverser".
Added some of the error handling checks for different IdentityConstraints like
key,keyref,Unique. Error is reported when attributes like "name" , "refer" are
not given.
regards
Neeraj Bajaj
---------------------
Sun Microsystems, inc.
Ph.91-80-2298989 x87425.
XSDKeyrefTraverser.java
Description: XSDKeyrefTraverser.java
XSDUniqueOrKeyTraverser.java
Description: XSDUniqueOrKeyTraverser.java
Index: XSDUniqueOrKeyTraverser.java
===================================================================
RCS file:
/home/cvspublic/xml-xerces/java/src/org/apache/xerces/impl/v2/XSDUniqueOrKeyTraverser.java,v
retrieving revision 1.7
diff -u -r1.7 XSDUniqueOrKeyTraverser.java
--- XSDUniqueOrKeyTraverser.java 2001/10/10 15:14:42 1.7
+++ XSDUniqueOrKeyTraverser.java 2001/10/17 10:09:29
@@ -86,6 +86,14 @@
// create identity constraint
String uName = (String)attrValues[XSAttributeChecker.ATTIDX_NAME];
+
+ if(uName == null){
+ reportSchemaError("s4s-att-must-appear", new Object []
+{DOMUtil.getLocalName(uElem) , SchemaSymbols.ATT_NAME });
+ //return this array back to pool
+ fAttrChecker.returnAttrArray(attrValues, schemaDoc);
+ return;
+ }
+
UniqueOrKey uniqueOrKey = null;
if(DOMUtil.getLocalName(uElem).equals(SchemaSymbols.ELT_UNIQUE)) {
uniqueOrKey = new UniqueOrKey(uName, element.fName,
IdentityConstraint.UNIQUE);
Index: XSDKeyrefTraverser.java
===================================================================
RCS file:
/home/cvspublic/xml-xerces/java/src/org/apache/xerces/impl/v2/XSDKeyrefTraverser.java,v
retrieving revision 1.7
diff -u -r1.7 XSDKeyrefTraverser.java
--- XSDKeyrefTraverser.java 2001/10/10 15:14:42 1.7
+++ XSDKeyrefTraverser.java 2001/10/17 10:11:38
@@ -85,7 +85,19 @@
// create identity constraint
String krName = (String)attrValues[XSAttributeChecker.ATTIDX_NAME];
+ if(krName == null){
+ reportSchemaError("s4s-att-must-appear", new Object []
+{SchemaSymbols.ELT_KEYREF , SchemaSymbols.ATT_NAME });
+ //return this array back to pool
+ fAttrChecker.returnAttrArray(attrValues, schemaDoc);
+ return;
+ }
QName kName = (QName)attrValues[XSAttributeChecker.ATTIDX_REFER];
+ if(kName == null){
+ reportSchemaError("s4s-att-must-appear", new Object []
+{SchemaSymbols.ELT_KEYREF , SchemaSymbols.ATT_REFER });
+ //return this array back to pool
+ fAttrChecker.returnAttrArray(attrValues, schemaDoc);
+ return;
+ }
UniqueOrKey key = (UniqueOrKey)fSchemaHandler.getGlobalDecl(schemaDoc,
XSDHandler.IDENTITYCONSTRAINT_TYPE, kName);
if(key == null) {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
