Are you talking about rpc/encoded messages in the absence of WSDL? If there is WSDL for the service, are there still ambiguities? My impression (and experience) is that if I have WSDL for a service, and both endpoints have WSDL support, I have pretty much the same degreee of interop for either rpc/encoded or doc/lit. In the absence of WSDL, doc/lit is useless, while at least most implementations can make sense of many rpc/encoded messages.
Basically, my impression is that the metadata provided in WSDL is more important to interop than the choice of rpc/encoded v. doc/lit itself. On 18 Jun 2003 at 23:17, Anne Thomas Manes wrote: > Doc/lit doesn't define type mappings, but it definitively specifies the > structure of the message via XML Schema. Because the two applications know > in advance exactly what the message structure is, the details of how the > SOAP message processor maps the XML Schema to language types doesn't matter > to the other application. When using rpc/encoded, the two applications have > not agreed to a specific message structure. The SOAP message processor > generates the SOAP message structure based on it's specific interpretation > of SOAP Section 5, and there's no definitive schema of the message. The > interoperability issues arise when two different SOAP message procesors > interpret SOAP Section 5 slightly differently. > > Anne > > ----- Original Message ----- > From: "Scott Nichol" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Wednesday, June 18, 2003 3:18 PM > Subject: Re: design question > > > > In what way does doc/lit define language type mappings? I've never > > really understood why doc/lit is better than rpc/encoded. If you > > have no WSDL, you have problems with complex types either way. If > > you do have WSDL, you have XML type information either way, and I > > don't see why you would bind any differently. I've seen the merits > > of doc/lit v. rpc/encoded discussed in various places, but never > > understood any type mapping advantage. > > > > On 18 Jun 2003 at 13:20, Anne Thomas Manes wrote: > > > > > From my perspective you should always use Doc/literal. SOAP Encoding has > been the source of many interoperability issues, because the mechanism of > mapping language types isn't defined concretely by SOAP Section 5. Hence you > should always use literal encoding. And many implementations don't > > support RPC/Literal. > > > > > > I'm not sure why you found it necessary to use RPC/encoded in order to > get the SOAP deserializer to return a string. You should be able to make > that happen using Doc/Literal, if that's what you want -- the serialization > requirements should be specified in the deployment descriptor. > > > > > > I don't think that any SOAP engines do automatic schema validation > (there's sufficient overhead associated with the process that you wouldn't > want to do it by default). But many of the commercial implementations > provide typed interceptors that make it simple to request validation > (sometimes > > just by declaring a deployment option). > > > > > > Anne > > > ----- Original Message ----- > > > From: Vishal Shah > > > To: [EMAIL PROTECTED] > > > Sent: Wednesday, June 18, 2003 10:58 AM > > > Subject: Re: design question > > > > > > > > > Thanks Anne for elucidating. I'm stuck with the legacy system and > infrastructure that supports it.. I need to find a clumsy way to get around > to make things work.. > > > > > > I don't concur with you on thing you mentioned below in the first > paragraph. If you factor interoperability & infrastructure issues in, your > design would be definitely affected accordingly. If your service is going > to be consumed by a VB6 client or .net client (or any non-java consumer), > > RPC/literal is not the right solution. In that case, the service should be > designed to use Doc/literal. Also, RPC/Encoding is not always the right > design for interopetability reasons. I had my original service return a DOM > element and due to interoperability reasons, I turned in to RPC/Encoding > > type that returns a String containing XML representation. > > > > > > Are there any "smart SOAP runtime" that provides validation using > schema ? > > > > > > Anne Thomas Manes <[EMAIL PROTECTED]> wrote: > > > Vishal, > > > > > > A SOAP runtime system should provide a layer of abstraction between > your message format and the application that implements the service. Hence > the format of the message (Doc/literal vs RPC/encoded) shouldn't really > impact the design of your service. The SOAP runtime system should be able to > > marshal and unmarshal the messages, map XML to Java, dispatch the > appropriate application, and transform exceptions into SOAP fault messages > for you -- all based on the WSDL description and deployment descriptor -- > regardless of whether you use RPC or document style messages. Your > application > > shouldn't need to process XML unless you choose to receive the message as > an XML document. > > > > > > You should not assume that the SOAP runtime will validate the > document. If you want it to perform validation before processing, you would > need to specify a validation interceptor in your deployment descriptor (to > call a handler in your handler chain). You should assume that the SOAP > runtime > > will parse the document and deserialize it into Java objects. If you are > using RPC/encoded, then it does the mapping based on the SOAP Section 5 data > model. If you are using Document/Literal, then it does the mapping based on > the XML Schema message description. > > > > > > When writing a service, you should do what you would normally do in > any Java application -- throw an exception. The SOAP runtime system should > catch the exception and transform it into the appropriate SOAP fault > message. The client SOAP runtime system should be able to interpret the SOAP > > fault, and assuming it's a Java system, rethrow the exception for the > client. > > > > > > Now, of course, these best practices don't necessarily apply to Web > services written using Apache SOAP. You must realise that Apache SOAP is a > very old SOAP implementation that doesn't support WSDL, is very > RPC/encoded-centric, and doesn't support doc/literal according to the > standard. > > > > > > Unless you have legacy applications based on Apache SOAP, I > recommend that you start using Apache Axis (http://ws.apache.org/axis), or > any of the 20 or so commercial implementations that fully support SOAP 1.1, > WSDL 1.1, JAX-RPC, and the WS-I Basic Profile. > > > > > > Best regards, > > > Anne > > > > > > ----- Original Message ----- > > > From: Vishal Shah > > > To: [EMAIL PROTECTED] > > > Sent: Tuesday, June 17, 2003 10:59 AM > > > Subject: design question > > > > > > > > > Hi, > > > > > > I've a couple of design questions...I've a Doc/literal style > service.. > > > > > > What's the best way to handle any abnormal conditions and errors > ?Should the service throw an exception or should it create a "error" element > in a response document ? > > > > > > Is it safe to assume that in Doc/literal style, a doc gets parsed > and validated using a schema ? If not, is the service responsible for > validating (coarse-grained validation) the document ? Pl advise... > > > > > > Thanks > > > VS > > > > > > > > > > > > > -------------------------------------------------------------------------- > > > Do you Yahoo!? > > > SBC Yahoo! DSL - Now only $29.95 per month! > > > > > > > > > > -------------------------------------------------------------------------- > ---- > > > Do you Yahoo!? > > > SBC Yahoo! DSL - Now only $29.95 per month! > > > > > > > > > Scott Nichol > > > > Do not reply directly to this e-mail address, > > as it is filtered to only receive e-mail from > > specific mailing lists. > > > > > > Scott Nichol Do not reply directly to this e-mail address, as it is filtered to only receive e-mail from specific mailing lists.