- From: Martin Gudgin <marting@develop.com>
- Date: Tue, 6 Nov 2001 22:03:14 -0000
- To: "Jacek Kopecky" <jacek@systinet.com>
- Cc: "XML Protocol Discussion" <xml-dist-app@w3.org>
----- Original Message ----- From: "Jacek Kopecky" <jacek@systinet.com> To: "Martin Gudgin" <marting@develop.com> Cc: "XML Protocol Discussion" <xml-dist-app@w3.org> Sent: Tuesday, November 06, 2001 9:22 AM Subject: Re: Proposal for hierarchical fault codes > Gudge, > Is there a possibility to make it the following way? > > <soap:Fault xmlns:soap='http://www.w3.org/2001/09/soap-envelope' > > <faultcode> > soap:Receiver > <faultcode xmlns:app='http://example.org/apps'> > app:SomeError > </faultcode> > </faultcode> > </soap:Fault> > > I admit I don't know XML Schema enough to know the answer > myself. > This way would be backwards compatible in the simple cases of no > nested faultcodes. I did consider the approach you suggest. I rejected it because there is ( currently ) no way to assign a type to the text content of <faultcode> in such a design. That is, there is no way to say that the text must be a QName. This is a problem/design choice regarding mixed content in XML Schema. > If this is not possible, I think I'd slightly prefer the > attribute way as well, because I don't see us ever needing to add > structure to the value of faultcode, or additional attributes. I agree, QName plus the nesting capability certainly seems like extensibility enough. > We're keeping the detail element, aren't we? 8-) Yes. > Anyway, if enough people feel the element way is necessary, so > be it, I guess. 8-) > Thanks for putting this together. 8-) My pleasure Gudge > > Jacek Kopecky > > Senior Architect, Systinet (formerly Idoox) > http://www.systinet.com/ > > > > On Mon, 5 Nov 2001, Martin Gudgin wrote: > > > > > Here are two proposals for hierarchical fault structures. There are provided > > in response to issue 130[1] which is about the current hierarchical fault > > code structure in SOAP. SOAP currently uses a 'dotted' notation for > > hierarchical fault codes, specifically for the Client and Server 'classes' > > of fault. This proposal asserts that it is better to use the hierarchical > > nature of XML to build such fault codes rather than requiring applications > > to micro-parse element content. Other advantages include; > > > > 1. because each faultcode is a QName, there is much better support for > > ensuring that applications do not define identical fault codes. > > > > 2. applications recieving such faults are not required to understand every > > fault code, they can interpret the higher levels of fault and ignore the > > more nested fault codes if they do not understand them. This should make > > processing faults more straightforward as an application can just look at > > the highest level faultcode to begin with then decide whether it wants to > > 'drill down' into the more nested information. > > > > In addition issue 143[2] requires a resolution of the names Client/Server. > > This proposal suggests that 'Sender' be substituted for 'Client' and > > 'Receiver' be substituted for 'Server'. Hence the examples below use > > 'soap:Receiver' > > > > > > > > This first example puts the value of the faultcode in a child element with a > > local name of 'value'; > > > > <soap:Fault xmlns:soap='http://www.w3.org/2001/09/soap-envelope' > > > <faultcode> > > <value>soap:Reciever</value> > > <faultcode> > > <value xmlns:app='http://example.org/apps' >app:SomeError</value> > > </faultcode> > > </faultcode> > > </soap:Fault> > > > > The schema description looks like this; > > > > <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' > > xmlns:tns='http://www.w3.org/2001/09/soap-envelope' > > targetNamespace='http://www.w3.org/2001/09/soap-envelope' > > > > > <xs:complexType name='faultcodeType' > > > <xs:sequence> > > <xs:element name='value' type='xsd:QName' /> > > <xs:element name='faultcode' type='tns:faultcodeType' minOccurs='0' /> > > </xs:sequence> > > </xs:complexType> > > > > </xs:schema> > > > > > > > > > > This second example puts the value of the fault code in an attribute with a > > localname of 'value'; > > > > <soap:Fault xmlns:soap='http://www.w3.org/2001/09/soap-envelope' > > > <faultcode value='soap:Reciever' > > > <faultcode xmlns:app='http://example.org/apps' value='app:SomeError' /> > > </faultcode> > > </soap:Fault> > > > > > > The schema description looks like this; > > > > <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' > > xmlns:tns='http://www.w3.org/2001/09/soap-envelope' > > targetNamespace='http://www.w3.org/2001/09/soap-envelope' > > > > > <xs:complexType name='faultcodeType' > > > <xs:sequence> > > <xs:element name='faultcode' type='tns:faultcodeType' minOccurs='0' /> > > </xs:sequence> > > <xs:attribute name='value' type='xsd:QName' use='required' /> > > </xs:complexType> > > > > </xs:schema> > > > > > > I have a mild preference for the latter approach. > > > > > > Comments, flames, etc to the usual address > > > > Martin Gudgin > > DevelopMentor > > http://www.develop.co.uk > > > > > > [1] http://www.w3.org/2000/xp/Group/xmlp-issues.html#x130 > > [2] http://www.w3.org/2000/xp/Group/xmlp-issues.html#x143 > > >
Received on Tuesday, 6 November 2001 17:04:04 UTC