You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Andrey Utkin (JIRA)" <de...@tuscany.apache.org> on 2009/04/16 05:48:16 UTC

[jira] Created: (TUSCANY-2969) few improvements of generation xsd for dynamic types with compound properties

few improvements of generation xsd for dynamic types with compound properties
-----------------------------------------------------------------------------

                 Key: TUSCANY-2969
                 URL: https://issues.apache.org/jira/browse/TUSCANY-2969
             Project: Tuscany
          Issue Type: Bug
          Components: Java SDO Implementation
    Affects Versions: Java-SDO-1.1
            Reporter: Andrey Utkin


1. There is class cast exception in 
org.apache.tuscany.sdo.helper.SchemaBuilder.handleBaseExtn(XSDSchema, Type, XSDComplexTypeDefinition).

2. Some time generated XSD schema is incomplete. 
use case:
1. Define dynamic type with more than one compound properties defined as dynamic types as well.
2. call XSDHelper.generate(type). 
3. Resulting XSD include xs:complexType defs for compound properties. But some of them may be empty, i.e.: 
<xs:complexType abstract="false" name="compound_property_type_name" />
instead of
<xs:complexType abstract="false" name="compound_property_type_name" >
<xs:sequence>
...
</xs:complexType>
It seems that problem is incorrect API usage in
org.apache.tuscany.sdo.helper.SchemaBuilder.buildComplexSchemaType(Type):

Patch to resolve  both problems:




Index: SchemaBuilder.java
===================================================================
--- SchemaBuilder.java	(revision 149)
+++ SchemaBuilder.java	(revision 150)
@@ -338,7 +338,7 @@
             complexType.setTargetNamespace(targetNamespace);     
             complexType.setAbstract(dataType.isAbstract());
             
-            xmlSchema.getTypeDefinitions().add(complexType);
+            //xmlSchema.getTypeDefinitions().add(complexType);
             xmlSchema.getContents().add(complexType);
             
             complexType.updateElement();
@@ -730,7 +730,7 @@
             }
             else
             {
-                complexType.setBaseTypeDefinition((XSDSimpleTypeDefinition)typeTable.
+                complexType.setBaseTypeDefinition((XSDComplexTypeDefinition)typeTable.
                     getXSDTypeDef(baseSchemaType.getNamespaceURI(),baseSchemaType.getLocalPart()));
                 
             }    




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.