You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2008/07/31 00:06:44 UTC

svn commit: r681219 - /tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypeHelper.java

Author: rfeng
Date: Wed Jul 30 15:06:44 2008
New Revision: 681219

URL: http://svn.apache.org/viewvc?rev=681219&view=rev
Log:
Add the workaround to deal with annoymous XSD types

Modified:
    tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypeHelper.java

Modified: tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypeHelper.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypeHelper.java?rev=681219&r1=681218&r2=681219&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypeHelper.java (original)
+++ tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypeHelper.java Wed Jul 30 15:06:44 2008
@@ -159,11 +159,24 @@
             }
             // make sure all the required types are defined in the resolved schema
             for (Type type : entry.getValue()) {
-                QName typeName = new QName(type.getURI(), type.getName());
-                if (resolved.getXmlSchemaType(typeName) == null) {
-                    //FIXME: create a checked exception and propagate it back up to the activator
-                    throw new RuntimeException("No XSD found for " + typeName.toString());
+                String name = xsdHelper.getLocalName(type);
+                QName typeName = null;
+                if (name.endsWith("_._type")) {
+                    // FIXME: Anonymous tyype
+                    name = name.substring(0, name.length() - "_._type".length());
+                    typeName = new QName(type.getURI(), name);
+                    if (resolved.getXmlSchemaElement(typeName) == null) {
+                        //FIXME: create a checked exception and propagate it back up to the activator
+                        throw new RuntimeException("No XSD found for " + typeName.toString());
+                    }
+                } else {
+                    typeName = new QName(type.getURI(), name);
+                    if (resolved.getXmlSchemaType(typeName) == null) {
+                        //FIXME: create a checked exception and propagate it back up to the activator
+                        throw new RuntimeException("No XSD found for " + typeName.toString());
+                    }
                 }
+
             }
             definitions.add(resolved);
         }