axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeff" <j...@cogentlogic.com>
Subject Re: import schema to wsdl
Date Mon, 06 Jun 2005 06:14:26 GMT
Developing software is a precise science. You have to be very careful about
everything you do but even so you will almost always get it wrong because
that's what humans do. So, we have to check and double check then work hard
to determine the dopey things we are still doing.

In this case, you could start by realizing that in the WSDL file you claim
that BookFlights.xsd targets http://ie/tcd/taylorjw/bookflights/types but in
BookFlights.xsd you actually target http://ie.tcd/taylorje/flightbooking

Do yourself a favour and use just one namespace throughout such as:
    http://ie.tcd/taylorje/flightbooking


Jeff


----- Original Message ----- 
From: "James Taylor" <taylorjw@tcd.ie>
To: <axis-user@ws.apache.org>
Sent: Monday, June 06, 2005 2:05 AM
Subject: Re: import schema to wsdl


wsdl and xsd are in the same directory...

<definitions
  targetNamespace="http://ie/tcd/taylorjw/bookflights/wsdl"
  xmlns="http://schemas.xmlsoap.org/wsdl/"
  xmlns:tns="http://ie/tcd/taylorjw/bookflights/wsdl"
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  xmlns:types="http://ie/tcd/taylorjw/bookflights/types" >

<types>
<xsd:schema
xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
elementFormDefault = "qualified"
targetNamespace = "http://ie/tcd/taylorjw/bookflights/importTypes">
<xsd:import namespace = "http://ie/tcd/taylorjw/bookflights/types"
location="BookFlights.xsd"/>
<xsd:import namespace = "http://www.w3.org/2001/XMLSchema" />

</xsd:schema>
</types>

<message name="bookFlightsReq">
    <part name="parameters" element="types:bookFlightsRequest" />
</message>

<message name="bookFlightsResp">
    <part name="parameters" element="types:bookFlightsResponse" />
</message>

<portType name="BookFlightsPortType">
<operation name="bookFlights">
<input message="tns:bookFlightsReq" />
<output message="tns:bookFlightsResp" />
</operation>
</portType>

<binding name="BookFlightsSOAPBinding" type="tns:BookFlightsPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="bookFlights">
         <soap:operation style="document" soapAction="bookFlights" />
         <input>
              <soap:body use="literal" />
         </input>
         <output>
              <soap:body use="literal" />
         </output>
    </operation>
      </binding>

      <service name="BookFlightsService">
           <port name="BookFlightsSOAPPort"
binding="tns:BookFlightsSOAPBinding">
                <soap:address
location="http://localhost:9081/AxisWeb/services/BookFlightsSOAPPort" />
           </port>
      </service>

</definitions>


<!-- BookFlights.xsd -->


<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
    targetNamespace = "http://ie.tcd/taylorje/flightbooking"
    xmlns:bf = "http://ie.tcd/taylorje/flightbooking">
<xsd:element name = "Booking">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="passenger" type="bf:Passenger"/>
<xsd:element name="flight" type="bf:Flight" minOccurs="0"
maxOccurs="unbounded" />

</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:complexType name="Passenger">
<xsd:sequence>

<xsd:element name="passengerNum" type="xsd:integer" />
<xsd:element name="firstName" type="xsd:string" />
<xsd:element name="lastName" type="xsd:string" />
<xsd:element name="address" type="xsd:string" />

</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Flight" >
<xsd:sequence>

<xsd:element name="flightNum" type="xsd:integer" />
<xsd:element name="sourceAirport" type="xsd:string" />
<xsd:element name="destAirport" type="xsd:string" />
<xsd:element name="flightDate" type="xsd:string" />
<xsd:element name="seatsAvailible" type="xsd:integer" />
<xsd:element name="seatPrice" type="xsd:integer" />
<xsd:element name="numberOfSeatsToBook" type="xsd:string" />
<xsd:element name="bookingNumber" type="xsd:integer" />
<xsd:element name="information" type="xsd:string" />


</xsd:sequence>
</xsd:complexType>

<xsd:element name="bookFlightsRequest">
<xsd:sequence>
<xsd:element name = "bookingRequest" type="bf:Booking"/>
</xsd:sequence>
</xsd:element>

<xsd:element name="bookFlightsResponse">
<xsd:sequence>
<xsd:element name = "bookedFlights" type="bf:Flight"/>
</xsd:sequence>
</xsd:element>


Quoting Jeff <jeff@cogentlogic.com>:

> If you want help on this you will have to supply the complete WSDL file
plus
> all referenced files.
>
>
>
>
> ----- Original Message -----
> From: "James Taylor" <taylorjw@tcd.ie>
> To: <axis-user@ws.apache.org>
> Sent: Monday, June 06, 2005 1:32 AM
> Subject: Re: import schema to wsdl
>
>
> Thanks for your reply Jeff,
>                            will have a good long read of a few standards
but
> I
> generally learn them better by practicing them.
> When you say
> > bookFlightsRequest is not "declared at the start of the wsdl" (at least
> not
> > in that which you have provided).
>
> but bf is declared at the start and I prefix my call to bookFlightsRequest
> with
> bf: in
>
> <message name="bookFlightsResp">
>      <part name="parameters" element="types:bookFlightsResponse" />
> </message>
>
> Regards,
>         James.
>
> Quoting Jeff <jeff@cogentlogic.com>:
>
> > bookFlightsRequest is not "declared at the start of the wsdl" (at least
> not
> > in that which you have provided).
> >
> > WSDL2Java operates on WSDL files. You really need to learn how these
files
> > work, i.e. how they reference external XML Schema documents.
> >
> > location="BookFlights.xsd"  => BookFlights.xsd is in the same location
as
> > the WSDL file.
> >
> > Looks like you would benefit from reading a few standards. See
> http://w3.org
> >
> >
> > Jeff
> >
> >
> > ----- Original Message -----
> > From: "James Taylor" <taylorjw@tcd.ie>
> > To: <axis-user@ws.apache.org>
> > Sent: Monday, June 06, 2005 1:06 AM
> > Subject: Re: import schema to wsdl
> >
> >
> > Yes that's true to a point, but what I'm trying get help with is
deploying
> a
> > wsdl that references a external schema using axis' wsdl2java tool. Thats
> > essentially what I'm trying to do. I'm not sure how to the wsdl2java
tool
> > will
> > pick up the xsd file. This is the error i'm getting now
> >      [java] java.io.IOException: Element
> > {http://localhost:8080/axis/services/bo
> > okflights/types}bookFlightsRequest is referenced but not defined....
> >
> > The bf:bookFlightsRequest is declared at the start of the wsdl like this
> >
> > <definitions
> >   targetNamespace="http://localhost:8080/axis/services/bookflights/wsdl"
> >   xmlns="http://schemas.xmlsoap.org/wsdl/"
> >   xmlns:tns="http://localhost:8080/axis/services/bookflights/wsdl"
> >   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> >   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >   xmlns:bf="http://localhost:8080/axis/services/bookflights/types" >
> >
> > and imported in the types part like so
> >
> > <types>
> >    <xsd:schema
> > xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
> > elementFormDefault = "qualified"
> >         targetNamespace =
> > "http://localhost:8080/axis/services/bookflights/wsdl/types">
> > <xsd:import namespace =
"http://localhost:8080/axis/services/bookflights"
> > location="BookFlights.xsd"/>
> > <xsd:import namespace = "http://www.w3.org/2001/XMLSchema" />
> >    </xsd:schema>
> > </types>
> >
> >
> > Quoting Jeff <jeff@cogentlogic.com>:
> >
> > > Presumably, bf:bookFlightsRequest is in FlightBooking.xsd so you would
> > have
> > > to examine that file. This issue falls within the scope of application
> > > domain debugging and, as such, not a legitimate matter to raise on the
> > Axis
> > > mail-list.
> > >
> > >
> > > Jeff
> > >
> > >
> > > ----- Original Message -----
> > > From: "James Taylor" <taylorjw@tcd.ie>
> > > To: <axis-user@ws.apache.org>
> > > Sent: Sunday, June 05, 2005 10:18 PM
> > > Subject: Re: import schema to wsdl
> > >
> > >
> > > I'm getting this error and am not sure how to fix it
> > >
> > > wsdl2java:
> > >      [echo] Using wsdl in WSDL2Java task...
> > >      [java] WSDLException (at /definitions/message[1]/part):
> > > faultCode=UNBOUND_P
> > > REFIX: Unable to determine namespace of 'bf:bookFlightsRequest'.:
> > >
> > > running this ant task
> > >
> > > <java classname="org.apache.axis.wsdl.WSDL2Java" fork="yes"
> > > failonerror="true">
> > > <classpath refid="projectClasspath" />
> > > <arg value = "-o" />
> > > <arg file = "${pathToService}" />
> > > <arg value = "-d" />
> > > <arg value = "Session" />
> > > <arg value = "-s" />
> > > <arg value = "-N
> > >
> >
>
http://localhost:8080/axis/services/bookflights/flightbooking=${servicePackage}"
> > > />
> > > <arg value = "-N
> > >
http://localhost:8080/axis/services/bookflights/wsdl=${servicePackage}"
> />
> > > <arg file = "${pathToService}/bookFlights.wsdl" />
> > > </java>
> > >
> > >
> > > Quoting James Taylor <taylorjw@tcd.ie>:
> > >
> > > > Hey folks if one refers to a outside shema in a wsdl, like in this
> > > listing,
> > > >
> > > >   <types>
> > > >      <xsd:schema
> > > >      xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
> > > >      elementFormDefault = "qualified"
> > > >         targetNamespace =
> > > > "http://localhost:8080/axis/services/bookflights/wsdl/importtypes"
> > > >
> >
xmlns:bf="http://localhost:8080/axis/services/bookflights/flightbooking">
> > > >         <import namespace =
> > > > "http://localhost:8080/axis/services/bookflights/flightbooking"
> location
> > =
> > > > "FlightBooking.xsd" />
> > > > <import namespace = "http://www.w3.org/2001/XMLSchema" />
> > > >      </xsd:schema>
> > > >    </types>
> > > >
> > > > should the schema be in the same directory as the wsdl. I've this
wsdl
> > in
> > > > /project/bookflights and the ant build file in /ant. I'm using
axis's
> > > > wsdl2java
> > > > tool. Just wondering will ant and wsdl2java pick up
FlightBooking.xsd.
> > > >     Also would appreciate it if anyone spotted any mistakes in this
> > > listing.
> > > > Regards,
> > > >         James.
> > > > --
> > > > Between the question and the answer lies free will
> > > >
> > >
> > >
> > > --
> > > Between the question and the answer lies free will
> > >
> > >
> >
> >
> > --
> > Between the question and the answer lies free will
> >
> >
>
>
> --
> Between the question and the answer lies free will
>
>


--
Between the question and the answer lies free will


Mime
View raw message