code: function(request) {
          var format = new OpenLayers.Format.WMSDescribeLayer();
          var doc = request.responseXML;
          if(!doc || !doc.documentElement) {
              doc = request.responseText;
          }
          var describeLayer = format.read(doc);
          var typeNames = [];
          var url = null;
          for (var i=0, len=describeLayer.length; i<len; i++) {
              // perform a WFS DescribeFeatureType request
              if (describeLayer[i].owsType == "WFS") {
                  typeNames.push(describeLayer[i].typeName);
                  url = describeLayer[i].owsURL;
              }
          }
          var options = {
              url: url,
              params: {
                  SERVICE: "WFS",
                  TYPENAME: typeNames.toString(),
                  REQUEST: "DescribeFeatureType",
                  VERSION: "1.0.0"
              },
              callback: function(request) {
                  var format = new OpenLayers.Format.WFSDescribeFeatureType();
                  var doc = request.responseXML;
                  if(!doc || !doc.documentElement) {
                      doc = request.responseText;
                  }
                  var describeFeatureType = format.read(doc);
                  this.control.wfsCache[this.layer.id] = describeFeatureType;
                  this.control._queue && this.control.applySelection();
              },
              scope: this
          };
          OpenLayers.Request.GET(options);
      }
docs: Method: parseDescribeLayer
  Parse the SLD WMS DescribeLayer response and issue the corresponding
  WFS DescribeFeatureType request
  
  request - {XMLHttpRequest} The request object.