code: function(oDataSource) {
      this._oDataSource = null;
      if(oDataSource && (lang.isFunction(oDataSource.sendRequest))) {
          this._oDataSource = oDataSource;
      }
      // Backward compatibility
      else {
          var tmpTable = null;
          var tmpContainer = this._elContainer;
          var i=0;
          //TODO: this will break if re-initing DS at runtime for SDT
          // Peek in container child nodes to see if TABLE already exists
          if(tmpContainer.hasChildNodes()) {
              var tmpChildren = tmpContainer.childNodes;
              for(i=0; i<tmpChildren.length; i++) {
                  if(tmpChildren[i].nodeName && tmpChildren[i].nodeName.toLowerCase() == "table") {
                      tmpTable = tmpChildren[i];
                      break;
                  }
              }
              if(tmpTable) {
                  var tmpFieldsArray = [];
                  for(; i<this._oColumnSet.keys.length; i++) {
                      tmpFieldsArray.push({key:this._oColumnSet.keys[i].key});
                  }
  
                  this._oDataSource = new DS(tmpTable);
                  this._oDataSource.responseType = DS.TYPE_HTMLTABLE;
                  this._oDataSource.responseSchema = {fields: tmpFieldsArray};
                  YAHOO.log("Null DataSource for progressive enhancement from" +
                  " markup has been deprecated", "warn", this.toString());
              }
          }
      }
  }
docs: Initializes DataSource.
  
  @method _initDataSource
  @param oDataSource {YAHOO.util.DataSource} DataSource instance.
  @private