1 | dojo.provide("dojox.wire.ml.XmlHandler"); |
---|
2 | |
---|
3 | dojo.require("dojox.wire.ml.RestHandler"); |
---|
4 | dojo.require("dojox.xml.parser"); |
---|
5 | dojo.require("dojox.wire._base"); |
---|
6 | dojo.require("dojox.wire.ml.util"); |
---|
7 | |
---|
8 | |
---|
9 | dojo.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 | }); |
---|