code: function(data) {
          var response = [];
          var layerNodes = this.getSiblingNodesByTagCriteria(data,
              this.layerIdentifier);
          if (layerNodes) {
              for (var i=0, len=layerNodes.length; i<len; ++i) {
                  var node = layerNodes[i];
                  var layerName = node.nodeName;
                  if (node.prefix) {
                      layerName = layerName.split(':')[1];
                  }
                  var layerName = layerName.replace(this.layerIdentifier, '');
                  var featureNodes = this.getSiblingNodesByTagCriteria(node, 
                      this.featureIdentifier);
                  if (featureNodes) {
                      for (var j = 0; j < featureNodes.length; j++) {
                          var featureNode = featureNodes[j];
                          var geomInfo = this.parseGeometry(featureNode);
                          var attributes = this.parseAttributes(featureNode);
                          var feature = new OpenLayers.Feature.Vector(geomInfo.geometry, 
                              attributes, null);
                          feature.bounds = geomInfo.bounds;
                          feature.type = layerName;
                          response.push(feature);
                      }
                  }
              }
          }
          return response;
      }
docs: Method: read_msGMLOutput
  Parse msGMLOutput nodes.
  
  Parameters:
  data - {DOMElement}
  
  Returns:
  {Array}