Brian,
Thanks for sharing the solution. And for working it out yourself in the first place!
Tony
"Brian J. Sayatovic" <[EMAIL PROTECTED]> wrote on 01/12/2004 02:45:45:
> I finally figured out how to set the targetNamespace of the wsdl:
> definitions. The WSDD services have parameters, one of which can be
> used to override the target namespace:
>
> <service ...>
> ...
> <parameter name="wsdlTargetNamespace" value="http://localhost/List"/>
> ...
> </service>
>
> Regards,
> Brian.
>
> Brian J. Sayatovic wrote:
> I'm trying to use the ?WSDL generating capabilities of Axis to
> generate a WSDL Consumable by a non-Axis client, Laszlo. However is
> limited in that it expects the targetNamespace of the schema to be
> the same as the targetNamespace of the wsdl:definitions.
>
> The wsdl:definitions targetNamespace appears to be the full path to
> my service:
>
> <wsdl:definitions targetNamespace="http://localhost:8081/List/services/List
> " ...
>
> However, my schema namespace isn't so simple. In fact, I have two
> schemas for some reason. They are:
>
> <wsdl:types>
> <schema targetNamespace="http://localhost:8081/List/services/List"
> xmlns="http://www.w3.org/2001/XMLSchema">
> <import namespace="http://localhost/List" />
> <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
> </schema>
> <schema targetNamespace="http://localhost/List" xmlns="http:
> //www.w3.org/2001/XMLSchema">
> <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
> <complexType name="ListKey">
> <all>
> <element name="value" type="xsd:string" />
> </all>
> </complexType>
> <complexType name="ListOfThings">
> <all>
> <element name="key" type="impl:ListKey" />
> </all>
> </complexType>
> </schema>
> </wsdl:types>
>
> In the interest of full disclosure, I had to create custom
> Serializers because Laszlo also can't handle an xsd:sequence, so I'm
> using an xsd:all for my complexTypes. Here's the writeSchema method
> for one of my types:
>
> public Element writeSchema(Class javaType, Types types) throws Exception {
> Element complexTypeElement = types.createElement("complexType");
> complexTypeElement.setAttribute("name", "ListKey");
> Element allElement = types.createElement("all");
> complexTypeElement.appendChild(allElement);
> Element elementElement = types.createElement("element");
> elementElement.setAttribute("name", "value");
> elementElement.setAttribute("type", "xsd:string");
> allElement.appendChild(elementElement);
>
> types.writeSchemaElement(ListManagerAxisDelegate.NAMESPACE,
> complexTypeElement);
>
> return complexTypeElement;
> }
>
> And elsewhere, I have ListManagerAxisDelegate.NAMESPACE set to be:
>
> http://localhost:8081/List/services/List
>
> So, I need to figure out who to get the targetNamespace of the
> schema with my types to match the targetNamespace of my wsdl:
> definitions. The thing is, I thought I took care of that by using
> the writeSchemaElemnt... but that just ended up creatign an
> additional schema!
>
> Any ideas?
>
> Regards,
> Brian.
>
>
- WSDL definitions targetNamespace vs. schema(s) targetNa... Brian J. Sayatovic
- Re: WSDL definitions targetNamespace vs. schema(s)... Brian J. Sayatovic
- Re: WSDL definitions targetNamespace vs. schema(s)... Brian J. Sayatovic
- tony . q . weddle