code: function(data) {
          if(typeof data == "string") {
              data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
          }
          if(data && data.nodeType == 9) {
              data = data.documentElement;
          }
  
          var info = {features: []};
          this.readNode(data, info);
         
          var features = [];
          for (var i=0, len=info.features.length; i<len; i++) {
              var container = info.features[i];
              // reproject features if needed
              if(this.internalProjection && this.externalProjection &&
                  container.components[0]) {
                      container.components[0].transform(
                          this.externalProjection, this.internalProjection
                      );
              }             
              var feature = new OpenLayers.Feature.Vector(
                  container.components[0], container.attributes);
              features.push(feature);
          }
          return features;
      }
docs: Constructor: OpenLayers.Format.SOSGetFeatureOfInterest
  
  Parameters:
  options - {Object} An optional object whose properties will be set on
  this instance.
   
  APIMethod: read
  Parse a GetFeatureOfInterest response and return an array of features
  
  Parameters:
  data - {String} or {DOMElement} data to read/parse.
  
  Returns:
  {Array(<OpenLayers.Feature.Vector>)} An array of features.