source: Dev/branches/rest-dojo-ui/client/dojox/wire/ml/XmlHandler.js @ 256

Last change on this file since 256 was 256, checked in by hendrikvanantwerpen, 13 years ago

Reworked project structure based on REST interaction and Dojo library. As
soon as this is stable, the old jQueryUI branch can be removed (it's
kept for reference).

File size: 1.6 KB
Line 
1dojo.provide("dojox.wire.ml.XmlHandler");
2
3dojo.require("dojox.wire.ml.RestHandler");
4dojo.require("dojox.xml.parser");
5dojo.require("dojox.wire._base");
6dojo.require("dojox.wire.ml.util");
7
8
9dojo.declare("dojox.wire.ml.XmlHandler", dojox.wire.ml.RestHandler, {
10        //      summary:
11        //              A REST service handler for XML
12        //      description:
13        //              This class provides XML handling for a REST service.
14        contentType: "text/xml",
15        handleAs: "xml",
16
17        _getContent: function(/*String*/method, /*Array*/parameters){
18                //      description:
19                //              If 'method' is "POST" or "PUT", the first parameter in
20                //              'parameters' is used to generate an XML content.
21                //      method:
22                //              A method name
23                //      parameters:
24                //              An array of parameters
25                //      returns:
26                //              A request content
27                var content = null;
28                if(method == "POST" || method == "PUT"){
29                        var p = parameters[0];
30                        if(p){
31                                if(dojo.isString(p)){
32                                        content = p;
33                                }else{
34                                        var element = p;
35                                        if(element instanceof dojox.wire.ml.XmlElement){
36                                                element = element.element;
37                                        }else if(element.nodeType === 9 /* DOCUMENT_NODE */){
38                                                element = element.documentElement;
39                                        }
40                                        var declaration = "<?xml version=\"1.0\"?>"; // TODO: encoding?
41                                        content = declaration + dojox.xml.parser.innerXML(element);
42                                }
43                        }
44                }
45                return content;
46        },
47
48        _getResult: function(/*Document*/data){
49                //      summary:
50                //              Extract a result
51                //      description:
52                //              A response data (XML Document) is returned wrapped with
53                //              XmlElement.
54                //      data:
55                //              A response data returned by a service
56                //      returns:
57                //              A result object
58                if(data){
59                        data = new dojox.wire.ml.XmlElement(data);
60                }
61                return data;
62        }
63});
Note: See TracBrowser for help on using the repository browser.