axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tom Jordahl <>
Subject RE: multirefs and schema validation
Date Fri, 09 Jul 2004 15:10:25 GMT

Because the XML in an rpc/encoded soap body does not follow the schema.  It
follows the schema along with additional rules (the section 5 SOAP 1.1
encoding rules) that allow the other end to reconstruct the original data
structures.  In particular, if (say) an address is used in two places in the
data, SOAP encoding allows the receiver to know that it is the *same*
address in both places by using multirefs.  This is a good thing for people
doing RPC-style programming.  This isn't great for people who are doing
XML-centric processing (like trying to verify the message again XML Schema).

This is why there is/was a huge split in the doc/lit vs. rpc/enc styles.
This has been resolved (basically) by the WS-I and the W3C WSDL 2.0 working
group such that literal XML is the "one true way" moving forward.

The bad news for toolkits like Axis is that they were very rpc/encoded
centric and we had to beef up our doc/lit support to support WS-I and will
have to go further in the future to move away from SOAP encoding.

Tom Jordahl
Macromedia Server Development

-----Original Message-----
From: Jonny Rylands [] 
Sent: Thursday, July 08, 2004 3:59 PM
Subject: multirefs and schema validation

I understand a similar question regarding mutirefs and SOAP schema
validation has come up before but could anybody explain to me why
rpc/encoded SOAP messages which use multirefs in them will not validate
against the SOAP schema?

If they should then perhaps it is my configuration? (latest stable versions
of: XercesJ, AxisJ)

Many thanks,
Jonny Rylands.

Nb.  Parsing error is:

cvc-type.3.1.1: Element 'multiRef' is a simple type, so it cannot have
attributes, excepting those whose namespace name is identical to
'' and whose [local name] is one of
'type', 'nil', 'schemaLocation' or 'noNamespaceSchemaLocation'. However, the
attribute, 'id' was found.

View raw message