public function __construct(IDataSourceDriver $driver)
 {
     parent::__construct(new XmlDataSourceDriver($driver));
     if (!function_exists('simplexml_load_file')) {
         throw new Exception('SimpleXML is required !');
     }
     $this->_xpathExpression = $driver->getParameter();
 }
 public function __construct(IDataSourceDriver $driver)
 {
     parent::__construct($driver);
 }
$genTimer = new Timer();
System::import('System.Context.HttpContext');
System::import('System.DataGrid.DataSources.DataGridSource');
System::import('System.DataSource.Expressions.XpathExpression');
System::import('System.DataSource.Expressions.DbmsExpression');
System::import('System.DataGrid.Controller.DataGridController');
System::import('System.SqlBuilder.SqlBuilder');
$context =& new HttpContext();
$timer =& new Timer();
$xmlDataSource =& DataGridSource::createNew('xml://datagrid.xml/');
$xmlDataGrid =& $xmlDataSource->getDataGrid(new XpathExpression('//datagrid'));
$dgController1 =& new DataGridController($context, $xmlDataGrid);
$dgController1->process();
$xmlTime = $timer->ReturnTimer();
$timer =& new Timer();
$dbDataSource =& DataGridSource::createNew('mysql://*****:*****@localhost.DPat/');
$sql =& new sqlBuilder();
$aliasA = $sql->aliasTable('DataGrid', 'A');
$aliasB = $sql->aliasTable('DataGridRow', 'B');
$aliasC = $sql->aliasTable('DataGridColumn', 'C');
$sql->get($aliasA, 'id', 'datagrid_id');
$sql->get($aliasA, 'title', 'datagrid_title');
$sql->get($aliasB, 'id', 'datagridrow_id');
$sql->get($aliasC, 'id', 'datagridcolumn_id');
$sql->get($aliasC, 'value', 'datagridcolumn_value');
$sql->joinTable($aliasA, 'id', $aliasB, 'datagrid_id', '=', sqlBuilder::InnerJoin);
$sql->joinTable($aliasB, 'id', $aliasC, 'datagridrow_id', '=', sqlBuilder::InnerJoin);
$request = $sql->select();
//  $request = 'SELECT A.id AS datagrid_id, A.title AS datagrid_title, B.id AS datagridrow_id, C.id AS datagridcolumn_id, C.value AS datagridcolumn_value FROM DataGrid AS A INNER JOIN DataGridRow AS B ON ( A.id = B.datagrid_id ) INNER JOIN DataGridColumn AS C ON ( B.id = C.datagridrow_id )';
$dbDataGrid =& $dbDataSource->getDataGrid(new DbmsExpression($request));
$dgController2 =& new DataGridController($context, $dbDataGrid);