mistake in SOAP envelope XMLSchema
"Alessandro Pira" <[email protected]> Mon, 12 Nov 2007 10:44:25 +0000
| Newsgroups | gmane.text.xml.distributed |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. ------_=_NextPart_001_01C82518.EF6047B3 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi all, =20 I am writing to this mailing list since I think I found a mistake in the official xml schema for SOAP envelopes: =20 http://schemas.xmlsoap.org/soap/envelope/ =20 The error involves the encodingStyle attribute which (as stated in examples in the note and also in [1]) seems possible to use in the Envelope element. But the official XMLSchema (http://schemas.xmlsoap.org/soap/envelope/) forbids this since it states: =20 [...] <xs:complexType name=3D"Envelope"> <xs:sequence> <xs:element ref=3D"tns:Header" minOccurs=3D"0"/> <xs:element ref=3D"tns:Body" minOccurs=3D"1"/> <xs:any namespace=3D"##other" minOccurs=3D"0" maxOccurs=3D"unbounded" processContents=3D"lax"/> </xs:sequence> <xs:anyAttribute namespace=3D"##other" processContents=3D"lax"/> </xs:complexType> [...] =20 I think it should say namespace=3D"##any" in the xs:anyAttribute element (or explicitly define the encodingStyle attribute). =20 I wrote you because the company I work for publishes some webservices for our customers, and we use 3rd party libraries for managing SOAP communication. Now some of our customers for some reason are accusing us to be not compliant to the official SOAP protocol, which I think is not true, but even W3C XMLSchema validator shows that the Envelope we use is not valid because of the "encodingStyle" attribute. =20 Can you please check if it's possible to correct the XMLSchema? =20 Thank you in advance for your time, =20 Alessandro Pira =20 =20 [1] : the SOAP 1.2 part 0 Primer in Chapter 6 (Changes Between SOAP 1.1 and SOAP 1.2) states: =20 "SOAP 1.2 does not allow the env:encodingStyle attribute to appear on the SOAP env:Envelope, whereas SOAP 1.1 allows it to appear on any element. SOAP 1.2 specifies specific elements where this attribute may be used." =20 =20 ------_=_NextPart_001_01C82518.EF6047B3 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=3DContent-Type content=3D"text/html; = charset=3Dus-ascii"> <META content=3D"MSHTML 6.00.2800.1597" name=3DGENERATOR></HEAD> <BODY> <DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana = size=3D2>Hi<SPAN=20 class=3D887233910-12112007> all</SPAN>,</FONT></SPAN></DIV> <DIV><FONT face=3DVerdana size=3D2></FONT> </DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana size=3D2>I am = writing <SPAN class=3D887233910-12112007>to this mailing=20 list</SPAN> since I think I found a mistake in the official = xml schema=20 for SOAP envelopes:</FONT></SPAN></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana size=3D2><A=20 title=3Dhttp://schemas.xmlsoap.org/soap/envelope/=20 href=3D"http://schemas.xmlsoap.org/soap/envelope/">http://schemas.xmlsoap= .org/soap/envelope/</A></FONT></SPAN></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana size=3D2>The = error involves=20 the encodingStyle attribute which (as stated in examples in the note and = also in=20 [1]) seems possible to use in the Envelope element.</FONT></SPAN></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana size=3D2>But = the official=20 XMLSchema (<SPAN class=3D730570216-09112007><A=20 title=3Dhttp://schemas.xmlsoap.org/soap/envelope/=20 href=3D"http://schemas.xmlsoap.org/soap/envelope/">http://schemas.xmlsoap= .org/soap/envelope/</A></SPAN>) forbids=20 this since it states:</FONT></SPAN></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2>[...]</FONT></SPAN></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana = size=3D2><xs:complexType=20 name=3D"Envelope"><BR> <xs:sequence><BR> = <xs:element=20 ref=3D"tns:Header" = minOccurs=3D"0"/><BR> <xs:element=20 ref=3D"tns:Body" minOccurs=3D"1"/><BR> <xs:any = namespace=3D"##other"=20 minOccurs=3D"0" maxOccurs=3D"unbounded"=20 processContents=3D"lax"/><BR> </xs:sequence><BR> <x= s:anyAttribute=20 <FONT color=3D#ff0000>namespace=3D"##other"</FONT>=20 processContents=3D"lax"/><BR></xs:complexType></FONT></SPAN></DI= V> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2>[...]</FONT></SPAN></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana size=3D2>I = think it=20 should say namespace=3D"##any" in the xs:anyAttribute element<SPAN=20 class=3D887233910-12112007> (or explicitly define the encodingStyle=20 attribute)</SPAN>.</FONT></SPAN></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana size=3D2>I = wrote you=20 because the company I work for publishes some webservices for our=20 customers, and we use 3rd party libraries for managing SOAP = communication. Now=20 some of our customers for some reason are accusing us to be not = compliant to the=20 official SOAP protocol, which I think is not true, but even W3C = XMLSchema=20 validator shows that the Envelope we use is not valid because of the=20 "encodingStyle" attribute.</FONT></SPAN></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana size=3D2>Can = you please=20 check if it's possible to correct the XMLSchema?</FONT></SPAN></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana = size=3D2>Thank you in=20 advance for your time</FONT></SPAN><SPAN = class=3D730570216-09112007><FONT=20 face=3DVerdana size=3D2>,</FONT></SPAN></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana = size=3D2>Alessandro=20 Pira</FONT></SPAN></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV> <DIV><FONT face=3DVerdana><FONT size=3D2><SPAN = class=3D730570216-09112007>[1] : the=20 SOAP 1.2 part 0 Primer in Chapter 6 (Changes Between SOAP 1.1 and SOAP=20 1.2</SPAN><SPAN=20 class=3D730570216-09112007>) states:</SPAN></FONT></FONT></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana = size=3D2>"SOAP 1.2 does not=20 allow the env:encodingStyle attribute to appear on the SOAP = env:Envelope,=20 whereas SOAP 1.1 allows it to appear on any element. SOAP 1.2 specifies = specific=20 elements where this attribute may be used."</FONT></SPAN></DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D730570216-09112007><FONT face=3DVerdana=20 size=3D2></FONT></SPAN> </DIV></DIV></BODY></HTML> ------_=_NextPart_001_01C82518.EF6047B3--