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.

Attachment: XSDKeyrefTraverser.java
Description: XSDKeyrefTraverser.java

Attachment: 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]

Reply via email to