Skip to Content.
Sympa Menu

mace-opensaml-users - RE: SOAP schema issue

Subject: OpenSAML user discussion

List archive

RE: SOAP schema issue


Chronological Thread 
  • From: "Cortezzo, Jason" <>
  • To: "''" <>
  • Subject: RE: SOAP schema issue
  • Date: Mon, 14 Mar 2005 15:26:50 -0500

The only thing I can find about encoding in the SAML-Binding spec is the
following...

221 SOAP 1.1 also defines an optional data encoding system. This system
is not used within the SAML
222 SOAP binding. This means that SAML messages can be transported using
SOAP without re-encoding
223 from the "standard" SAML schema to one based on the SOAP encoding.

It doesn't really say much to me.

I don't have any control over the software that is sending me these SOAP
messages and I am required to be compliant with it, so I'm kind of stuck
working around this issue. Oddly, I've found lots of example SOAP
envelopes that do use the encodingStyle attribute on the envelope element
even though the schema appears to prohibit it. How can this be?

I'm new at reading XML schema but here is my understanding of why the parser
is rejecting the document...

The schema has this element under the <Envelope> element....
<xs:anyAttribute namespace="##other" processContents="lax"/>

From what I've read, this means that <Envelope> can contain any attribute
which is contained in any namespace other than the target namespace. The
target namespace is http://schemas.xmlsoap.org/soap/envelope/ which is the
soap envelope schema itself. Since, the encodingStyle attribute is defined
in that same namespace, I think that is why it is not allowed.

My solution was to change the ##other to ##any. It seems to have worked for
me.

The <Envelope> definition in my schema now looks like this...

<xs:element name="Envelope" type="tns:Envelope" />
<xs:complexType name="Envelope" >
<xs:sequence>
<xs:element ref="tns:Header" minOccurs="0" />
<xs:element ref="tns:Body" minOccurs="1" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax" />
</xs:complexType>

-Jason

-----Original Message-----
From: Scott Cantor
[mailto:]

Sent: Monday, March 14, 2005 10:46 AM
To: Cortezzo, Jason;

Subject: RE: SOAP schema issue

> How does the SAX parser find the schema it uses to validate the
> document?

In the old code, there's an EntityResolver that loads the schemas from the
jarfile and caches them in memory. If you edit the schema inside the
jarfile, it will use that copy instead.

But as I said, I think your SOAP message is invalid anyway for the purposes
of the SAML binding.

-- Scott



Archive powered by MHonArc 2.6.16.

Top of Page