XmlHandler.js 1.8 KB

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