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/09 12:08:28 UTC

svn commit: r472876 - 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: Thu Nov  9 04:08:26 2006
New Revision: 472876

URL: http://svn.apache.org/viewvc?view=rev&rev=472876
Log:
Adding support for IDL anonymous unbounded and bounded strings.

Added:
    incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/Anonstring.idl
    incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/expected_Anonstring.wsdl   (with props)
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/OperationVisitor.java
    incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SequenceVisitor.java
    incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StringVisitor.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=472876&r1=472875&r2=472876
==============================================================================
--- 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 Thu Nov  9 04:08:26 2006
@@ -202,6 +202,7 @@
         name.append(getScope().tail());
         return name.toString();
     }
+    
     class Types {
         private XmlSchemaType schemaType;
         private CorbaTypeImpl corbaType;

Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java?view=diff&rev=472876&r1=472875&r2=472876
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/OperationVisitor.java Thu Nov  9 04:08:26 2006
@@ -261,10 +261,8 @@
     private Part generateInputPart(Message inputMessage, XmlSchemaElement element) {
         // message - part
         Part part = definition.createPart();
-        //QName element = inputMsg.getQName();
         part.setName(IN_PARAMETER);
         part.setElementName(element.getQName());
-        //typesVisitor.addWrapper(element, inWrappingSequence);
         inputMessage.addPart(part);
         return part;        
     }
@@ -272,10 +270,8 @@
     private Part generateOutputPart(Message outputMessage, XmlSchemaElement element) {
         // message - part
         Part part = definition.createPart();
-        //QName element = outputMsg.getQName();
         part.setName(OUT_PARAMETER);
         part.setElementName(element.getQName());
-        //typesVisitor.addWrapper(element, outWrappingSequence);
         outputMessage.addPart(part);
         return part;
     }
@@ -310,7 +306,6 @@
                                         String name) {
         XmlSchemaElement element = new XmlSchemaElement();
         element.setName(name);
-        //element.setQName(new QName(schema.getTargetNamespace(), name));
         element.setSchemaTypeName(schemaType.getQName());
         
         schemaSequence.getItems().add(element);

Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SequenceVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SequenceVisitor.java?view=diff&rev=472876&r1=472875&r2=472876
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SequenceVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/SequenceVisitor.java Thu Nov  9 04:08:26 2006
@@ -66,24 +66,13 @@
         // REVISIT: TypesUtils.getPrimitiveCorbaTypeNameNode should be renamed
         // to something more suitable and should be made more general.
         AST boundNode = TypesUtils.getPrimitiveCorbaTypeNameNode(simpleTypeSpecNode); 
-            
-        // if identifier is not null, then this sequence is not anonymous,
-        // but it might contain an anonymous type, hence the identifierNode
-        // reassignment.
-        if (identifierNode != null) {
-            identifierNode = seq.getNextSibling();
-            // ensure that have not mistaken the bound for the identifier 
-            while (identifierNode != null
-                && !TypesUtils.isValidIdentifier(identifierNode.toString())) {
-                identifierNode = identifierNode.getNextSibling();
-            }
-        }
+
         
         SimpleTypeSpecVisitor visitor = new SimpleTypeSpecVisitor(new Scope(getScope(), identifierNode),
                                                                   schemas,
                                                                   schema,
                                                                   typeMap,
-                                                                  identifierNode);
+                                                                  null);
         visitor.visit(simpleTypeSpecNode);
         
         XmlSchemaType stype = visitor.getSchemaType();

Modified: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StringVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StringVisitor.java?view=diff&rev=472876&r1=472875&r2=472876
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StringVisitor.java (original)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/main/java/org/apache/yoko/tools/processors/idl/StringVisitor.java Thu Nov  9 04:08:26 2006
@@ -83,16 +83,56 @@
         
         stringNode = node;
         boundNode = stringNode.getFirstChild();
-        identifierNode = stringNode.getNextSibling();
-        stringName = getIdentifier(identifierNode);
+        if (identifierNode == null) {    
+            Integer index = 0;
+            do {
+                index++;
+                stringName = "_" + index.toString() + "_" + getScope().tail();
+            } while (schema.getTypeByName(new QName(schema.getTargetNamespace(), stringName)) != null);
+        } else {
+            stringName = getIdentifier(identifierNode);
+        }
+
         
         if (boundNode != null) {
-            // bounded string/wstring
-            visitBoundedString();
+            if (identifierNode != null) {
+                // bounded string/wstring
+                visitBoundedString();
+            } else {
+                // anonymous bounded string/wstring
+                visitAnonBoundedString();
+            }
         } else {
             // unbounded string/wstring
             visitUnboundedString();
         }
+    }
+    
+    private void visitAnonBoundedString() {
+        // xmlschema:bounded anon string
+        XmlSchemaSimpleType simpleType = new XmlSchemaSimpleType(schema);
+        simpleType.setName(stringName);
+        XmlSchemaSimpleTypeRestriction restriction = new XmlSchemaSimpleTypeRestriction();
+        restriction.setBaseTypeName(Constants.XSD_STRING);
+        XmlSchemaMaxLengthFacet maxLengthFacet = new XmlSchemaMaxLengthFacet();
+        maxLengthFacet.setValue(boundNode.toString());
+        restriction.getFacets().add(maxLengthFacet);
+        simpleType.setContent(restriction);
+
+        // add schemaType
+        schema.getItems().add(simpleType);
+        schema.addType(simpleType);
+        setSchemaType(simpleType);
+
+        // corba:anonstring
+        Anonstring anonstring = new Anonstring();
+        anonstring.setQName(new QName(typeMap.getTargetNamespace(), stringName));
+        anonstring.setBound(new Long(boundNode.toString()));
+        anonstring.setType(simpleType.getQName());
+        
+        // add corba:anonstring
+        typeMap.getStructOrExceptionOrUnion().add(anonstring);
+        setCorbaType(anonstring);
     }
     
     private void visitBoundedString() {

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=472876&r1=472875&r2=472876
==============================================================================
--- 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 Thu Nov  9 04:08:26 2006
@@ -194,4 +194,8 @@
         testWSDLGeneration("/idl/Anonboundedsequence.idl", "/idl/expected_Anonboundedsequence.wsdl");
     }
 
+    public void testAnonstringGeneration() throws Exception {
+        testWSDLGeneration("/idl/Anonstring.idl", "/idl/expected_Anonstring.wsdl");
+    }
+
 }

Added: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/Anonstring.idl
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/Anonstring.idl?view=auto&rev=472876
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/Anonstring.idl (added)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/Anonstring.idl Thu Nov  9 04:08:26 2006
@@ -0,0 +1,79 @@
+/* 
+ * 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.
+*/
+
+module AnonStrings { 
+    
+    typedef sequence< string<10> > SequenceBoundedString;
+    typedef sequence< sequence< string<10> > > SequenceSequenceBoundedString;
+
+
+    typedef sequence< string<10>, 20 > BoundedSequenceBoundedString;
+    typedef sequence< sequence< string<10>, 20 > > SequenceBoundedSequenceBoundedString;
+
+
+    interface anonStringIf {
+        string<10> anonStringOperation(in string<20> inString);
+        string<30> anotherAnonStringOperation(in string<40> inString);
+    };
+
+
+    struct anonStringStruct {
+        string unboundedString;
+        string anotherUnboundedString;
+
+        string<10> anonBoundedString;
+        string<20> anotherAnonBoundedString;
+    };
+
+
+    typedef struct typedefAnonStringStruct {
+        string unboundedString;
+        string anotherUnboundedString;
+
+        string<10> anonBoundedString;
+        string<20> anotherAnonBoundedString;
+    } myTypedefAnonStringStruct;
+
+
+    union anonStringUnion switch(long) {
+    case 1:
+        string< 10 > anonStringUnion1;
+    default:
+        string< 100 > anonStringUnionDefault;
+    };
+
+
+    typedef union typedefAnonStringUnion switch(long) {
+    case 1:
+        string< 10 > anonStringUnion1;
+    default:
+        string< 100 > anonStringUnionDefault;
+    } myTypedefAnonStringUnion;
+
+
+    exception anonException {
+        string unboundedString;
+        string anotherUnboundedString;
+
+        string<10> anonBoundedAnonString;
+        string<20> anotherBoundedAnonString;
+    };
+
+};
+

Added: incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/expected_Anonstring.wsdl
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/expected_Anonstring.wsdl?view=auto&rev=472876
==============================================================================
--- incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/expected_Anonstring.wsdl (added)
+++ incubator/yoko/branches/idltowsdl_anon_refactor/tools/src/test/resources/idl/expected_Anonstring.wsdl Thu Nov  9 04:08:26 2006
@@ -0,0 +1,379 @@
+<?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/Anonstring" xmlns:tns="http://schemas.apache.org/yoko/idl/Anonstring" 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/Anonstring/typemap">
+    <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="10" name="_1_SequenceBoundedString" type="ns4:_1_SequenceBoundedString" />
+    <corba:sequence xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" elemtype="_1_SequenceBoundedString" bound="0" repositoryID="IDL:SequenceBoundedString:1.0" name="SequenceBoundedString" type="ns4:SequenceBoundedString" />
+    <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="10" name="_1_SequenceSequenceBoundedString" type="ns4:_1_SequenceSequenceBoundedString" />
+    <corba:anonsequence xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" elemtype="_1_SequenceSequenceBoundedString" bound="0" name="_2_SequenceSequenceBoundedString" type="ns4:_2_SequenceSequenceBoundedString" />
+    <corba:sequence xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" elemtype="_2_SequenceSequenceBoundedString" bound="0" repositoryID="IDL:SequenceSequenceBoundedString:1.0" name="SequenceSequenceBoundedString" type="ns4:SequenceSequenceBoundedString" />
+    <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="10" name="_1_BoundedSequenceBoundedString" type="ns4:_1_BoundedSequenceBoundedString" />
+    <corba:sequence xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" elemtype="_1_BoundedSequenceBoundedString" bound="20" repositoryID="IDL:BoundedSequenceBoundedString:1.0" name="BoundedSequenceBoundedString" type="ns4:BoundedSequenceBoundedString" />
+    <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="10" name="_1_SequenceBoundedSequenceBoundedString" type="ns4:_1_SequenceBoundedSequenceBoundedString" />
+    <corba:anonsequence xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" elemtype="_1_SequenceBoundedSequenceBoundedString" bound="20" name="_2_SequenceBoundedSequenceBoundedString" type="ns4:_2_SequenceBoundedSequenceBoundedString" />
+    <corba:sequence xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" elemtype="_2_SequenceBoundedSequenceBoundedString" bound="0" repositoryID="IDL:SequenceBoundedSequenceBoundedString:1.0" name="SequenceBoundedSequenceBoundedString" type="ns4:SequenceBoundedSequenceBoundedString" />
+    <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="10" name="_1_anonStringIf" type="ns4:_1_anonStringIf" />
+    <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="20" name="_2_anonStringIf" type="ns4:_2_anonStringIf" />
+    <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="30" name="_3_anonStringIf" type="ns4:_3_anonStringIf" />
+    <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="40" name="_4_anonStringIf" type="ns4:_4_anonStringIf" />
+    <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="10" name="_1_anonStringStruct" type="ns4:_1_anonStringStruct" />
+    <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="20" name="_2_anonStringStruct" type="ns4:_2_anonStringStruct" />
+    <corba:struct xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" repositoryID="IDL:anonStringStruct:1.0" name="anonStringStruct" type="ns4:anonStringStruct">
+      <corba:member name="unboundedString" idltype="corba:string" />
+      <corba:member name="anotherUnboundedString" idltype="corba:string" />
+      <corba:member name="anonBoundedString" idltype="_1_anonStringStruct" />
+      <corba:member name="anotherAnonBoundedString" idltype="_2_anonStringStruct" />
+    </corba:struct>
+      <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="10" name="_1_typedefAnonStringStruct" type="ns4:_1_typedefAnonStringStruct" />
+      <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="20" name="_2_typedefAnonStringStruct" type="ns4:_2_typedefAnonStringStruct" />
+      <corba:struct xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" repositoryID="IDL:typedefAnonStringStruct:1.0" name="typedefAnonStringStruct" type="ns4:typedefAnonStringStruct">
+        <corba:member name="unboundedString" idltype="corba:string" />
+        <corba:member name="anotherUnboundedString" idltype="corba:string" />
+        <corba:member name="anonBoundedString" idltype="_1_typedefAnonStringStruct" />
+        <corba:member name="anotherAnonBoundedString" idltype="_2_typedefAnonStringStruct" />
+      </corba:struct>
+        <corba:alias xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" basetype="typedefAnonStringStruct" repositoryID="IDL:myTypedefAnonStringStruct:1.0" name="myTypedefAnonStringStruct" type="ns4:typedefAnonStringStruct" />
+        <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="10" name="_1_anonStringUnion" type="ns4:_1_anonStringUnion" />
+        <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="100" name="_2_anonStringUnion" type="ns4:_2_anonStringUnion" />
+        <corba:union xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" discriminator="corba:long" repositoryID="IDL:anonStringUnion:1.0" name="anonStringUnion" type="ns4:anonStringUnion">
+          <corba:unionbranch name="anonStringUnion1" idltype="_1_anonStringUnion">
+            <corba:case label="1" />
+          </corba:unionbranch>
+            <corba:unionbranch name="anonStringUnionDefault" idltype="_2_anonStringUnion" default="true" />
+          </corba:union>
+            <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="10" name="_1_typedefAnonStringUnion" type="ns4:_1_typedefAnonStringUnion" />
+            <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="100" name="_2_typedefAnonStringUnion" type="ns4:_2_typedefAnonStringUnion" />
+            <corba:union xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" discriminator="corba:long" repositoryID="IDL:typedefAnonStringUnion:1.0" name="typedefAnonStringUnion" type="ns4:typedefAnonStringUnion">
+              <corba:unionbranch name="anonStringUnion1" idltype="_1_typedefAnonStringUnion">
+                <corba:case label="1" />
+              </corba:unionbranch>
+                <corba:unionbranch name="anonStringUnionDefault" idltype="_2_typedefAnonStringUnion" default="true" />
+              </corba:union>
+                <corba:alias xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" basetype="typedefAnonStringUnion" repositoryID="IDL:myTypedefAnonStringUnion:1.0" name="myTypedefAnonStringUnion" type="ns4:typedefAnonStringUnion" />
+                <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="10" name="_1_anonException" type="ns4:_1_anonException" />
+                <corba:anonstring xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" bound="20" name="_2_anonException" type="ns4:_2_anonException" />
+                <corba:exception xmlns:ns4="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" repositoryID="IDL:anonException:1.0" name="anonException" type="ns4:anonExceptionType">
+                  <corba:member name="unboundedString" idltype="corba:string" />
+                  <corba:member name="anotherUnboundedString" idltype="corba:string" />
+                  <corba:member name="anonBoundedAnonString" idltype="_1_anonException" />
+                  <corba:member name="anotherBoundedAnonString" idltype="_2_anonException" />
+                </corba:exception>
+                </corba:typeMapping>
+  <wsdl:types>
+    <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://schemas.apache.org/yoko/idl/Anonstring" xmlns="http://schemas.apache.org/yoko/idl/Anonstring" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+      <xs:simpleType name="_1_SequenceBoundedString">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="10">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:complexType name="SequenceBoundedString">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="item" type="_1_SequenceBoundedString">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:simpleType name="_1_SequenceSequenceBoundedString">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="10">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:complexType name="_2_SequenceSequenceBoundedString">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="item" type="_1_SequenceSequenceBoundedString">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="SequenceSequenceBoundedString">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="item" type="_2_SequenceSequenceBoundedString">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:simpleType name="_1_BoundedSequenceBoundedString">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="10">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:complexType name="BoundedSequenceBoundedString">
+        <xs:sequence>
+          <xs:element maxOccurs="20" minOccurs="0" name="item" type="_1_BoundedSequenceBoundedString">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:simpleType name="_1_SequenceBoundedSequenceBoundedString">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="10">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:complexType name="_2_SequenceBoundedSequenceBoundedString">
+        <xs:sequence>
+          <xs:element maxOccurs="20" minOccurs="0" name="item" type="_1_SequenceBoundedSequenceBoundedString">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="SequenceBoundedSequenceBoundedString">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="item" type="_2_SequenceBoundedSequenceBoundedString">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:element name="anonStringOperation">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="inString" type="_2_anonStringIf">
+            </xs:element>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="anonStringOperationResponse">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="return" type="_1_anonStringIf">
+            </xs:element>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:simpleType name="_1_anonStringIf">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="10">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType name="_2_anonStringIf">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="20">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:element name="anotherAnonStringOperation">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="inString" type="_4_anonStringIf">
+            </xs:element>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="anotherAnonStringOperationResponse">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="return" type="_3_anonStringIf">
+            </xs:element>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:simpleType name="_3_anonStringIf">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="30">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType name="_4_anonStringIf">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="40">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType name="_1_anonStringStruct">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="10">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType name="_2_anonStringStruct">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="20">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:complexType name="anonStringStruct">
+        <xs:sequence>
+          <xs:element name="unboundedString" type="xs:string">
+          </xs:element>
+          <xs:element name="anotherUnboundedString" type="xs:string">
+          </xs:element>
+          <xs:element name="anonBoundedString" type="_1_anonStringStruct">
+          </xs:element>
+          <xs:element name="anotherAnonBoundedString" type="_2_anonStringStruct">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:simpleType name="_1_typedefAnonStringStruct">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="10">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType name="_2_typedefAnonStringStruct">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="20">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:complexType name="typedefAnonStringStruct">
+        <xs:sequence>
+          <xs:element name="unboundedString" type="xs:string">
+          </xs:element>
+          <xs:element name="anotherUnboundedString" type="xs:string">
+          </xs:element>
+          <xs:element name="anonBoundedString" type="_1_typedefAnonStringStruct">
+          </xs:element>
+          <xs:element name="anotherAnonBoundedString" type="_2_typedefAnonStringStruct">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:simpleType name="myTypedefAnonStringStruct">
+        <xs:restriction base="typedefAnonStringStruct">
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType name="_1_anonStringUnion">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="10">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType name="_2_anonStringUnion">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="100">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:complexType name="anonStringUnion">
+        <xs:sequence>
+          <xs:element name="discriminator" type="xs:int">
+          </xs:element>
+          <xs:choice>
+            <xs:element name="anonStringUnion1" type="_1_anonStringUnion">
+            </xs:element>
+            <xs:element name="anonStringUnionDefault" type="_2_anonStringUnion">
+            </xs:element>
+          </xs:choice>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:simpleType name="_1_typedefAnonStringUnion">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="10">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType name="_2_typedefAnonStringUnion">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="100">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:complexType name="typedefAnonStringUnion">
+        <xs:sequence>
+          <xs:element name="discriminator" type="xs:int">
+          </xs:element>
+          <xs:choice>
+            <xs:element name="anonStringUnion1" type="_1_typedefAnonStringUnion">
+            </xs:element>
+            <xs:element name="anonStringUnionDefault" type="_2_typedefAnonStringUnion">
+            </xs:element>
+          </xs:choice>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:simpleType name="myTypedefAnonStringUnion">
+        <xs:restriction base="typedefAnonStringUnion">
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType name="_1_anonException">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="10">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType name="_2_anonException">
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="20">
+          </xs:maxLength>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:element name="anonException" type="anonExceptionType">
+      </xs:element>
+      <xs:complexType name="anonExceptionType">
+        <xs:sequence>
+          <xs:element name="unboundedString" type="xs:string">
+          </xs:element>
+          <xs:element name="anotherUnboundedString" type="xs:string">
+          </xs:element>
+          <xs:element name="anonBoundedAnonString" type="_1_anonException">
+          </xs:element>
+          <xs:element name="anotherBoundedAnonString" type="_2_anonException">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+    </xs:schema>
+  </wsdl:types>
+  <wsdl:message name="anonStringOperation">
+    <wsdl:part name="inparameter" element="tns:anonStringOperation"/>
+  </wsdl:message>
+  <wsdl:message name="anotherAnonStringOperation">
+    <wsdl:part name="inparameter" element="tns:anotherAnonStringOperation"/>
+  </wsdl:message>
+  <wsdl:message name="anotherAnonStringOperationResponse">
+    <wsdl:part name="outparameter" element="tns:anotherAnonStringOperationResponse"/>
+  </wsdl:message>
+  <wsdl:message name="anonStringOperationResponse">
+    <wsdl:part name="outparameter" element="tns:anonStringOperationResponse"/>
+  </wsdl:message>
+  <wsdl:portType name="anonStringIf">
+    <wsdl:operation name="anonStringOperation">
+      <wsdl:input name="anonStringOperationRequest" message="tns:anonStringOperation"/>
+      <wsdl:output name="anonStringOperationResponse" message="tns:anonStringOperationResponse"/>
+    </wsdl:operation>
+    <wsdl:operation name="anotherAnonStringOperation">
+      <wsdl:input name="anotherAnonStringOperationRequest" message="tns:anotherAnonStringOperation"/>
+      <wsdl:output name="anotherAnonStringOperationResponse" message="tns:anotherAnonStringOperationResponse"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="anonStringIfCORBABinding" type="tns:anonStringIf">
+    <corba:binding repositoryID="IDL:anonStringIf:1.0" />
+    <wsdl:operation name="anonStringOperation">
+      <corba:operation name="anonStringOperation">
+        <corba:param xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" mode="in" name="inString" idltype="_2_anonStringIf" />
+        <corba:return xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" name="return" idltype="_1_anonStringIf" />
+      </corba:operation>
+      <wsdl:input name="anonStringOperationRequest">
+      </wsdl:input>
+      <wsdl:output name="anonStringOperationResponse">
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="anotherAnonStringOperation">
+      <corba:operation name="anotherAnonStringOperation">
+        <corba:param xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" mode="in" name="inString" idltype="_4_anonStringIf" />
+        <corba:return xmlns="http://schemas.apache.org/yoko/idl/Anonstring/typemap" name="return" idltype="_3_anonStringIf" />
+      </corba:operation>
+      <wsdl:input name="anotherAnonStringOperationRequest">
+      </wsdl:input>
+      <wsdl:output name="anotherAnonStringOperationResponse">
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="anonStringIfCORBAService">
+    <wsdl:port name="anonStringIfCORBAPort" binding="tns:anonStringIfCORBABinding">
+      <corba:address location="IOR:" />
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>

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

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