You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by pussinboots <pu...@googlemail.com> on 2008/10/09 17:22:01 UTC

problem with jaxb and namespace prefix

Hello,

i tried to customize the soap requests and responses. Thats all most done
but I've problems with the namespace prefix in the soap response.

The soap request is okaz and look like:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns="http://bla/namespace/bla/">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:GetProgram>
         <ns:programId>49</ns:programId>
         <!--Optional:-->
         <ns:applicationId>F43487542E5A424A8818</ns:applicationId>
      </ns:GetProgram>
   </soapenv:Body>
</soapenv:Envelope>

The response is the problem look here

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:GetProgramResponse xmlns:ns2="http://bla/namespace/bla/">
         <ns2:return>
            <ns2:programsResult>
               <ns2:programItem id="49">
                  <ns2:adrank>0.0</ns2:adrank>
                  <ns2:products>0</ns2:products>
               </ns2:programItem>
            </ns2:programsResult>
         </ns2:return>
      </ns2:GetProgramResponse>
   </soap:Body>
</soap:Envelope>

And it should look like this

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <GetProgramResponse xmlns="http://bla/namespace/bla/">
         <return>
            <programsResult>
               <programItem id="49">
                  <adrank>0.0</ns2:adrank>
                  <products>0</ns2:products>
               </programItem>
            </programsResult>
         </return>
      </GetProgramResponse>
   </soap:Body>
</soap:Envelope>

I|ve tried all the things that I found in the internet. I implemented a
NamespacePrefixMapper but that didn|t solve the problem. 

So here some pieces of code. 

the package-info.java:

@javax.xml.bind.annotation.XmlSchema(namespace =
"http://bla/namespace/bla/",  elementFormDefault =
javax.xml.bind.annotation.XmlNsForm.QUALIFIED)

the wsdl:

<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions
name="PublisherService" targetNamespace="http://bla/namespace/bla/"
xmlns:ns1="http://cxf.apache.org/bindings/xformat"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://bla/namespace/bla/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <wsdl:types>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://bla/namespace/bla/"
xmlns:tns="http://bla/namespace/bla/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="GetProgram" type="tns:GetProgram" />
    <xs:element name="GetProgramResponse" type="tns:GetProgramResponse" />
    <xs:complexType name="GetProgram">
        <xs:sequence>
            <xs:element name="programId" type="xs:int" />
            <xs:element minOccurs="0" name="applicationId" type="xs:string"
/>
        </xs:sequence>

    </xs:complexType>
    <xs:complexType name="GetProgramResponse">
        <xs:sequence>
            <xs:element minOccurs="0" name="return">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="page" type="xs:int"
/>
                        <xs:element minOccurs="0" name="items" type="xs:int"
/>
                        <xs:element minOccurs="0" name="total"
type="xs:long" />

                        <xs:element name="query" type="xs:string" />
                        <xs:element name="code" type="xs:string" />
                        <xs:element name="message" type="xs:string" />
                        <xs:element name="programsResult"
type="tns:programsResult" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="programsResult">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="programItem"
type="tns:programItem" />
            <xs:element name="categories" type="tns:categoriesType" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="programItem">
        <xs:sequence>
            <xs:element name="title" type="xs:string" />

            <xs:element name="name" type="xs:string" />
            <xs:element name="adrank" type="xs:float" />
            <xs:element name="description" type="xs:string" />
            <xs:element name="products" type="xs:int" />
            <xs:element name="vertical" type="xs:string" />
            <xs:element name="regions" type="tns:regionsType" />
            <xs:element name="categories" type="tns:categoriesType" />
            <xs:element name="startdate" type="xs:dateTime" />
            <xs:element name="enddate" type="xs:dateTime" />

            <xs:element name="url" type="xs:anyURI" />
            <xs:element name="image" type="xs:anyURI" />
            <xs:element name="currency" type="xs:string" />
            <xs:element name="conditions" type="tns:conditionsType" />
        </xs:sequence>
        <xs:attribute name="id" type="xs:int" use="required" />
        <xs:attribute name="lang" type="xs:string" />
    </xs:complexType>
    <xs:complexType name="regionsType">

        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="region"
nillable="true" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="categoriesType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="category"
nillable="true" type="tns:categoryType" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="categoryType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="id" type="xs:int" use="required" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="conditionsType">
        <xs:sequence>

            <xs:element name="views" type="tns:viewsType" />
            <xs:element name="clicks" type="tns:clicksType" />
            <xs:element name="leads" type="tns:leadsType" />
            <xs:element name="sales" type="tns:salesType" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="viewsType">
        <xs:sequence>
            <xs:element minOccurs="0" name="minfixed" type="xs:float" />

            <xs:element minOccurs="0" name="maxfixed" type="xs:float" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="clicksType">
        <xs:sequence>
            <xs:element minOccurs="0" name="minfixed" type="xs:float" />
            <xs:element minOccurs="0" name="maxfixed" type="xs:float" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="leadsType">
        <xs:sequence>
            <xs:element minOccurs="0" name="minfixed" type="xs:float" />
            <xs:element minOccurs="0" name="maxfixed" type="xs:float" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="salesType">
        <xs:sequence>
            <xs:element minOccurs="0" name="minpercent" type="xs:float" />

            <xs:element minOccurs="0" name="maxpercent" type="xs:float" />
            <xs:element minOccurs="0" name="minfixed" type="xs:float" />
            <xs:element minOccurs="0" name="maxfixed" type="xs:float" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="SOAPException">
        <xs:sequence>
            <xs:element form="unqualified" minOccurs="0" name="message"
type="xs:string" />
        </xs:sequence>

    </xs:complexType>
    <xs:element name="SOAPException" nillable="true"
type="tns:SOAPException" />
</xs:schema>
  </wsdl:types>
  <wsdl:message name="GetProgram">
    <wsdl:part element="tns:GetProgram" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="GetProgramResponse">

    <wsdl:part element="tns:GetProgramResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="SOAPException_Exception">
    <wsdl:part element="tns:SOAPException" name="SOAPException_Exception">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="PublisherSoap">
    <wsdl:operation name="GetProgram">

      <wsdl:input message="tns:GetProgram" name="GetProgram">
    </wsdl:input>
      <wsdl:output message="tns:GetProgramResponse"
name="GetProgramResponse">
    </wsdl:output>
      <wsdl:fault message="tns:SOAPException_Exception"
name="SOAPException_Exception">
    </wsdl:fault>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="PublisherServiceSoapBinding" type="tns:PublisherSoap">

    <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="GetProgram">
      <soap:operation soapAction="" style="document" />
      <wsdl:input name="GetProgram">
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output name="GetProgramResponse">
        <soap:body use="literal" />
      </wsdl:output>

      <wsdl:fault name="SOAPException_Exception">
        <soap:fault name="SOAPException_Exception" use="literal" />
      </wsdl:fault>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="PublisherService">
    <wsdl:port binding="tns:PublisherServiceSoapBinding"
name="PublisherService">
      <soap:address location="http://localhost/SoapService" />
    </wsdl:port>

  </wsdl:service>
</wsdl:definitions>

Any advices for me.

Thanks for your attention

-- 
View this message in context: http://www.nabble.com/problem-with-jaxb-and-namespace-prefix-tp19901215p19901215.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: problem with jaxb and namespace prefix

Posted by pussinboots <pu...@googlemail.com>.
I' ve also test it with elementFormDefault =
javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED 

the result was :

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:GetProgramResponse xmlns:ns2="http://bla/namespace/bla/">
         <ns2:return>
            <programsResult>
               <programItem id="49">
                  <adrank>0.0</adrank>
                  <products>0</products>
               </programItem>
            </programsResult>
         </ns2:return>
      </ns2:GetProgramResponse>
   </soap:Body>
</soap:Envelope>

but the ns2 namespace prefix is still present.
-- 
View this message in context: http://www.nabble.com/problem-with-jaxb-and-namespace-prefix-tp19901215p19901694.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: problem with jaxb and namespace prefix

Posted by pussinboots <pu...@googlemail.com>.
Thanks I've done it ant it works now.

-- 
View this message in context: http://www.nabble.com/problem-with-jaxb-and-namespace-prefix-tp19901215p19921864.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: problem with jaxb and namespace prefix

Posted by Daniel Kulp <dk...@apache.org>.
In SOAPException.java,  change the line;

@XmlElement(namespace = "")
to just:
@XmlElement

That should do it.   Basically, the namespace = "" thing tells jaxb that that 
element should be unqualified.   Thus, JAXB doesn't set the default namespace 
as something then then would need it unset.   If everything is "qualified", 
then it goes ahead and sets the default namespace.


Dan


On Friday 10 October 2008 11:33:07 am pussinboots wrote:
> I've found the problem, but nor solution for that.
>
> The problem is the used WebFault (SOAPException).
>
> @WebResult(name = "return", targetNamespace = Constants.NAMESPACE)
>     @WebMethod(operationName = "GetProgram")
>     public GetProgramResponse.Return getProgram(
>         @WebParam(name = "programId", targetNamespace =
> Constants.NAMESPACE) int programId,
>         @WebParam(name = "applicationId", targetNamespace =
> Constants.NAMESPACE)
>         java.lang.String applicationId
>     ) throws SOAPException;
>
> If i comment the throws SOAPException code block than the response is what
> I want.
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>    <soap:Body>
>       <GetProgramResponse xmlns="http://bla/namespace/bla/">
>          <return>
>             <programsResult>
>                <programItem id="49">
>                   <name>program name</name>
>                </programItem>
>             </programsResult>
>          </return>
>       </GetProgramResponse>
>    </soap:Body>
> </soap:Envelope>
>
> But I've to use the throws SOAPException code block.
> Any advices ?



-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog

Re: problem with jaxb and namespace prefix

Posted by pussinboots <pu...@googlemail.com>.
I've found the problem, but nor solution for that.

The problem is the used WebFault (SOAPException).

@WebResult(name = "return", targetNamespace = Constants.NAMESPACE)
    @WebMethod(operationName = "GetProgram")
    public GetProgramResponse.Return getProgram(
        @WebParam(name = "programId", targetNamespace = Constants.NAMESPACE)
        int programId,
        @WebParam(name = "applicationId", targetNamespace =
Constants.NAMESPACE)
        java.lang.String applicationId
    ) throws SOAPException;

If i comment the throws SOAPException code block than the response is what I
want.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <GetProgramResponse xmlns="http://bla/namespace/bla/">
         <return>
            <programsResult>
               <programItem id="49">
                  <name>program name</name>
               </programItem>
            </programsResult>
         </return>
      </GetProgramResponse>
   </soap:Body>
</soap:Envelope>

But I've to use the throws SOAPException code block.
Any advices ?
-- 
View this message in context: http://www.nabble.com/problem-with-jaxb-and-namespace-prefix-tp19901215p19920624.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: problem with jaxb and namespace prefix

Posted by pussinboots <pu...@googlemail.com>.
Hz Dan,

I've found a very little differences between the 2.1.2 and the
2.1.3-SNAPSHOT version.

When i specified elementFormDefault to UNQUALIFIED in the package-info.java
than the soap response
looks different.

2.1.2:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:GetProgramResponse xmlns:ns2="http://bla/namespace/bla/">
         <return>
            <programsResult>
               <programItem id="49">
                  <name>program name</name>
               </programItem>
            </programsResult>
         </return>
      </ns2:GetProgramResponse>
   </soap:Body>
</soap:Envelope>

2.1.3-SNAPSHOT
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:GetProgramResponse xmlns:ns2="http://bla/namespace/bla/">
         <ns2:return>
            <programsResult>
               <programItem id="49">
                  <name>program name</name>
               </programItem>
            </programsResult>
         </ns2:return>
      </ns2:GetProgramResponse>
   </soap:Body>
</soap:Envelope>

Thats only a advice for you.
-- 
View this message in context: http://www.nabble.com/problem-with-jaxb-and-namespace-prefix-tp19901215p19917063.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: problem with jaxb and namespace prefix

Posted by pussinboots <pu...@googlemail.com>.
Here is the code to reproduce mz problem.

http://www.nabble.com/file/p19916794/zxapp_soap.zip zxapp_soap.zip 
-- 
View this message in context: http://www.nabble.com/problem-with-jaxb-and-namespace-prefix-tp19901215p19916794.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: problem with jaxb and namespace prefix

Posted by pussinboots <pu...@googlemail.com>.
Hello Dan,

thanks for your quick reply.

Here the information for that you asked.

I used 2.1.2 cxf version and I tried also with 2.1.3-SNAPSHOT version.

You are right the messages are equivalent but we have to provide the one
with the default namespace because users have generated soap clients 
for that version and we have to be combatible to that.

I have the asm-2.2.3.jar on my classpath.

I tried your advice but nothing change. I will package a little test project
for you.
-- 
View this message in context: http://www.nabble.com/problem-with-jaxb-and-namespace-prefix-tp19901215p19915516.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: problem with jaxb and namespace prefix

Posted by Daniel Kulp <dk...@apache.org>.
First off, what version of CXF?

Second, both of those response messages are equivilent.   What's the problem?   
The messages are certainly correct per wsdl.

Third, do you have an asm jar on the classpath?   That might be required here.

Finally, you could try doing:

@javax.xml.bind.annotation.XmlSchema(
 namespace ="http://bla/namespace/bla/",  
 elementFormDefault =javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
 xmlns = {@XmlNs(namespace="http://bla/namespace/bla/", prefix="")}
)


Dan


On Thursday 09 October 2008 11:22:01 am pussinboots wrote:
> Hello,
>
> i tried to customize the soap requests and responses. Thats all most done
> but I've problems with the namespace prefix in the soap response.
>
> The soap request is okaz and look like:
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:ns="http://bla/namespace/bla/">
>    <soapenv:Header/>
>    <soapenv:Body>
>       <ns:GetProgram>
>          <ns:programId>49</ns:programId>
>          <!--Optional:-->
>          <ns:applicationId>F43487542E5A424A8818</ns:applicationId>
>       </ns:GetProgram>
>    </soapenv:Body>
> </soapenv:Envelope>
>
> The response is the problem look here
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>    <soap:Body>
>       <ns2:GetProgramResponse xmlns:ns2="http://bla/namespace/bla/">
>          <ns2:return>
>             <ns2:programsResult>
>                <ns2:programItem id="49">
>                   <ns2:adrank>0.0</ns2:adrank>
>                   <ns2:products>0</ns2:products>
>                </ns2:programItem>
>             </ns2:programsResult>
>          </ns2:return>
>       </ns2:GetProgramResponse>
>    </soap:Body>
> </soap:Envelope>
>
> And it should look like this
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>    <soap:Body>
>       <GetProgramResponse xmlns="http://bla/namespace/bla/">
>          <return>
>             <programsResult>
>                <programItem id="49">
>                   <adrank>0.0</ns2:adrank>
>                   <products>0</ns2:products>
>                </programItem>
>             </programsResult>
>          </return>
>       </GetProgramResponse>
>    </soap:Body>
> </soap:Envelope>
>
> I|ve tried all the things that I found in the internet. I implemented a
> NamespacePrefixMapper but that didn|t solve the problem.
>
> So here some pieces of code.
>
> the package-info.java:
>
> @javax.xml.bind.annotation.XmlSchema(namespace =
> "http://bla/namespace/bla/",  elementFormDefault =
> javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
>
> the wsdl:
>
> <?xml version='1.0' encoding='UTF-8'?><wsdl:definitions
> name="PublisherService" targetNamespace="http://bla/namespace/bla/"
> xmlns:ns1="http://cxf.apache.org/bindings/xformat"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:tns="http://bla/namespace/bla/"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>   <wsdl:types>
> <xs:schema attributeFormDefault="unqualified"
> elementFormDefault="qualified" targetNamespace="http://bla/namespace/bla/"
> xmlns:tns="http://bla/namespace/bla/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>     <xs:element name="GetProgram" type="tns:GetProgram" />
>     <xs:element name="GetProgramResponse" type="tns:GetProgramResponse" />
>     <xs:complexType name="GetProgram">
>         <xs:sequence>
>             <xs:element name="programId" type="xs:int" />
>             <xs:element minOccurs="0" name="applicationId" type="xs:string"
> />
>         </xs:sequence>
>
>     </xs:complexType>
>     <xs:complexType name="GetProgramResponse">
>         <xs:sequence>
>             <xs:element minOccurs="0" name="return">
>                 <xs:complexType>
>                     <xs:sequence>
>                         <xs:element minOccurs="0" name="page" type="xs:int"
> />
>                         <xs:element minOccurs="0" name="items"
> type="xs:int" />
>                         <xs:element minOccurs="0" name="total"
> type="xs:long" />
>
>                         <xs:element name="query" type="xs:string" />
>                         <xs:element name="code" type="xs:string" />
>                         <xs:element name="message" type="xs:string" />
>                         <xs:element name="programsResult"
> type="tns:programsResult" />
>                     </xs:sequence>
>                 </xs:complexType>
>             </xs:element>
>         </xs:sequence>
>     </xs:complexType>
>
>     <xs:complexType name="programsResult">
>         <xs:sequence>
>             <xs:element maxOccurs="unbounded" name="programItem"
> type="tns:programItem" />
>             <xs:element name="categories" type="tns:categoriesType" />
>         </xs:sequence>
>     </xs:complexType>
>     <xs:complexType name="programItem">
>         <xs:sequence>
>             <xs:element name="title" type="xs:string" />
>
>             <xs:element name="name" type="xs:string" />
>             <xs:element name="adrank" type="xs:float" />
>             <xs:element name="description" type="xs:string" />
>             <xs:element name="products" type="xs:int" />
>             <xs:element name="vertical" type="xs:string" />
>             <xs:element name="regions" type="tns:regionsType" />
>             <xs:element name="categories" type="tns:categoriesType" />
>             <xs:element name="startdate" type="xs:dateTime" />
>             <xs:element name="enddate" type="xs:dateTime" />
>
>             <xs:element name="url" type="xs:anyURI" />
>             <xs:element name="image" type="xs:anyURI" />
>             <xs:element name="currency" type="xs:string" />
>             <xs:element name="conditions" type="tns:conditionsType" />
>         </xs:sequence>
>         <xs:attribute name="id" type="xs:int" use="required" />
>         <xs:attribute name="lang" type="xs:string" />
>     </xs:complexType>
>     <xs:complexType name="regionsType">
>
>         <xs:sequence>
>             <xs:element maxOccurs="unbounded" minOccurs="0" name="region"
> nillable="true" type="xs:string" />
>         </xs:sequence>
>     </xs:complexType>
>     <xs:complexType name="categoriesType">
>         <xs:sequence>
>             <xs:element maxOccurs="unbounded" minOccurs="0" name="category"
> nillable="true" type="tns:categoryType" />
>         </xs:sequence>
>     </xs:complexType>
>
>     <xs:complexType name="categoryType">
>         <xs:simpleContent>
>             <xs:extension base="xs:string">
>                 <xs:attribute name="id" type="xs:int" use="required" />
>             </xs:extension>
>         </xs:simpleContent>
>     </xs:complexType>
>     <xs:complexType name="conditionsType">
>         <xs:sequence>
>
>             <xs:element name="views" type="tns:viewsType" />
>             <xs:element name="clicks" type="tns:clicksType" />
>             <xs:element name="leads" type="tns:leadsType" />
>             <xs:element name="sales" type="tns:salesType" />
>         </xs:sequence>
>     </xs:complexType>
>     <xs:complexType name="viewsType">
>         <xs:sequence>
>             <xs:element minOccurs="0" name="minfixed" type="xs:float" />
>
>             <xs:element minOccurs="0" name="maxfixed" type="xs:float" />
>         </xs:sequence>
>     </xs:complexType>
>     <xs:complexType name="clicksType">
>         <xs:sequence>
>             <xs:element minOccurs="0" name="minfixed" type="xs:float" />
>             <xs:element minOccurs="0" name="maxfixed" type="xs:float" />
>         </xs:sequence>
>     </xs:complexType>
>
>     <xs:complexType name="leadsType">
>         <xs:sequence>
>             <xs:element minOccurs="0" name="minfixed" type="xs:float" />
>             <xs:element minOccurs="0" name="maxfixed" type="xs:float" />
>         </xs:sequence>
>     </xs:complexType>
>     <xs:complexType name="salesType">
>         <xs:sequence>
>             <xs:element minOccurs="0" name="minpercent" type="xs:float" />
>
>             <xs:element minOccurs="0" name="maxpercent" type="xs:float" />
>             <xs:element minOccurs="0" name="minfixed" type="xs:float" />
>             <xs:element minOccurs="0" name="maxfixed" type="xs:float" />
>         </xs:sequence>
>     </xs:complexType>
>     <xs:complexType name="SOAPException">
>         <xs:sequence>
>             <xs:element form="unqualified" minOccurs="0" name="message"
> type="xs:string" />
>         </xs:sequence>
>
>     </xs:complexType>
>     <xs:element name="SOAPException" nillable="true"
> type="tns:SOAPException" />
> </xs:schema>
>   </wsdl:types>
>   <wsdl:message name="GetProgram">
>     <wsdl:part element="tns:GetProgram" name="parameters">
>     </wsdl:part>
>   </wsdl:message>
>   <wsdl:message name="GetProgramResponse">
>
>     <wsdl:part element="tns:GetProgramResponse" name="parameters">
>     </wsdl:part>
>   </wsdl:message>
>   <wsdl:message name="SOAPException_Exception">
>     <wsdl:part element="tns:SOAPException" name="SOAPException_Exception">
>     </wsdl:part>
>   </wsdl:message>
>   <wsdl:portType name="PublisherSoap">
>     <wsdl:operation name="GetProgram">
>
>       <wsdl:input message="tns:GetProgram" name="GetProgram">
>     </wsdl:input>
>       <wsdl:output message="tns:GetProgramResponse"
> name="GetProgramResponse">
>     </wsdl:output>
>       <wsdl:fault message="tns:SOAPException_Exception"
> name="SOAPException_Exception">
>     </wsdl:fault>
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="PublisherServiceSoapBinding"
> type="tns:PublisherSoap">
>
>     <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="GetProgram">
>       <soap:operation soapAction="" style="document" />
>       <wsdl:input name="GetProgram">
>         <soap:body use="literal" />
>       </wsdl:input>
>       <wsdl:output name="GetProgramResponse">
>         <soap:body use="literal" />
>       </wsdl:output>
>
>       <wsdl:fault name="SOAPException_Exception">
>         <soap:fault name="SOAPException_Exception" use="literal" />
>       </wsdl:fault>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="PublisherService">
>     <wsdl:port binding="tns:PublisherServiceSoapBinding"
> name="PublisherService">
>       <soap:address location="http://localhost/SoapService" />
>     </wsdl:port>
>
>   </wsdl:service>
> </wsdl:definitions>
>
> Any advices for me.
>
> Thanks for your attention



-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog