Re: xml-rpc and WSDL - progress report
Stephane Bortzmeyer <[email protected]>
| Newsgroups | gmane.text.xml.rpc.specification |
|---|---|
| Organization | NIC France |
| Message-ID | <[email protected]> |
On Thu, Dec 01, 2005 at 04:37:23PM +0100, Gaetano Giunta <[email protected]> wrote a message of 61 lines which said: > Otoh, a relax-NG schema, kindly provided by Stephane Bortzmeyer, > looks like it could be the key to unlock the treasure chest: it is, > afaict, 99% correct in describing xmlrpc, with a very limited set of > false positives (valid charset range is not yet implemented on > method names) and false negatives (for fault responses, fault code > MUST come before fault string). Right, but here is a fixed (and documented) version, thanks to Eric van der Vlist. ---------- namespace dublin = "http://purl.org/dc/elements/1.1/" dublin:title [ "RelaxNG schema for XML-RPC" ] dublin:description [ "The XML-RPC protocol (http://www.xmlrpc.com/spec) has been specified a long time ago, at the dawn of XML and is described only in natural language. An attempt have been made to reverse specify it with DTD or XSD (http://www.cafeconleche.org/books/xmljava/chapters/ch02s05.html). I try here with RelaxNG." ] dublin:creator [ "Stephane Bortzmeyer <[email protected]>" ] dublin:date [ "2005-12-02T15:17:00Z" ] dublin:rights [ "Use as you please" ] start = methodcall | methodresponse methodcall = element methodCall {methodname, params?} methodresponse = element methodResponse {fault | uniqueparams} methodname = element methodName {xsd:string {pattern = "[a-zA-Z0-9_\.,/]+"}} params = element params {param+} uniqueparams = element params {param} param = element param {value} value = element value {typedparam | text} typedparam = integer | boolean | stringval | double | datetime | base64 | array | struct # string is a keyword integer = element i4 {xsd:int} | element int {xsd:int} boolean = element boolean {"0" | "1"} # *Not* xsd:boolean (see the spec) stringval = element string {text} double = element double {xsd:double} datetime = element dateTime.iso8601 {text} # xsd:date does not allow # "20051130T12:10:56" base64 = element base64 {text} array = element array {element data {value*}} struct = element struct {namedmember*} namedmember = element member {membername & value} membername = element name {text} fault = element fault {faultvalue} faultvalue = element value {faultstruct} faultstruct = element struct {(faultcode, faultstring) | (faultstring, faultcode)} faultcode = element member {element name {"faultCode"} & element value {integer}} faultstring = element member {element name {"faultString"} & element value {stringval | text}} [Non-text portions of this message have been removed] Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/xml-rpc/ <*> To unsubscribe from this group, send an email to: [email protected] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/