Author: dims
Date: Fri Feb 23 07:43:59 2007
New Revision: 510989

URL: http://svn.apache.org/viewvc?view=rev&rev=510989
Log:
Fix for WSCOMMONS-149 - SchemaBuilder does not parse all the 'key' and 'keyref' 
definitions

Modified:
    
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java

Modified: 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java?view=diff&rev=510989&r1=510988&r2=510989
==============================================================================
--- 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
 (original)
+++ 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
 Fri Feb 23 07:43:59 2007
@@ -1370,32 +1370,30 @@
             element.schemaType = handleComplexType(schema, complexTypeEl, 
schemaEl);
         }
 
-        if ((keyEl =
-                XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 
"key")) != null) {
-
-            element.constraints.add(handleConstraint(keyEl, "Key"));
+        if ((keyEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 
"key")) != null) {
+               while(keyEl != null) {
+                       element.constraints.add(handleConstraint(keyEl, "Key"));
+                       keyEl = XDOMUtil.getNextSiblingElement(keyEl, "key");
+               }
         }
 
         if ((keyrefEl = XDOMUtil.getFirstChildElementNS(el, 
XmlSchema.SCHEMA_NS, "keyref")) != null) {
-
-            XmlSchemaKeyref keyRef =
-                    (XmlSchemaKeyref) handleConstraint(keyrefEl,
-                            "Keyref");
-
-            if (el.hasAttribute("refer")) {
-                String name = el.getAttribute("refer");
-                keyRef.refer = getRefQName(name, el);
-            }
-
-            element.constraints.add(keyRef);
-
+               while(keyrefEl != null) {
+                   XmlSchemaKeyref keyRef = (XmlSchemaKeyref) 
handleConstraint(keyrefEl, "Keyref");
+                   if(keyrefEl.hasAttribute("refer")) {
+                           String name = keyrefEl.getAttribute("refer");
+                           keyRef.refer = getRefQName(name, el);
+                   }
+                   element.constraints.add(keyRef);
+                   keyrefEl = XDOMUtil.getNextSiblingElement(keyrefEl, 
"keyref");
+               }
         }
 
-        if ((uniqueEl =
-                XDOMUtil.getFirstChildElementNS(el,
-                        XmlSchema.SCHEMA_NS, "unique")) != null) {
-
-            element.constraints.add(handleConstraint(uniqueEl, "Unique"));
+        if ((uniqueEl = XDOMUtil.getFirstChildElementNS(el, 
XmlSchema.SCHEMA_NS, "unique")) != null) {
+               while(uniqueEl != null) {
+                       element.constraints.add(handleConstraint(uniqueEl, 
"Unique"));
+                       uniqueEl = XDOMUtil.getNextSiblingElement(uniqueEl, 
"unique");
+               }
         }
 
         if (el.hasAttribute("abstract")) {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to