code: function(data) {
          if(typeof data == "string") {
              data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
          }
          
          var arcNode = null;
          if (data && data.documentElement) {
              if(data.documentElement.nodeName == "ARCXML") {
                  arcNode = data.documentElement;
              } else {
                  arcNode = data.documentElement.getElementsByTagName("ARCXML")[0];
              }
          }
            
          // in Safari, arcNode will be there but will have a child named 
          // parsererror
          if (!arcNode || arcNode.firstChild.nodeName === 'parsererror') {
              var error, source;
              try {
                  error = data.firstChild.nodeValue;
                  source = data.firstChild.childNodes[1].firstChild.nodeValue;
              } catch (err) {
                  // pass
              }
              throw {
                  message: "Error parsing the ArcXML request", 
                  error: error,
                  source: source
              };
          }
          
          var response = this.parseResponse(arcNode);
          return response;
      }
docs: APIMethod: read
  Read data from a string, and return an response.
  
  Parameters:
  data - {String} or {DOMElement} data to read/parse.
  
  Returns:
  {<OpenLayers.Format.ArcXML.Response>} An ArcXML response. Note that this response
  data may change in the future.