You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yoko-commits@incubator.apache.org by mv...@apache.org on 2006/11/06 17:54:55 UTC

svn commit: r471802 - in /incubator/yoko/branches/idltowsdl_anon_refactor/tools/src: main/java/org/apache/yoko/tools/processors/idl/ test/java/org/apache/yoko/tools/processors/ test/resources/idl/

Author: mvescovi
Date: Mon Nov  6 09:54:54 2006
New Revision: 471802

URL: http://svn.apache.org/viewvc?view=rev&rev=471802
Log:
Adding support for IDL array type

Added:
    incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/Array.idl
    incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/expected_Array.wsdl   (with props)
Removed:
    incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypeSpecVisitor.java
    incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypeSpecVisitorBase.java
Modified:
    incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ArrayVisitor.java
    incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DeclaratorVisitor.java
    incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypedefVisitor.java
    incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/java/org/apache/yoko/tools/processors/IDLToWSDLGenerationTest.java

Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ArrayVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ArrayVisitor.java?view=diff&rev=471802&r1=471801&r2=471802
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ArrayVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/ArrayVisitor.java Mon Nov  6 09:54:54 2006
@@ -35,18 +35,25 @@
 import org.apache.ws.commons.schema.XmlSchemaType;
 
 import org.apache.yoko.wsdl.CorbaConstants;
+import org.apache.yoko.wsdl.CorbaTypeImpl;
 
 public class ArrayVisitor extends VisitorBase {
 
     private AST identifierNode;
-
+    private XmlSchemaType schemaType;
+    private CorbaTypeImpl corbaType;
+    
     public ArrayVisitor(Scope scope,
                         XmlSchemaCollection xmlSchemas,
                         XmlSchema xmlSchema,
                         TypeMappingType typeMapRef,
+                        XmlSchemaType schemaTypeRef,
+                        CorbaTypeImpl corbaTypeRef,
                         AST identifierNodeRef) {
         super(scope, xmlSchemas, xmlSchema, typeMapRef);
         identifierNode = identifierNodeRef;
+        schemaType = schemaTypeRef;
+        corbaType = corbaTypeRef;
     }
 
     public static boolean accept(AST node) {
@@ -61,34 +68,83 @@
         // <fixed_array_size> ::= "[" <positive_int_const> "]"
 
 
-        AST fixedArraySizeNode = node.getFirstChild();
-
-        Integer id = new Integer(1);
-        while (fixedArraySizeNode != null) {
-            Long size = new Long(fixedArraySizeNode.toString());
-            System.out.println("Size: " + size.toString() + " Id: " + id.toString());
+        AST firstSizeNode = node.getFirstChild();
+        AST nextSizeNode = firstSizeNode.getNextSibling();
+        int index = 0;
+        Types result = null;
+        
+        // process all anonarrays, skip first array as it might not be anonymous
+        if (nextSizeNode != null) {
+            result = doAnonarray(nextSizeNode, index, schemaType.getQName(), corbaType.getQName());
+        } else {
+            result = new Types();
+            result.setSchemaType(schemaType);
+            result.setCorbaType(corbaType);
+        }
+        
+        // process first array
+        Long size = new Long(firstSizeNode.toString());
+        XmlSchemaType stype = null;
+        CorbaTypeImpl ctype = null;
+        if (identifierNode != null) {
+            String name = identifierNode.toString();
+            stype = generateSchemaArray(name, size, result.getSchemaType().getQName());
+            ctype = generateCorbaArray(name, size, result.getCorbaType().getQName());
+        } else {
+            // anonymous array
+            String name = "_1_" + getScope().tail();
+            stype = generateSchemaArray(name, size, result.getSchemaType().getQName());
+            ctype = generateCorbaAnonarray(name, size, result.getCorbaType().getQName());            
+        }
+        
+        // add schemaType
+        schema.getItems().add(stype);
+        schema.addType(stype);
 
-            visit(fixedArraySizeNode);
+        // add corbaType
+        typeMap.getStructOrExceptionOrUnion().add(ctype);
+    }
 
+    private Types doAnonarray(AST node, int index, QName stype, QName ctype) {
+        Types result = new Types();
+        
+        if (node != null) {
+            
+            AST next = node.getNextSibling();
+            index++;
+          
+            // recursive call
+            result = doAnonarray(next, index, stype, ctype);
+            
+            Long size = new Long(node.toString());
+            Long id = new Long(index);
             String name = "_" + id.toString() + "_" + getScope().tail();
-            XmlSchemaType stype = generateSchemaArray(name, size);
-            Anonarray anonarray = generateCorbaAnonarray(name, size, stype.getQName());
+            
+            if (result.getSchemaType() == null) {
+                result.setSchemaType(generateSchemaArray(name, size, stype));
+            } else {
+                result.setSchemaType(generateSchemaArray(name, size, result.getSchemaType().getQName()));
+            }
+            
+            if (result.getCorbaType() == null) {
+                result.setCorbaType(generateCorbaAnonarray(name, size, ctype));
+            } else {
+                result.setCorbaType(generateCorbaAnonarray(name, size, result.getCorbaType().getQName()));
+            }
+            
 
             // add schemaType
-            schema.getItems().add(stype);
-            schema.addType(stype);
+            schema.getItems().add(result.getSchemaType());
+            schema.addType(result.getSchemaType());
 
             // add corbaType
-            typeMap.getStructOrExceptionOrUnion().add(anonarray);
-
-            fixedArraySizeNode = fixedArraySizeNode.getNextSibling();
-            id++;
+            typeMap.getStructOrExceptionOrUnion().add(result.getCorbaType());
         }
-
-
+        
+        return result;
     }
-
-    private XmlSchemaComplexType generateSchemaArray(String name, Long size) {
+    
+    private XmlSchemaComplexType generateSchemaArray(String name, Long size, QName type) {
         XmlSchemaComplexType complexType = new XmlSchemaComplexType(schema);
         complexType.setName(name);
 
@@ -98,7 +154,8 @@
         element.setMinOccurs(size);
         element.setMaxOccurs(size);
         element.setName("item");
-
+        element.setSchemaTypeName(type);
+        
         sequence.getItems().add(element);
 
         complexType.setParticle(sequence);
@@ -123,5 +180,36 @@
         anonarray.setBound(size);
         anonarray.setType(type);
         return anonarray;
+    }
+    
+    class Types {
+        private XmlSchemaType schemaType;
+        private CorbaTypeImpl corbaType;
+        
+        public Types() {
+            schemaType = null;
+            corbaType = null;
+        }
+        
+        public Types(XmlSchemaType stype, CorbaTypeImpl ctype) {
+            schemaType = stype;
+            corbaType = ctype;
+        }
+        
+        public void setSchemaType(XmlSchemaType stype) {
+            schemaType = stype;
+        }
+        
+        public void setCorbaType(CorbaTypeImpl ctype) {
+            corbaType = ctype;
+        }
+        
+        public XmlSchemaType getSchemaType() {
+            return schemaType;
+        }
+        
+        public CorbaTypeImpl getCorbaType() {
+            return corbaType;
+        }
     }
 }

Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DeclaratorVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DeclaratorVisitor.java?view=diff&rev=471802&r1=471801&r2=471802
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DeclaratorVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/DeclaratorVisitor.java Mon Nov  6 09:54:54 2006
@@ -19,6 +19,8 @@
 
 package org.apache.yoko.tools.processors.idl;
 
+//import javax.xml.namespace.QName;
+
 import antlr.collections.AST;
 
 import org.apache.schemas.yoko.bindings.corba.TypeMappingType;
@@ -38,6 +40,7 @@
     // <array_declarator> ::= <identifier> <fixed_array_size>+
     // <fixed_array_size> ::= "[" <positive_int_const> "]"
 
+
     private XmlSchemaType schemaType;
     private CorbaTypeImpl corbaType;
     
@@ -55,25 +58,48 @@
     // REVISIT: parameter node should be the first declarator node
     // and visit should loop through all declarators.
     public void visit(AST node) {
-
-//        // handle named or anonymous types
-//        String name = null;
-//        if (node == null) {
-//            // anonymous
-//            
-//            //name = "_1_" + getScope().tail();
-//            
-//        } else {
-//            name = node.toString();
+//        while (node != null) {
+//            // Need to make a copy of the schemaType and corbaType
+//            //XmlSchemaType stype = (XmlSchemaType) schemaType.clone();
+//
+//            // handle named or anonymous types
+//            String name = null;
+//            if (node == null) {
+//                // anonymous
+//                name = "_1_" + getScope().tail();
+//            } else {
+//                name = node.toString();
+//            }
+//
+//            // add schemaType
+//            schema.getItems().add(schemaType);
+//            schema.addType(schemaType);
+//            schemaType.setName(name);
+//            corbaType.setQName(new QName(typeMap.getTargetNamespace(), name));
+//
+//
+//            // add schemaType
+//            schema.getItems().add(schemaType);
+//            schema.addType(schemaType);
+//
+//
+//            // add corbaType
+//            typeMap.getStructOrExceptionOrUnion().add(corbaType);
+//
+//
+//            node = node.getNextSibling();
 //        }
-//        schemaType.setName(name);
-//        corbaType.setQName(new QName(typeMap.getTargetNamespace(), name));
-
-
+    
         if (ArrayVisitor.accept(node)) {
-            ArrayVisitor arrayVisitor = new ArrayVisitor(getScope(), schemas, schema, typeMap, node); 
+            ArrayVisitor arrayVisitor = new ArrayVisitor(getScope(),
+                                                         schemas,
+                                                         schema,
+                                                         typeMap,
+                                                         schemaType,
+                                                         corbaType,
+                                                         node); 
             arrayVisitor.visit(node);
-            
+
         } else {
             // add schemaType
             schema.getItems().add(schemaType);
@@ -84,5 +110,5 @@
         }
 
     }
-    
-}
+
+}
\ No newline at end of file

Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypedefVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypedefVisitor.java?view=diff&rev=471802&r1=471801&r2=471802
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypedefVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypedefVisitor.java Mon Nov  6 09:54:54 2006
@@ -65,12 +65,13 @@
         XmlSchemaType schemaType = typesVisitor.getSchemaType();
         CorbaTypeImpl corbaType = typesVisitor.getCorbaType();
         
+        Scope newScope = new Scope(getScope(), identifierNode);
         
         if (SequenceVisitor.accept(typeDeclaratorNode)
             || FixedVisitor.accept(typeDeclaratorNode)) {
             // Handle cases "typedef sequence"
             //              "typedef fixed"
-            DeclaratorVisitor declaratorVisitor = new DeclaratorVisitor(getScope(),
+            DeclaratorVisitor declaratorVisitor = new DeclaratorVisitor(newScope,
                                                                         schemas,
                                                                         schema,
                                                                         typeMap,
@@ -83,7 +84,7 @@
             //              "typedef wstring"
 
             if (StringVisitor.isBounded(typeDeclaratorNode)) {
-                DeclaratorVisitor declaratorVisitor = new DeclaratorVisitor(getScope(),
+                DeclaratorVisitor declaratorVisitor = new DeclaratorVisitor(newScope,
                                                                             schemas,
                                                                             schema,
                                                                             typeMap,
@@ -113,14 +114,18 @@
 
         } else {
             // typedef used to define an alias
-            generateAlias(identifierNode,
-                          schemaType,
-                          corbaType);
+            
+            // if declaring an array, do not generate aliases
+            if (!ArrayVisitor.accept(identifierNode)) {
+                generateAlias(identifierNode,
+                              schemaType,
+                              corbaType);
 
-            schemaType = getSchemaType();
-            corbaType = getCorbaType();
-        
-            DeclaratorVisitor declaratorVisitor = new DeclaratorVisitor(getScope(),
+                schemaType = getSchemaType();
+                corbaType = getCorbaType();
+            }
+            
+            DeclaratorVisitor declaratorVisitor = new DeclaratorVisitor(newScope,
                                                                         schemas,
                                                                         schema,
                                                                         typeMap,

Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/java/org/apache/yoko/tools/processors/IDLToWSDLGenerationTest.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/java/org/apache/yoko/tools/processors/IDLToWSDLGenerationTest.java?view=diff&rev=471802&r1=471801&r2=471802
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/java/org/apache/yoko/tools/processors/IDLToWSDLGenerationTest.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/java/org/apache/yoko/tools/processors/IDLToWSDLGenerationTest.java Mon Nov  6 09:54:54 2006
@@ -178,4 +178,7 @@
         testWSDLGeneration("/idl/Sequence.idl", "/idl/expected_Sequence.wsdl");
     }
 
+    public void testArrayGeneration() throws Exception {
+        testWSDLGeneration("/idl/Array.idl", "/idl/expected_Array.wsdl");
+    }
 }

Added: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/Array.idl
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/Array.idl?view=auto&rev=471802
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/Array.idl (added)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/Array.idl Mon Nov  6 09:54:54 2006
@@ -0,0 +1,37 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+ 
+
+typedef long LongArray[10];
+typedef long LongArrayArray[10][100];
+typedef long LongArrayArrayArray[10][100][1000];
+typedef long LongArrayArrayArrayArray[10][100][1000][10000];
+
+typedef short ShortArray[2];
+typedef short ShortArrayArray[2][4];
+typedef short ShortArrayArrayArrayArray[2][4][8];
+typedef short ShortArrayArrayArrayArrayArray[2][4][8][16];
+
+
+typedef long myLong;
+
+typedef myLong MyLongArray[10];
+typedef myLong MyLongArrayArray[10][100];
+typedef myLong MyLongArrayArrayArray[10][100][1000];
+typedef myLong MyLongArrayArrayArrayArray[10][100][1000][10000];

Added: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/expected_Array.wsdl
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/expected_Array.wsdl?view=auto&rev=471802
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/expected_Array.wsdl (added)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/expected_Array.wsdl Mon Nov  6 09:54:54 2006
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<wsdl:definitions targetNamespace="http://schemas.apache.org/yoko/idl/Array" xmlns:tns="http://schemas.apache.org/yoko/idl/Array" xmlns:corba="http://schemas.apache.org/yoko/bindings/corba" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+  <corba:typeMapping targetNamespace="http://schemas.apache.org/yoko/idl/Array/typemap">
+    <corba:array xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="10" repositoryID="IDL:LongArray:1.0" name="LongArray" type="corba:long" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="100" name="_1_LongArrayArray" type="corba:long" />
+    <corba:array xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="10" repositoryID="IDL:LongArrayArray:1.0" name="LongArrayArray" type="_1_LongArrayArray" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="1000" name="_2_LongArrayArrayArray" type="corba:long" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="100" name="_1_LongArrayArrayArray" type="_2_LongArrayArrayArray" />
+    <corba:array xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="10" repositoryID="IDL:LongArrayArrayArray:1.0" name="LongArrayArrayArray" type="_1_LongArrayArrayArray" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="10000" name="_3_LongArrayArrayArrayArray" type="corba:long" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="1000" name="_2_LongArrayArrayArrayArray" type="_3_LongArrayArrayArrayArray" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="100" name="_1_LongArrayArrayArrayArray" type="_2_LongArrayArrayArrayArray" />
+    <corba:array xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="10" repositoryID="IDL:LongArrayArrayArrayArray:1.0" name="LongArrayArrayArrayArray" type="_1_LongArrayArrayArrayArray" />
+    <corba:array xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="2" repositoryID="IDL:ShortArray:1.0" name="ShortArray" type="corba:short" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="4" name="_1_ShortArrayArray" type="corba:short" />
+    <corba:array xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="2" repositoryID="IDL:ShortArrayArray:1.0" name="ShortArrayArray" type="_1_ShortArrayArray" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="8" name="_2_ShortArrayArrayArrayArray" type="corba:short" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="4" name="_1_ShortArrayArrayArrayArray" type="_2_ShortArrayArrayArrayArray" />
+    <corba:array xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="2" repositoryID="IDL:ShortArrayArrayArrayArray:1.0" name="ShortArrayArrayArrayArray" type="_1_ShortArrayArrayArrayArray" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="16" name="_3_ShortArrayArrayArrayArrayArray" type="corba:short" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="8" name="_2_ShortArrayArrayArrayArrayArray" type="_3_ShortArrayArrayArrayArrayArray" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="4" name="_1_ShortArrayArrayArrayArrayArray" type="_2_ShortArrayArrayArrayArrayArray" />
+    <corba:array xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="2" repositoryID="IDL:ShortArrayArrayArrayArrayArray:1.0" name="ShortArrayArrayArrayArrayArray" type="_1_ShortArrayArrayArrayArrayArray" />
+    <corba:alias xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" basetype="corba:long" repositoryID="IDL:myLong:1.0" name="myLong" type="xs:int" />
+    <corba:array xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="10" repositoryID="IDL:MyLongArray:1.0" name="MyLongArray" type="myLong" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="100" name="_1_MyLongArrayArray" type="myLong" />
+    <corba:array xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="10" repositoryID="IDL:MyLongArrayArray:1.0" name="MyLongArrayArray" type="_1_MyLongArrayArray" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="1000" name="_2_MyLongArrayArrayArray" type="myLong" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="100" name="_1_MyLongArrayArrayArray" type="_2_MyLongArrayArrayArray" />
+    <corba:array xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="10" repositoryID="IDL:MyLongArrayArrayArray:1.0" name="MyLongArrayArrayArray" type="_1_MyLongArrayArrayArray" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="10000" name="_3_MyLongArrayArrayArrayArray" type="myLong" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="1000" name="_2_MyLongArrayArrayArrayArray" type="_3_MyLongArrayArrayArrayArray" />
+    <corba:anonarray xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="100" name="_1_MyLongArrayArrayArrayArray" type="_2_MyLongArrayArrayArrayArray" />
+    <corba:array xmlns="http://schemas.apache.org/yoko/idl/Array/typemap" bound="10" repositoryID="IDL:MyLongArrayArrayArrayArray:1.0" name="MyLongArrayArrayArrayArray" type="_1_MyLongArrayArrayArrayArray" />
+  </corba:typeMapping>
+  <wsdl:types>
+    <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://schemas.apache.org/yoko/idl/Array" xmlns="http://schemas.apache.org/yoko/idl/Array" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+      <xs:complexType name="LongArray">
+        <xs:sequence>
+          <xs:element maxOccurs="10" minOccurs="10" name="item" type="xs:int">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_1_LongArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="100" minOccurs="100" name="item" type="xs:int">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="LongArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="10" minOccurs="10" name="item" type="_1_LongArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_2_LongArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="1000" minOccurs="1000" name="item" type="xs:int">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_1_LongArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="100" minOccurs="100" name="item" type="_2_LongArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="LongArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="10" minOccurs="10" name="item" type="_1_LongArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_3_LongArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="10000" minOccurs="10000" name="item" type="xs:int">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_2_LongArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="1000" minOccurs="1000" name="item" type="_3_LongArrayArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_1_LongArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="100" minOccurs="100" name="item" type="_2_LongArrayArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="LongArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="10" minOccurs="10" name="item" type="_1_LongArrayArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="ShortArray">
+        <xs:sequence>
+          <xs:element maxOccurs="2" minOccurs="2" name="item" type="xs:short">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_1_ShortArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="4" minOccurs="4" name="item" type="xs:short">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="ShortArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="2" minOccurs="2" name="item" type="_1_ShortArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_2_ShortArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="8" minOccurs="8" name="item" type="xs:short">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_1_ShortArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="4" minOccurs="4" name="item" type="_2_ShortArrayArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="ShortArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="2" minOccurs="2" name="item" type="_1_ShortArrayArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_3_ShortArrayArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="16" minOccurs="16" name="item" type="xs:short">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_2_ShortArrayArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="8" minOccurs="8" name="item" type="_3_ShortArrayArrayArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_1_ShortArrayArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="4" minOccurs="4" name="item" type="_2_ShortArrayArrayArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="ShortArrayArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="2" minOccurs="2" name="item" type="_1_ShortArrayArrayArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:simpleType name="myLong">
+        <xs:restriction base="xs:int">
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:complexType name="MyLongArray">
+        <xs:sequence>
+          <xs:element maxOccurs="10" minOccurs="10" name="item" type="myLong">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_1_MyLongArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="100" minOccurs="100" name="item" type="myLong">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="MyLongArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="10" minOccurs="10" name="item" type="_1_MyLongArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_2_MyLongArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="1000" minOccurs="1000" name="item" type="myLong">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_1_MyLongArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="100" minOccurs="100" name="item" type="_2_MyLongArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="MyLongArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="10" minOccurs="10" name="item" type="_1_MyLongArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_3_MyLongArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="10000" minOccurs="10000" name="item" type="myLong">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_2_MyLongArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="1000" minOccurs="1000" name="item" type="_3_MyLongArrayArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="_1_MyLongArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="100" minOccurs="100" name="item" type="_2_MyLongArrayArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="MyLongArrayArrayArrayArray">
+        <xs:sequence>
+          <xs:element maxOccurs="10" minOccurs="10" name="item" type="_1_MyLongArrayArrayArrayArray">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+    </xs:schema>
+  </wsdl:types>
+</wsdl:definitions>

Propchange: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/expected_Array.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/expected_Array.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml