Hi Dan ,
I have fixed this issue with this commit :
http://svn.apache.org/viewvc?view=rev&rev=548344 .
--Jim
Dan Diephouse wrote:
> I was looking into this and I found that we have at least one test
which
> shows a slightly different variation of the same problem. If you add
> these
> lines to the CodeFirstTest. you'll get failures:
>
> assertValid("//xsd:[EMAIL PROTECTED]'FooEcho2HeaderRequest'][1]", doc);
> assertInvalid("//xsd:[EMAIL PROTECTED]'FooEcho2HeaderRequest'][2]",
doc);
>
> Note that this is a test case which involves headers though. I
suspect
> that
> the one exemplified by Dan Connelly could be reproduced by adding a
> couple
> operations to FooService like:
>
> Foo echo1(Foo foo)
> Foo echo2(Foo foo)
>
> In this case CXF would create the same <xsd:element name="foo"
> type="foo"/>
> multiple times I think. It seems both JAXBSchemaIntiailizer and
> ReflectionServiceFactory are creating these wrapper elements (i.e.
new
> XsSchemaElement). I don't know if they're checking to see if these
> elements
> already exist at the moment...
>
> I think this could be considered a pretty critical bug - i.e. we
need to
> hold up the release until we get it fixed. I'm posting it here in
case
> anyone feels motivated to go through it before I get up again
tomorrow
> (getting a little late here) :-). Otherwise I'll fix it first thing
> tomorrow.
>
> Cheers,
> - Dan
>
> ---------- Forwarded message ----------
> From: Dan Diephouse <[EMAIL PROTECTED]>
> Date: Jun 17, 2007 10:23 PM
> Subject: Re: How to invoke a CXF endpoint from a WCF client ?
> To: [EMAIL PROTECTED]
>
> This is definitely not valid per the spec... I think this might be a
> problem
> with the JAXBDataBinding/JAXBSchemaInitializer code.
>
> Any chance you tried a snapshot build recently?
> Thanks,
> - Dan
>
> On 6/17/07, Dan Connelly <[EMAIL PROTECTED]> wrote:
>>
>> OK. Don't blame VS Express ("Orcas") just yet. The major problem
>> appears to come from CXF (2.0 RC in my case).
>>
>> The snag shows up when Orcas runs svcutil.exe, which is does for
"Add
>> Service Reference ...". This is the Microsoft tool equivalent of
>> wsdl2java (or wsimport).
>>
>> Svcutil throws errors and fails to produce any C# artifacts when the
>> WSDL it reads contains 2 or more element type definitions with
the same
>> name. And, duplicate element types seems quite common in CXF
samples
>> (at least for xformat BindingType).
>>
>> For instance, for sample "hello_world_xml_bare" server returns
the the
>> following definitions in response to the ?wsdl URL:
>>
>> ...
>> <wsdl:types>
>> <xs:schema attributeFormDefault="unqualified"
>> elementFormDefault="unqualified"
>> targetNamespace="http://apache.org/hello_world_xml_http/bare/types">
>> <xs:element name="myComplexStruct" nillable="true"
>> type="tns:myComplexStructType"/>
>> <xs:element name="requestType" nillable="true"
>> type="xs:string"/>
>> <xs:element name="responseType" nillable="true"
>> type="xs:string"/>
>>
>> <xs:complexType name="myComplexStructType">
>> <xs:sequence>
>> <xs:element form="qualified" name="elem1"
>> type="xs:string"/>
>> <xs:element form="qualified" name="elem2"
>> type="xs:string"/>
>> <xs:element form="qualified" name="elem3"
>> type="xs:int"/>
>> </xs:sequence>
>> </xs:complexType>
>> <xs:element name="myComplexStruct" nillable="true"
>> type="tns:myComplexStructType"/>
>> <xs:element name="responseType" nillable="true"
type="xs:string"/>
>> <xs:element name="requestType" nillable="true"
type="xs:string"/>
>> <xs:element name="responseType" nillable="true"
type="xs:string"/>
>> </xs:schema>
>> <xsd:schema attributeFormDefault="unqualified"
>> elementFormDefault="qualified"
>> targetNamespace="http://apache.org/hello_world_xml_http/bare ">
>> <xsd:import
>> namespace="http://apache.org/hello_world_xml_http/bare/types"/>
>> <xsd:import
>> namespace=" http://apache.org/hello_world_xml_http/bare/types"/>
>> <xsd:element name="in" nillable="true"
>> type="ns0:myComplexStructType"/>
>> <xsd:element name="out" nillable="true"
>> type="ns0:myComplexStructType"/>
>> <xsd:element name="out" nillable="true" type="xsd:string"/>
>> </xsd:schema>
>> </wsdl:types>
>> ...
>>
>>
>> Note:
>>
>> This WSDL has 2 definitions each named myComplextType,
requestType,
>> out
>> It also has 3 definitions named: responseType
>>
>> I suspect that the WSDL XML specification would not allow multiple
>> declarations of element types with the same name.
>>
>> Whether or not the spec allows duplicate names, the fact it
breaks the
>> Microsoft tooling (which would be used frequently for client
creation)
>> is full justification for CXF eliminating its output of element type
>> names in the synthetic WSDL.
>>
>> -- Dan Connelly
>>
>>
>>
------------------------------------------------------------------------------------------------------
>>
>>
>>
>> Dan Connelly wrote:
>> > Compare with: How to invoke a WSIT endpoint from a WCF client ?
>> > <http://blogs.sun.com/arungupta/entry/how_to_invoke_a_wsit>
>> >
>> > I am trying this process but for a CXF endpoint using latest C#
Visual
>> > Studio 9 Express ("Orcas") from Microsoft.
>> >
>> > I have not found a CXF sample WSDL that works cleanly with
Orcas "Add
>> > Service Reference" function.
>> >
>> > Any suggestions?
>> >
>> > -- Dan Connelly
>> >
>> >
>> >
>>
>>
>
>