Author: slaws
Date: Fri Oct  9 15:50:47 2009
New Revision: 823595

URL: http://svn.apache.org/viewvc?rev=823595&view=rev
Log:
TUSCANY-3283 - update to match the latest changes from the 1.5.2 branch

Modified:
    
tuscany/branches/sca-java-1.x/itest/wsdlgen/src/main/resources/wsdl/HelloWorldService_TuscanyGen.wsdl
    
tuscany/branches/sca-java-1.x/itest/wsdlgen/src/test/java/helloworld/HttpTransportTestCase.java
    
tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java

Modified: 
tuscany/branches/sca-java-1.x/itest/wsdlgen/src/main/resources/wsdl/HelloWorldService_TuscanyGen.wsdl
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/itest/wsdlgen/src/main/resources/wsdl/HelloWorldService_TuscanyGen.wsdl?rev=823595&r1=823594&r2=823595&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.x/itest/wsdlgen/src/main/resources/wsdl/HelloWorldService_TuscanyGen.wsdl
 (original)
+++ 
tuscany/branches/sca-java-1.x/itest/wsdlgen/src/main/resources/wsdl/HelloWorldService_TuscanyGen.wsdl
 Fri Oct  9 15:50:47 2009
@@ -1,355 +1,343 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-    <!--
-        * 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.
-    -->
-
-    <!--
-        Generated by pointing a browser at
-        http://l3aw203:8085/HelloWorldServiceComponent1?wsdl
-    -->
-    <!-- but with manual changes to introduce the JMS configuration -->
+       <!--
+               * 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.
+       -->
+
+       <!--
+               Generated by pointing a browser at
+               http://l3aw203:8085/HelloWorldServiceComponent1?wsdl
+       -->
+       <!-- but with manual changes to introduce the JMS configuration -->
 
 <wsdl:definitions name="HelloWorldServiceService"
-    targetNamespace="http://helloworld/"; xmlns="http://helloworld/";
-    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema";
-    xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:SOAP11="http://schemas.xmlsoap.org/wsdl/soap/";>
-    <wsdl:types>
-        <xs:schema targetNamespace="http://helloworld/";
-            version="1.0" xmlns:ns1="http://test"; 
xmlns:tns="http://helloworld/";
-            xmlns:xs="http://www.w3.org/2001/XMLSchema";>
-            <xs:import namespace="http://test"; />
-
-            <xs:element name="getGreetings" type="tns:getGreetings" />
-            <xs:element name="getGreetingsBBean" type="tns:getGreetingsBBean" 
/>
-            <xs:element name="getGreetingsBBeanResponse"
-                type="tns:getGreetingsBBeanResponse" />
-            <xs:element name="getGreetingsBean" type="tns:getGreetingsBean" />
-            <xs:element name="getGreetingsBeanArray" 
type="tns:getGreetingsBeanArray" />
-            <xs:element name="getGreetingsBeanArrayResponse"
-                type="tns:getGreetingsBeanArrayResponse" />
-            <xs:element name="getGreetingsBeanResponse" 
type="tns:getGreetingsBeanResponse" />
-            <xs:element name="getGreetingsCBean" type="tns:getGreetingsCBean" 
/>
-            <xs:element name="getGreetingsCBeanResponse"
-                type="tns:getGreetingsCBeanResponse" />
-
-            <xs:element name="getGreetingsDBean" type="tns:getGreetingsDBean" 
/>
-            <xs:element name="getGreetingsDBeanResponse"
-                type="tns:getGreetingsDBeanResponse" />
-            <xs:element name="getGreetingsResponse" 
type="tns:getGreetingsResponse" />
-            <xs:complexType name="getGreetingsBean">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="arg0"
-                        type="ns1:aBean" />
-                </xs:sequence>
-            </xs:complexType>
-            <xs:complexType name="getGreetingsBeanArrayResponse">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="return"
-                        type="xs:string" />
-                </xs:sequence>
-            </xs:complexType>
-            <xs:complexType name="getGreetingsBeanArray">
-                <xs:sequence>
-                    <xs:element maxOccurs="unbounded"
-                        minOccurs="0" name="arg0" nillable="true" 
type="ns1:aBean" />
-                </xs:sequence>
-            </xs:complexType>
-            <xs:complexType name="getGreetingsBBeanResponse">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="return"
-                        type="xs:string" />
-                </xs:sequence>
-            </xs:complexType>
-            <xs:complexType name="getGreetingsBBean">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="arg0"
-                        type="tns:bBean" />
-                </xs:sequence>
-            </xs:complexType>
-            <xs:complexType name="getGreetingsCBeanResponse">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="return"
-                        type="xs:string" />
-                </xs:sequence>
-            </xs:complexType>
-            <xs:complexType name="getGreetingsBeanResponse">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="return"
-                        type="xs:string" />
-                </xs:sequence>
-            </xs:complexType>
-            <xs:complexType name="getGreetings">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="arg0"
-                        type="xs:string" />
-                </xs:sequence>
-            </xs:complexType>
-            <xs:complexType name="getGreetingsResponse">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="return"
-                        type="xs:string" />
-                </xs:sequence>
-            </xs:complexType>
-            <xs:complexType name="getGreetingsCBean">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="arg0">
-                        <xs:complexType>
-                            <xs:sequence>
-                                <xs:element minOccurs="0"
-                                    name="field1" type="xs:string" />
-                                <xs:element minOccurs="0"
-                                    name="field2" type="xs:string" />
-                            </xs:sequence>
-                        </xs:complexType>
-                    </xs:element>
-                </xs:sequence>
-            </xs:complexType>
-            <xs:complexType name="getGreetingsDBean">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="arg0"
-                        type="dBean" />
-                </xs:sequence>
-            </xs:complexType>
-            <xs:complexType name="getGreetingsDBeanResponse">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="return"
-                        type="xs:string" />
-                </xs:sequence>
-            </xs:complexType>
-
-            <xs:complexType name="bBean">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="field1"
-                        type="xs:string" />
-                    <xs:element minOccurs="0" name="field2"
-                        type="xs:string" />
-                </xs:sequence>
-            </xs:complexType>
-
-            <xs:complexType name="dBean">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="field1"
-                        type="xs:string" />
-                    <xs:element minOccurs="0" name="field2"
-                        type="xs:string" />
-                    <xs:element minOccurs="0" name="field3"
-                        type="bBean" />
-                </xs:sequence>
-            </xs:complexType>
-        </xs:schema>
-        <xs:schema targetNamespace="http://test"; version="1.0"
-            xmlns:__nnns="http://helloworld/"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema";>
-            <xs:import namespace="http://helloworld/"; />
-            <xs:complexType name="aBean">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="field1"
-                        type="xs:string" />
-                    <xs:element minOccurs="0" name="field2"
-                        type="xs:string" />
-                    <xs:element minOccurs="0" name="field3"
-                        type="__nnns:bBean" />
-                </xs:sequence>
-            </xs:complexType>
-        </xs:schema>
-    </wsdl:types>
-    <wsdl:message name="getGreetingsBean">
-        <wsdl:part name="getGreetingsBean" element="getGreetingsBean">
-        </wsdl:part>
-    </wsdl:message>
-
-    <wsdl:message name="getGreetingsDBean">
-        <wsdl:part name="getGreetingsDBean" element="getGreetingsDBean">
-        </wsdl:part>
-    </wsdl:message>
-    <wsdl:message name="getGreetings">
-        <wsdl:part name="getGreetings" element="getGreetings">
-        </wsdl:part>
-    </wsdl:message>
-    <wsdl:message name="getGreetingsCBean">
-
-        <wsdl:part name="getGreetingsCBean" element="getGreetingsCBean">
-        </wsdl:part>
-    </wsdl:message>
-    <wsdl:message name="getGreetingsDBeanResponse">
-        <wsdl:part name="getGreetingsDBeanResponse" 
element="getGreetingsDBeanResponse">
-        </wsdl:part>
-    </wsdl:message>
-    <wsdl:message name="getGreetingsCBeanResponse">
-        <wsdl:part name="getGreetingsCBeanResponse" 
element="getGreetingsCBeanResponse">
-
-        </wsdl:part>
-    </wsdl:message>
-    <wsdl:message name="getGreetingsBBean">
-        <wsdl:part name="getGreetingsBBean" element="getGreetingsBBean">
-        </wsdl:part>
-    </wsdl:message>
-    <wsdl:message name="getGreetingsResponse">
-        <wsdl:part name="getGreetingsResponse" element="getGreetingsResponse">
-        </wsdl:part>
-
-    </wsdl:message>
-    <wsdl:message name="getGreetingsBeanResponse">
-        <wsdl:part name="getGreetingsBeanResponse" 
element="getGreetingsBeanResponse">
-        </wsdl:part>
-    </wsdl:message>
-    <wsdl:message name="getGreetingsBeanArrayResponse">
-        <wsdl:part name="getGreetingsBeanArrayResponse"
-            element="getGreetingsBeanArrayResponse">
-        </wsdl:part>
-    </wsdl:message>
-
-    <wsdl:message name="getGreetingsBBeanResponse">
-        <wsdl:part name="getGreetingsBBeanResponse" 
element="getGreetingsBBeanResponse">
-        </wsdl:part>
-    </wsdl:message>
-    <wsdl:message name="getGreetingsBeanArray">
-        <wsdl:part name="getGreetingsBeanArray" 
element="getGreetingsBeanArray">
-        </wsdl:part>
-    </wsdl:message>
-    <wsdl:portType name="HelloWorldService">
-
-        <wsdl:operation name="getGreetings">
-            <wsdl:input message="getGreetings">
-            </wsdl:input>
-            <wsdl:output message="getGreetingsResponse">
-            </wsdl:output>
-        </wsdl:operation>
-        <wsdl:operation name="getGreetingsDBean">
-            <wsdl:input message="getGreetingsDBean">
-            </wsdl:input>
-
-            <wsdl:output message="getGreetingsDBeanResponse">
-            </wsdl:output>
-        </wsdl:operation>
-        <wsdl:operation name="getGreetingsBean">
-            <wsdl:input message="getGreetingsBean">
-            </wsdl:input>
-            <wsdl:output message="getGreetingsBeanResponse">
-            </wsdl:output>
-        </wsdl:operation>
-
-        <wsdl:operation name="getGreetingsBeanArray">
-            <wsdl:input message="getGreetingsBeanArray">
-            </wsdl:input>
-            <wsdl:output message="getGreetingsBeanArrayResponse">
-            </wsdl:output>
-        </wsdl:operation>
-        <wsdl:operation name="getGreetingsBBean">
-            <wsdl:input message="getGreetingsBBean">
-            </wsdl:input>
-
-            <wsdl:output message="getGreetingsBBeanResponse">
-            </wsdl:output>
-        </wsdl:operation>
-        <wsdl:operation name="getGreetingsCBean">
-            <wsdl:input message="getGreetingsCBean">
-            </wsdl:input>
-            <wsdl:output message="getGreetingsCBeanResponse">
-            </wsdl:output>
-        </wsdl:operation>
-
-    </wsdl:portType>
-    <wsdl:binding name="HelloWorldServiceBinding" type="HelloWorldService">
-        <SOAP:binding style="document"
-            transport="http://schemas.xmlsoap.org/soap/http"; />
-        <wsdl:operation name="getGreetings">
-            <SOAP:operation />
-            <wsdl:input>
-                <SOAP:body use="literal" />
-            </wsdl:input>
-            <wsdl:output>
-
-                <SOAP:body use="literal" />
-            </wsdl:output>
-        </wsdl:operation>
-        <wsdl:operation name="getGreetingsDBean">
-            <SOAP:operation />
-            <wsdl:input>
-                <SOAP:body use="literal" />
-            </wsdl:input>
-            <wsdl:output>
-
-                <SOAP:body use="literal" />
-            </wsdl:output>
-        </wsdl:operation>
-        <wsdl:operation name="getGreetingsBean">
-            <SOAP:operation />
-            <wsdl:input>
-                <SOAP:body use="literal" />
-            </wsdl:input>
-            <wsdl:output>
-
-                <SOAP:body use="literal" />
-            </wsdl:output>
-        </wsdl:operation>
-        <wsdl:operation name="getGreetingsBeanArray">
-            <SOAP:operation />
-            <wsdl:input>
-                <SOAP:body use="literal" />
-            </wsdl:input>
-            <wsdl:output>
-
-                <SOAP:body use="literal" />
-            </wsdl:output>
-        </wsdl:operation>
-        <wsdl:operation name="getGreetingsBBean">
-            <SOAP:operation />
-            <wsdl:input>
-                <SOAP:body use="literal" />
-            </wsdl:input>
-            <wsdl:output>
-
-                <SOAP:body use="literal" />
-            </wsdl:output>
-        </wsdl:operation>
-        <wsdl:operation name="getGreetingsCBean">
-            <SOAP:operation />
-            <wsdl:input>
-                <SOAP:body use="literal" />
-            </wsdl:input>
-            <wsdl:output>
-
-                <SOAP:body use="literal" />
-            </wsdl:output>
-        </wsdl:operation>
-    </wsdl:binding>
-    
-    <wsdl:binding name="HelloWorldJmsBinding" type="HelloWorldService">
-        <SOAP:binding style="document"
-            transport="http://schemas.xmlsoap.org/soap/jms"; />
-        <wsdl:operation name="getGreetings">
-            <SOAP:operation />
-            <wsdl:input>
-                <SOAP:body use="literal" />
-            </wsdl:input>
-
-            <wsdl:output>
-                <SOAP:body use="literal" />
-            </wsdl:output>
-        </wsdl:operation>
-
-    </wsdl:binding>
-
-    <wsdl:service name="HelloWorldService">
-        <wsdl:port name="HelloWorldJmsPort" binding="HelloWorldJmsBinding">
-            <SOAP:address
-                
location="jms:/queue.sample?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;java.naming.provider.url=tcp://localhost:51293"
 />
-        </wsdl:port>
-        <wsdl:port name="HelloWorldServicePort" 
binding="HelloWorldServiceBinding">
-            <SOAP:address
-                location="http://l3aw203:8085/HelloWorldServiceComponent1"; />
-        </wsdl:port>
-    </wsdl:service>
+       targetNamespace="http://helloworld/"; xmlns="http://helloworld/";
+       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema";
+       xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:SOAP11="http://schemas.xmlsoap.org/wsdl/soap/";>
+       <wsdl:types>
+               <xs:schema attributeFormDefault="qualified"
+                       elementFormDefault="unqualified" 
targetNamespace="http://helloworld/";
+                       xmlns:ns0="http://test"; xmlns:tns="http://helloworld/"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema";>
+                       <xs:import namespace="http://test"; />
+                       <xs:element name="getGreetingsBean">
+                               <xs:complexType>
+                                       <xs:sequence>
+                                               <xs:element minOccurs="0" 
name="arg0" nillable="true"
+                                                       type="ns0:aBean" />
+                                       </xs:sequence>
+                               </xs:complexType>
+                       </xs:element>
+                       <xs:element name="getGreetingsDBean">
+                               <xs:complexType>
+                                       <xs:sequence>
+                                               <xs:element minOccurs="0" 
name="arg0" nillable="true"
+                                                       type="tns:dBean" />
+                                       </xs:sequence>
+                               </xs:complexType>
+                       </xs:element>
+                       <xs:element name="getGreetings">
+                               <xs:complexType>
+                                       <xs:sequence>
+                                               <xs:element minOccurs="0" 
name="arg0" nillable="true"
+                                                       type="xs:string" />
+                                       </xs:sequence>
+                               </xs:complexType>
+                       </xs:element>
+                       <xs:element name="getGreetingsCBean">
+                               <xs:complexType>
+                                       <xs:sequence/>
+                               </xs:complexType>
+                       </xs:element>
+                       <xs:element name="getGreetingsDBeanResponse">
+                               <xs:complexType>
+                                       <xs:sequence>
+                                               <xs:element minOccurs="0" 
name="return" nillable="true"
+                                                       type="xs:string" />
+                                       </xs:sequence>
+                               </xs:complexType>
+                       </xs:element>
+                       <xs:element name="getGreetingsCBeanResponse">
+                               <xs:complexType>
+                                       <xs:sequence>
+                                               <xs:element minOccurs="0" 
name="return" nillable="true"
+                                                       type="xs:string" />
+                                       </xs:sequence>
+                               </xs:complexType>
+                       </xs:element>
+                       <xs:element name="getGreetingsBBean">
+                               <xs:complexType>
+                                       <xs:sequence>
+                                               <xs:element minOccurs="0" 
name="arg0" nillable="true"
+                                                       type="tns:bBean" />
+                                       </xs:sequence>
+                               </xs:complexType>
+                       </xs:element>
+                       <xs:element name="getGreetingsResponse">
+                               <xs:complexType>
+                                       <xs:sequence>
+                                               <xs:element minOccurs="0" 
name="return" nillable="true"
+                                                       type="xs:string" />
+                                       </xs:sequence>
+                               </xs:complexType>
+                       </xs:element>
+                       <xs:element name="getGreetingsBeanResponse">
+                               <xs:complexType>
+                                       <xs:sequence>
+                                               <xs:element minOccurs="0" 
name="return" nillable="true"
+                                                       type="xs:string" />
+                                       </xs:sequence>
+                               </xs:complexType>
+                       </xs:element>
+                       <xs:element name="getGreetingsBeanArrayResponse">
+                               <xs:complexType>
+                                       <xs:sequence>
+                                               <xs:element minOccurs="0" 
name="return" nillable="true"
+                                                       type="xs:string" />
+                                       </xs:sequence>
+                               </xs:complexType>
+                       </xs:element>
+                       <xs:element name="getGreetingsBBeanResponse">
+                               <xs:complexType>
+                                       <xs:sequence>
+                                               <xs:element minOccurs="0" 
name="return" nillable="true"
+                                                       type="xs:string" />
+                                       </xs:sequence>
+                               </xs:complexType>
+                       </xs:element>
+                       <xs:element name="getGreetingsBeanArray">
+                               <xs:complexType>
+                                       <xs:sequence>
+                                               <xs:element 
maxOccurs="unbounded" minOccurs="0" name="arg0"
+                                                       nillable="true" 
type="ns0:aBean" />
+                                       </xs:sequence>
+                               </xs:complexType>
+                       </xs:element>
+                       <xs:complexType name="bBean">
+                               <xs:sequence>
+                                       <xs:element minOccurs="0" name="field1" 
type="xs:string" />
+                                       <xs:element minOccurs="0" name="field2" 
type="xs:string" />
+                               </xs:sequence>
+                       </xs:complexType>
+                       <xs:complexType name="dBean">
+                               <xs:sequence>
+                                       <xs:element minOccurs="0" name="field1" 
type="xs:string" />
+                                       <xs:element minOccurs="0" name="field2" 
type="xs:string" />
+                                       <xs:element minOccurs="0" name="field3" 
type="tns:bBean" />
+                               </xs:sequence>
+                       </xs:complexType>
+               </xs:schema>
+               <xs:schema targetNamespace="http://test"; version="1.0"
+                       xmlns:__nnns="http://helloworld/"; 
xmlns:tns="http://test";
+                       xmlns:xs="http://www.w3.org/2001/XMLSchema";>
+                       <xs:import namespace="http://helloworld/"; />
+                       <xs:complexType name="aBean">
+                               <xs:sequence>
+                                       <xs:element minOccurs="0" name="field1" 
type="xs:string" />
+                                       <xs:element minOccurs="0" name="field2" 
type="xs:string" />
+                                       <xs:element minOccurs="0" name="field3" 
type="__nnns:bBean" />
+                               </xs:sequence>
+                       </xs:complexType>
+                       <xs:complexType final="#all" name="aBeanArray">
+                               <xs:sequence>
+                                       <xs:element maxOccurs="unbounded" 
minOccurs="0" name="item"
+                                               nillable="true" 
type="tns:aBean" />
+                               </xs:sequence>
+                       </xs:complexType>
+               </xs:schema>
+       </wsdl:types>
+       <wsdl:message name="getGreetingsBean">
+               <wsdl:part name="getGreetingsBean" element="getGreetingsBean">
+               </wsdl:part>
+       </wsdl:message>
+       <wsdl:message name="getGreetingsDBean">
+               <wsdl:part name="getGreetingsDBean" element="getGreetingsDBean">
+
+               </wsdl:part>
+       </wsdl:message>
+       <wsdl:message name="getGreetings">
+               <wsdl:part name="getGreetings" element="getGreetings">
+               </wsdl:part>
+       </wsdl:message>
+       <wsdl:message name="getGreetingsCBean">
+               <wsdl:part name="getGreetingsCBean" element="getGreetingsCBean">
+               </wsdl:part>
+
+       </wsdl:message>
+       <wsdl:message name="getGreetingsDBeanResponse">
+               <wsdl:part name="getGreetingsDBeanResponse" 
element="getGreetingsDBeanResponse">
+               </wsdl:part>
+       </wsdl:message>
+       <wsdl:message name="getGreetingsCBeanResponse">
+               <wsdl:part name="getGreetingsCBeanResponse" 
element="getGreetingsCBeanResponse">
+               </wsdl:part>
+       </wsdl:message>
+
+       <wsdl:message name="getGreetingsBBean">
+               <wsdl:part name="getGreetingsBBean" element="getGreetingsBBean">
+               </wsdl:part>
+       </wsdl:message>
+       <wsdl:message name="getGreetingsResponse">
+               <wsdl:part name="getGreetingsResponse" 
element="getGreetingsResponse">
+               </wsdl:part>
+       </wsdl:message>
+       <wsdl:message name="getGreetingsBeanResponse">
+
+               <wsdl:part name="getGreetingsBeanResponse" 
element="getGreetingsBeanResponse">
+               </wsdl:part>
+       </wsdl:message>
+       <wsdl:message name="getGreetingsBeanArrayResponse">
+               <wsdl:part name="getGreetingsBeanArrayResponse" 
element="getGreetingsBeanArrayResponse">
+               </wsdl:part>
+       </wsdl:message>
+       <wsdl:message name="getGreetingsBBeanResponse">
+               <wsdl:part name="getGreetingsBBeanResponse" 
element="getGreetingsBBeanResponse">
+
+               </wsdl:part>
+       </wsdl:message>
+       <wsdl:message name="getGreetingsBeanArray">
+               <wsdl:part name="getGreetingsBeanArray" 
element="getGreetingsBeanArray">
+               </wsdl:part>
+       </wsdl:message>
+       <wsdl:portType name="HelloWorldService">
+               <wsdl:operation name="getGreetings">
+                       <wsdl:input message="getGreetings">
+
+                       </wsdl:input>
+                       <wsdl:output message="getGreetingsResponse">
+                       </wsdl:output>
+               </wsdl:operation>
+               <wsdl:operation name="getGreetingsDBean">
+                       <wsdl:input message="getGreetingsDBean">
+                       </wsdl:input>
+                       <wsdl:output message="getGreetingsDBeanResponse">
+                       </wsdl:output>
+
+               </wsdl:operation>
+               <wsdl:operation name="getGreetingsBean">
+                       <wsdl:input message="getGreetingsBean">
+                       </wsdl:input>
+                       <wsdl:output message="getGreetingsBeanResponse">
+                       </wsdl:output>
+               </wsdl:operation>
+               <wsdl:operation name="getGreetingsBeanArray">
+                       <wsdl:input message="getGreetingsBeanArray">
+
+                       </wsdl:input>
+                       <wsdl:output message="getGreetingsBeanArrayResponse">
+                       </wsdl:output>
+               </wsdl:operation>
+               <wsdl:operation name="getGreetingsBBean">
+                       <wsdl:input message="getGreetingsBBean">
+                       </wsdl:input>
+                       <wsdl:output message="getGreetingsBBeanResponse">
+                       </wsdl:output>
+
+               </wsdl:operation>
+               <wsdl:operation name="getGreetingsCBean">
+                       <wsdl:input message="getGreetingsCBean">
+                       </wsdl:input>
+                       <wsdl:output message="getGreetingsCBeanResponse">
+                       </wsdl:output>
+               </wsdl:operation>
+       </wsdl:portType>
+       <wsdl:binding name="HelloWorldServiceBinding" type="HelloWorldService">
+
+               <SOAP:binding style="document"
+                       transport="http://schemas.xmlsoap.org/soap/http"; />
+               <wsdl:operation name="getGreetings">
+                       <SOAP:operation />
+                       <wsdl:input>
+                               <SOAP:body use="literal" />
+                       </wsdl:input>
+                       <wsdl:output>
+                               <SOAP:body use="literal" />
+                       </wsdl:output>
+
+               </wsdl:operation>
+               <wsdl:operation name="getGreetingsDBean">
+                       <SOAP:operation />
+                       <wsdl:input>
+                               <SOAP:body use="literal" />
+                       </wsdl:input>
+                       <wsdl:output>
+                               <SOAP:body use="literal" />
+                       </wsdl:output>
+
+               </wsdl:operation>
+               <wsdl:operation name="getGreetingsBean">
+                       <SOAP:operation />
+                       <wsdl:input>
+                               <SOAP:body use="literal" />
+                       </wsdl:input>
+                       <wsdl:output>
+                               <SOAP:body use="literal" />
+                       </wsdl:output>
+
+               </wsdl:operation>
+               <wsdl:operation name="getGreetingsBeanArray">
+                       <SOAP:operation />
+                       <wsdl:input>
+                               <SOAP:body use="literal" />
+                       </wsdl:input>
+                       <wsdl:output>
+                               <SOAP:body use="literal" />
+                       </wsdl:output>
+
+               </wsdl:operation>
+               <wsdl:operation name="getGreetingsBBean">
+                       <SOAP:operation />
+                       <wsdl:input>
+                               <SOAP:body use="literal" />
+                       </wsdl:input>
+                       <wsdl:output>
+                               <SOAP:body use="literal" />
+                       </wsdl:output>
+
+               </wsdl:operation>
+               <wsdl:operation name="getGreetingsCBean">
+                       <SOAP:operation />
+                       <wsdl:input>
+                               <SOAP:body use="literal" />
+                       </wsdl:input>
+                       <wsdl:output>
+                               <SOAP:body use="literal" />
+                       </wsdl:output>
+
+               </wsdl:operation>
+       </wsdl:binding>
+
+       <wsdl:binding name="HelloWorldJmsBinding" type="HelloWorldService">
+               <SOAP:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/jms"; />
+               <wsdl:operation name="getGreetings">
+                       <SOAP:operation />
+                       <wsdl:input>
+                               <SOAP:body use="literal" />
+                       </wsdl:input>
+
+                       <wsdl:output>
+                               <SOAP:body use="literal" />
+                       </wsdl:output>
+               </wsdl:operation>
+
+       </wsdl:binding>
+
+       <wsdl:service name="HelloWorldService">
+               <wsdl:port name="HelloWorldJmsPort" 
binding="HelloWorldJmsBinding">
+                       <SOAP:address
+                               
location="jms:/queue.sample?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;java.naming.provider.url=tcp://localhost:51293"
 />
+               </wsdl:port>
+               <wsdl:port name="HelloWorldServicePort" 
binding="HelloWorldServiceBinding">
+                       <SOAP:address 
location="http://l3aw203:8085/HelloWorldServiceComponent1"; />
+               </wsdl:port>
+       </wsdl:service>
 </wsdl:definitions>    

Modified: 
tuscany/branches/sca-java-1.x/itest/wsdlgen/src/test/java/helloworld/HttpTransportTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/itest/wsdlgen/src/test/java/helloworld/HttpTransportTestCase.java?rev=823595&r1=823594&r2=823595&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.x/itest/wsdlgen/src/test/java/helloworld/HttpTransportTestCase.java
 (original)
+++ 
tuscany/branches/sca-java-1.x/itest/wsdlgen/src/test/java/helloworld/HttpTransportTestCase.java
 Fri Oct  9 15:50:47 2009
@@ -50,6 +50,17 @@
             scaDomain = SCADomain.newInstance("helloworld1.composite");
        }
     
+    @Ignore
+    @Test
+    public void testWaitForInput() {
+        System.out.println("Press a key to end");
+        try {
+            System.in.read();
+        } catch (Exception ex) {
+        }
+        System.out.println("Shutting down");
+    }    
+    
     @Test
     public void testComponent1SCA() throws IOException {
         HelloWorldService helloWorldService = 
scaDomain.getService(HelloWorldService.class, 
"HelloWorldServiceComponent1/HelloWorldService");
@@ -99,18 +110,6 @@
         
        // repeat the JAXWS call with WSDL generated by tuscany
         
-    }
-    
-       
-    @Ignore
-    @Test
-    public void testWaitForInput() {
-        System.out.println("Press a key to end");
-        try {
-            System.in.read();
-        } catch (Exception ex) {
-        }
-        System.out.println("Shutting down");
     }      
 
        @After

Modified: 
tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java?rev=823595&r1=823594&r2=823595&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java
 (original)
+++ 
tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java
 Fri Oct  9 15:50:47 2009
@@ -22,6 +22,7 @@
 import java.lang.reflect.Method;
 import java.net.URI;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -78,8 +79,10 @@
 import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 import org.apache.tuscany.sca.xsd.XSDFactory;
 import org.apache.tuscany.sca.xsd.XSDefinition;
+import org.apache.tuscany.sca.xsd.impl.XSDefinitionImpl;
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.apache.ws.commons.schema.XmlSchemaElement;
 import org.apache.ws.commons.schema.XmlSchemaException;
 import org.apache.ws.commons.schema.utils.NamespaceMap;
 import org.w3c.dom.Attr;
@@ -337,47 +340,24 @@
         binding.setUndefined(false);
         definition.addBinding(binding);
         wsdlDefinition.setBinding(binding);
-
+        
         // call each helper in turn to populate the wsdl.types element
-        XmlSchemaCollection schemaCollection = new XmlSchemaCollection();
+        XmlSchemaCollection schemaCollection = new XmlSchemaCollection(); 
 
-        for (Map.Entry<XMLTypeHelper, List<DataType>> en: 
getDataTypes(interfaze, true, helpers).entrySet()) {
+        for (Map.Entry<XMLTypeHelper, List<DataType>> en: 
getDataTypes(interfaze, false, helpers).entrySet()) {
             XMLTypeHelper helper = en.getKey();
             if (helper == null) {
                 continue;
             }
             List<XSDefinition> xsDefinitions = 
helper.getSchemaDefinitions(xsdFactory, resolver, en.getValue());
             
-            // TUSCANY-3283 find any schema that has been generated without a 
namespace
-            //              and any schema using the default WSDL schema
-            XSDefinition noNamespaceSchema = null;
-            XSDefinition defaultNamespaceSchema = null;
-            
             for (XSDefinition xsDef: xsDefinitions) {
-                if (xsDef.getNamespace().equals("")){
-                    noNamespaceSchema = xsDef;
-                }
-                if (xsDef.getNamespace().equals(namespaceURI)){
-                    defaultNamespaceSchema = xsDef;
-                }
-                // useful for debugging DOM issues
-                // printDOM(xsDef.getDocument());
-            }
-            
-            // TUSCANY-3283 merge the no namespace schema into the default 
namespace schema
-            if (noNamespaceSchema != null && defaultNamespaceSchema != null){
-                // remove the no namespace schema from our list of schema
-                xsDefinitions.remove(noNamespaceSchema);
-                // merge the schema with no namespace into the schema with the 
default namspace for this WSDL
-                mergeSchema(noNamespaceSchema, defaultNamespaceSchema, 
xsDefinitions);
-            }
-            
-            for (XSDefinition xsDef: xsDefinitions) {
-                // TUSCANY-2757 and TUSCANY-3267 - flip global wrapper 
elements with nillable 
-                // set true to be set to false.  The JAXB RI seems to be 
generating this setting
-                // incorrectly according to the JAXB spec.
+
                 Document doc = xsDef.getDocument();
-                if (doc != null) {
+                if (doc != null) {                    
+                    // TUSCANY-2757 and TUSCANY-3267 - flip global wrapper 
elements with nillable 
+                    // set true to be set to false.  The JAXB RI seems to be 
generating this setting
+                    // incorrectly according to the JAXB spec.                 
   
                     NodeList nodes = doc.getFirstChild().getChildNodes();
                     for (int i = 0; i < nodes.getLength(); i++) {
                         Node aNode = nodes.item(i);
@@ -396,8 +376,10 @@
                         }
                     }
                 }
-                addSchemaExtension(xsDef, schemaCollection, wsdlDefinition, 
definition);
-            }              
+                
+                loadXSD(schemaCollection, xsDef);
+                wsdlDefinition.getXmlSchemas().add(xsDef);
+            }
         }
 
         // remove global wrapper elements with schema definitions from 
generation list
@@ -406,22 +388,17 @@
                 wrappers.remove(wrapperName);
             }
         }
-
+        
+        schemaCollection = new XmlSchemaCollection(); 
 
         // generate schema elements for wrappers that aren't defined in the 
schemas
         if (wrappers.size() > 0) {
             int i = 0;
             int index = 0;
             Map<String, XSDefinition> wrapperXSDs = new HashMap<String, 
XSDefinition>();
-
             Map<Element, Map<String, String>> prefixMaps = new 
HashMap<Element, Map<String, String>>();
             for (Map.Entry<QName, List<ElementInfo>> entry: 
wrappers.entrySet()) {
                 String targetNS = entry.getKey().getNamespaceURI();
-                // make sure wrappers are generated into the default namespace
-                if (targetNS == null ||
-                    targetNS.equals("")){
-                    targetNS = namespaceURI;
-                }
                 Document schemaDoc = null;
                 Element schema = null;
                 XSDefinition xsDef = wrapperXSDs.get(targetNS);
@@ -429,14 +406,22 @@
                     schemaDoc = xsDef.getDocument();
                     schema = schemaDoc.getDocumentElement();
                 } else {
-                    // check schema is not already in the set identified so 
far   
                     xsDef = wsdlDefinition.getSchema(targetNS);
                     if (xsDef != null) {
                         schemaDoc = xsDef.getDocument();
                         schema = schemaDoc.getDocumentElement();
                         wrapperXSDs.put(targetNS, xsDef);
+                        Map<String, String> prefixMap = prefixMaps.get(schema);
+                        if (prefixMap == null){
+                            prefixMap = new HashMap<String, String>();
+                            prefixMaps.put(schema, prefixMap);
+                            String [] prefixes = 
xsDef.getSchema().getNamespaceContext().getDeclaredPrefixes();
+                            for (int j = 0; j < prefixes.length; j++){
+                                
prefixMap.put(xsDef.getSchema().getNamespaceContext().getNamespaceURI(prefixes[j]),
+                                              prefixes[j]);
+                            }
+                        }                        
                     } else {
-                        // create a new schema document
                         schemaDoc = createDocument();
                         schema = schemaDoc.createElementNS(SCHEMA_NS, 
"xs:schema");
                         // The elementFormDefault should be set to 
unqualified, see TUSCANY-2388
@@ -444,9 +429,8 @@
                         schema.setAttribute("attributeFormDefault", 
"qualified");
                         schema.setAttribute("targetNamespace", targetNS);
                         schema.setAttributeNS(XMLNS_NS, "xmlns:xs", SCHEMA_NS);
+                        schema.setAttributeNS(XMLNS_NS, "xmlns:tns", targetNS);
                         schemaDoc.appendChild(schema);
-                        Schema schemaExt = createSchemaExt(definition);
-                        schemaExt.setElement(schema);
                         prefixMaps.put(schema, new HashMap<String, String>());
                         xsDef = xsdFactory.createXSDefinition();
                         xsDef.setUnresolved(true);
@@ -456,7 +440,7 @@
                         xsDef.setLocation(URI.create("xsd_" + index + ".xsd"));
                         index++;
                         wrapperXSDs.put(targetNS, xsDef);
-                    } 
+                    }  
                 }
                 Element wrapper = schemaDoc.createElementNS(SCHEMA_NS, 
"xs:element");
                 schema.appendChild(wrapper);
@@ -477,6 +461,9 @@
                         String prefix = prefixMap.get(nsURI);
                         if (prefix == null) {
                             prefix = "ns" + i++;
+                            while(prefixMap.containsValue(prefix)){
+                                prefix = "ns" + i++;
+                            }
                             prefixMap.put(nsURI, prefix);
                             schema.setAttributeNS(XMLNS_NS, "xmlns:" + prefix, 
nsURI);
                             addSchemaImport(schema, nsURI, schemaDoc);
@@ -502,7 +489,6 @@
                             }
                             QName typeName = element.getType().getQName();
                             String nsURI = typeName.getNamespaceURI();
-                            // we shouldn't have type in a null namespace here
                             if ("".equals(nsURI)) {
                                 xsElement.setAttribute("type", 
typeName.getLocalPart());
                                 addSchemaImport(schema, "", schemaDoc);
@@ -516,6 +502,9 @@
                                                                            
prefix = "tns";
                                                                        } else {
                                         prefix = "ns" + i++;
+                                        while(prefixMap.containsValue(prefix)){
+                                            prefix = "ns" + i++;
+                                        }
                                         addSchemaImport(schema, nsURI, 
schemaDoc);
                                                                        }
                                     prefixMap.put(nsURI, prefix);
@@ -531,31 +520,66 @@
  
             // resolve XSDefinitions containing generated wrappers
             for (XSDefinition xsDef: wrapperXSDs.values()) {
-                if (wsdlDefinition.getSchema(xsDef.getNamespace()) == null){
-                    wsdlDefinition.getXmlSchemas().add(xsDef);
+                if (wsdlDefinition.getSchema(xsDef.getNamespace()) == null) {
+                     wsdlDefinition.getXmlSchemas().add(xsDef);
                 }
+                
+                xsDef.setSchema(null);
+                xsDef.setSchemaCollection(null);
+                loadXSD(schemaCollection, xsDef);
             }
-        }   
+        }
         
-        // TUSCANY-3283 reload all of the schema to take account of any 
wrapper editing that's
-        //             happened. Can't just extend what's there as the schema 
collection won't
-        //             let me reload a schema that's already been loaded. 
-        schemaCollection = new XmlSchemaCollection();
+        XSDefinition noNamespaceSchema = null;
+        XSDefinition defaultNamespaceSchema = null;     
+
         for (XSDefinition xsDef: wsdlDefinition.getXmlSchemas()) {
-            xsDef.setSchema(null);
-            xsDef.setSchemaCollection(null);
-            loadXSD(schemaCollection, xsDef);
+            // only apply these changes if we have a DOM to work with
+            // this will generally come from the JAXB generation. SDO
+            // just goes straight to generating XmlSchema structures
+            Document doc = xsDef.getDocument();
+            if (doc != null) {
+                // TUSCANY-3283 find any schema that has been generated 
without a namespace
+                //              and any schema using the default WSDL schema 
so that we can
+                //              merge the two together              
+                if (xsDef.getNamespace().equals("")){
+                    noNamespaceSchema = xsDef;
+                }
+                if (xsDef.getNamespace().equals(namespaceURI)){
+                    defaultNamespaceSchema = xsDef;
+                } 
+            }
+        }     
+        
+        // TUSCANY-3283 merge the no namespace schema into the default 
namespace schema
+        if (noNamespaceSchema != null && defaultNamespaceSchema != null){
+            // remove the no namespace schema from our list of schema
+            wsdlDefinition.getXmlSchemas().remove(noNamespaceSchema);
+            // merge the schema with no namespace into the schema with the 
default namspace for this WSDL
+            mergeSchema(noNamespaceSchema, defaultNamespaceSchema, 
wsdlDefinition.getXmlSchemas());
+            
+            schemaCollection = new XmlSchemaCollection();
+            defaultNamespaceSchema.setSchema(null);
+            defaultNamespaceSchema.setSchemaCollection(null);
+            loadXSD(schemaCollection, defaultNamespaceSchema);
+        }        
+        
+        // push the schema into the WSDL 
+        for (XSDefinition xsDef: wsdlDefinition.getXmlSchemas()){
+            addSchemaExtension(xsDef, schemaCollection, wsdlDefinition, 
definition);
         }
         
-        // TUSCANY-3283
         // useful for debugging DOM issues
-        //for (XSDefinition xsDef : wsdlDefinition.getXmlSchemas()){
-        //    printDOM(xsDef.getDocument());
-        //}
-
+        //System.out.println("======================= Schema DOM 
=======================" );
+        //for (XSDefinition xsDef : wsdlDefinition.getXmlSchemas()) {
+        //    if (xsDef.getDocument() != null) {
+        //        printDOM(xsDef.getDocument());
+        //    }
+        //}        
+        
         return definition;
-    }
-    
+    }        
+   
     /**
      * TUSCANY-3283 
      * Merge the no namespace schema into the defualt namespace schema
@@ -566,7 +590,7 @@
      * @param defaultNamespaceSchema
      * @param xsDefinitions
      */
-    private void mergeSchema(XSDefinition noNamespaceSchema, XSDefinition 
defaultNamespaceSchema, List<XSDefinition> xsDefinitions){
+    private void mergeSchema(XSDefinition noNamespaceSchema, XSDefinition 
defaultNamespaceSchema, Collection<XSDefinition> xsDefinitions){
         Document fromDoc = noNamespaceSchema.getDocument();
         Document toDoc = defaultNamespaceSchema.getDocument();
           
@@ -597,7 +621,21 @@
             // merge the DOM types
             Node node = fromDoc.getDocumentElement().getChildNodes().item(i);
             Node newNode = toDoc.importNode(node, true);
-            toDoc.getDocumentElement().insertBefore(newNode, toDocFirstChild);
+            
+            if (newNode.getLocalName() != null && 
+                (newNode.getLocalName().equals("import") || 
+                 newNode.getLocalName().equals("include") ||
+                 newNode.getLocalName().equals("redefine") ||
+                 newNode.getLocalName().equals("annotation") )){
+               toDoc.getDocumentElement().insertBefore(newNode, 
toDocFirstChild);
+            } else {
+               toDoc.getDocumentElement().appendChild(newNode);
+            }
+        }
+        
+        // fix up any references to the types we've just moved
+        for(int i = 0; i < 
fromDoc.getDocumentElement().getChildNodes().getLength(); i++){
+            Node node = fromDoc.getDocumentElement().getChildNodes().item(i);
             
             // correct any references to no name types in other schema
             if (node.getLocalName() != null && 
@@ -611,12 +649,12 @@
     /**
      * TUSCANY-3283 
      * Correct any namespace prefixes in the no namespace schema to prevent 
them from 
-     * clashing when the non namespace schema is merged with the default schema
+     * clashing when the no namespace schema is merged with the default schema
      * 
      * @param fromSchema
      * @param fromPrefix
      * @param toPrefix
-     */
+     */   
     private void fixUpNoNamespaceNamespaces(Document fromSchema, String 
fromPrefix){
         NodeList elements = 
fromSchema.getElementsByTagNameNS("http://www.w3.org/2001/XMLSchema","element";);
         for (int k = 0; k < elements.getLength(); k++){
@@ -631,7 +669,7 @@
             }
         }
     }
-    
+
     /**
      * TUSCANY-3283 
      * Correct any references in the schema list that used to point to types 
in the
@@ -639,59 +677,60 @@
      * 
      * @param fromSchema
      * @param toSchema
-     */
-    private void fixUpNoNamespaceReferences(List<XSDefinition> xsDefinitions, 
String typeName, String defaultNamespace){
+     */  
+    private void fixUpNoNamespaceReferences(Collection<XSDefinition> 
xsDefinitions, String typeName, String defaultNamespace){
         
         // fix up any references in any other schema that points to this type
         for (XSDefinition xsDef: xsDefinitions) {
 
-            // look for any imports of the no namespace schema
-            Document refSchema = xsDef.getDocument();
-            NodeList imports = 
refSchema.getElementsByTagNameNS("http://www.w3.org/2001/XMLSchema","import";);
-            
-            for (int j = 0; j < imports.getLength(); j++){
-                Element _import = (Element)imports.item(j);
-                
-                // we only need to process this schema if JAXB determined that 
-                // it needed to import the no namespace schema
-                if (_import.getAttributes().getLength() == 0){
-                    if (xsDef.getNamespace().equals(defaultNamespace)){
-                        // remove the import
-                        _import.getParentNode().removeChild(_import);          
              
-                    } else {
-                        // update the import to refer to the default namespace
-                        _import.setAttribute("namespace", defaultNamespace);
-                    }
-
-                    // look for any type attributes that refer to the 
-                    // node being merged
-                    NodeList elements = 
refSchema.getElementsByTagNameNS("http://www.w3.org/2001/XMLSchema","element";);
-                    for (int k = 0; k < elements.getLength(); k++){
-                        Element element = (Element) elements.item(k);
-                        if (element != null && element.getAttributes() != 
null) {
-                            Node type = 
element.getAttributes().getNamedItem("type");
-                            
-                            if (type != null &&
-                                type.getNodeValue().equals(typeName)){
-                                if 
(xsDef.getNamespace().equals(defaultNamespace)){
-                                    // just add "tns" in front of the type 
name as
-                                    // we have merged the type into this schema
-                                    type.setNodeValue("tns:" + 
type.getNodeValue());
-                                } else {
-                                    // add a namespace 
-                                    
refSchema.getDocumentElement().setAttributeNS("http://www.w3.org/2000/xmlns/";, 
"xmlns:__nnns", defaultNamespace);
-    
-                                    // prefix the type name with the namespace
-                                    type.setNodeValue("__nnns:" + 
type.getNodeValue());
-                                }
-                            }
-                        }
-                    }
-                }
-            }
+               if (xsDef.getDocument() != null){
+                   // look for any imports of the no namespace schema
+                   Document refSchema = xsDef.getDocument();
+                   NodeList imports = 
refSchema.getElementsByTagNameNS("http://www.w3.org/2001/XMLSchema","import";);
+                   
+                   for (int j = 0; j < imports.getLength(); j++){
+                       Element _import = (Element)imports.item(j);
+                       
+                       // Fix up the import
+                       if (_import.getAttributes().getLength() == 0){
+                           if (xsDef.getNamespace().equals(defaultNamespace)){
+                               // remove the import
+                               _import.getParentNode().removeChild(_import);   
                     
+                           } else {
+                               // update the import to refer to the default 
namespace
+                               _import.setAttribute("namespace", 
defaultNamespace);
+                           }
+                       }
+                   }
+       
+                   // look for any type attributes that refer to the 
+                   // node being merged
+                   NodeList elements = 
refSchema.getElementsByTagNameNS("http://www.w3.org/2001/XMLSchema","element";);
+                   for (int k = 0; k < elements.getLength(); k++){
+                       Element element = (Element) elements.item(k);
+                       if (element != null && element.getAttributes() != null) 
{
+                           Node type = 
element.getAttributes().getNamedItem("type");
+                           
+                           if (type != null &&
+                               type.getNodeValue().equals(typeName)){
+                               if 
(xsDef.getNamespace().equals(defaultNamespace)){
+                                   // just add "tns" in front of the type name 
as
+                                   // we have merged the type into this schema
+                                   type.setNodeValue("tns:" + 
type.getNodeValue());
+                               } else {
+                                   // add a namespace 
+                                   
refSchema.getDocumentElement().setAttributeNS("http://www.w3.org/2000/xmlns/";, 
"xmlns:__nnns", defaultNamespace);
+       
+                                   // prefix the type name with the namespace
+                                   type.setNodeValue("__nnns:" + 
type.getNodeValue());
+                               }
+                           }
+                       }
+                   }
+               }
         }
     }
-    
+
     /*
      * Just used when debugging DOM problems
      */
@@ -764,8 +803,8 @@
                     throw new RuntimeException(e);
                 }
             }
-            loadXSD(schemaCollection, xsDef);
-            wsdlDefinition.getXmlSchemas().add(xsDef);
+            //loadXSD(schemaCollection, xsDef);
+            //wsdlDefinition.getXmlSchemas().add(xsDef);
             Element schema = document.getDocumentElement();
             Schema schemaExt = createSchemaExt(definition);
             schemaExt.setDocumentBaseURI(document.getDocumentURI());


Reply via email to