I agree that the WSDL for doc/lit is indeed less obtuse than that for rpc/encoded.
On 19 Jun 2003 at 13:31, Anne Thomas Manes wrote: > I agree that WSDL is always required. > > To a large degree I agree that the interop problems have been caused by > incomplete implementations, and that the primary issue was caused by > Microsoft's lack of xsi:type. But I still think it's valuable to have an > actual Schema specification of the SOAP message body -- especially if you'd > like to do message validation and/or transformation. > > The main issue is this: there should be one standard way to encode a > message -- not four. SOAP encoded was designed because XML Schema wasn't > complete when SOAP 1.1 was published. Now that XML Schema is a standard, > SOAP encoding is superfluous, and it just adds more work for the SOAP > implementors to support two encoding schemes. > > And I don't see much value to the RPC style (particularly if you aren't > using SOAP encoding). It causes a lot of confusion in terms of WSDL. I find > it really objectional that the message style forces you to describe your > WSDL messages differently. (With RPC style you must define your <part>s > using the type= attribute, while Document style requires the element= > attribute.) This situation reduces the reusability of a <portType>. > > Anne > > ----- Original Message ----- > From: "Scott Nichol" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Thursday, June 19, 2003 12:32 PM > Subject: Re: design question > > > > 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. > > > > > > Scott Nichol Do not reply directly to this e-mail address, as it is filtered to only receive e-mail from specific mailing lists.