Example #1
0
 /**
  * Transform an XML document into an SQL schema
  * 
  * @param string $curpath
  * @param QuickBooks_XML_Node $node
  * @param array $tables
  * @return 
  */
 protected static function _transform($curpath, $node, &$tables)
 {
     //print("\n");
     print '' . $curpath . '   node: ' . $node->name() . "\n";
     //print('	node: ' . $node->name() . "\n");
     //$tables = array();
     $table = '';
     $field = '';
     //QuickBooks_SQL_Schema::mapPathToSQL($node->name(), $table, $field);		// table name
     //print('		table for node: ' . $table . "\n");
     //print('		field for node: ' . $field . "\n");
     $this_sql = array();
     $other_sql = array();
     QuickBooks_SQL_Schema::mapToSchema($curpath . ' ' . $node->name(), QUICKBOOKS_SQL_SCHEMA_MAP_TO_SQL, $this_sql, $other_sql);
     //print('mapping: ');
     //print_r($this_sql);
     //print_r($other_sql);
     //print("\n\n\n");
     //print_r($this_sql);
     foreach (array_merge(array($this_sql), $other_sql) as $sql) {
         $table = $sql[0];
         $field = $sql[1];
         if (!$sql[0] or !$sql[1]) {
             print '		table for node: ' . $sql[0] . "\n";
             print '		field for node: ' . $sql[1] . "\n";
         } else {
             print "\n";
         }
         if ($table) {
             if (!isset($tables[$table])) {
                 //print('trying to map key for: ' . $curpath . ' ' . $name);
                 //$map = null;
                 //QuickBooks_SQL_Schema::mapPrimaryKey($curpath . ' ' . $name, QUICKBOOKS_SQL_SCHEMA_MAP_TO_SQL, $map);
                 //print_r($map);
                 //exit;
                 $tables[$table] = array(0 => $table, 1 => array(), 2 => null, 3 => array(), 4 => array());
             }
         }
         if ($table and $field) {
             if (!isset($tables[$table][1][$field])) {
                 $tables[$table][1][$field] = QuickBooks_SQL_Schema::mapFieldToSQLDefinition($table, $field, $node->data());
             }
         }
     }
     if ($node->childCount()) {
         /*
         $sql = array();
         $other_sql = array();
         QuickBooks_SQL_Schema::mapToSchema($curpath . ' ' . $node->name(), QUICKBOOKS_SQL_SCHEMA_MAP_TO_SQL, $sql, $other_sql);
         
         foreach (array_merge($sql, $other_sql) as $sql)
         {
         	$table = $sql[0];
         	$field = $sql[1];
         }
         */
         foreach ($node->children() as $child) {
             QuickBooks_SQL_Schema::_transform($curpath . ' ' . $node->name(), $child, $tables);
         }
     }
     /*
     print('tables: ');
     print_r($tables);
     exit;
     
     foreach ($tables as $table)
     {
     	//print_r($table);
     	exit;
     }
     */
 }
Example #2
0
 /**
  * Transform an XML document into an SQL schema
  * 
  * @param string $curpath
  * @param QuickBooks_XML_Node $node
  * @param array $tables
  * @return 
  */
 protected static function _transform($curpath, $node, &$tables)
 {
     print '' . $curpath . '   node: ' . $node->name() . "\n";
     $table = '';
     $field = '';
     $this_sql = array();
     $other_sql = array();
     QuickBooks_SQL_Schema::mapToSchema($curpath . ' ' . $node->name(), QUICKBOOKS_SQL_SCHEMA_MAP_TO_SQL, $this_sql, $other_sql);
     foreach (array_merge(array($this_sql), $other_sql) as $sql) {
         $table = $sql[0];
         $field = $sql[1];
         /*
         if (!$sql[0] or !$sql[1])
         {
         	print('		table for node: ' . $sql[0] . "\n");
         	print('		field for node: ' . $sql[1] . "\n");
         }
         else
         {
         	print("\n");
         }
         */
         if ($table) {
             if (!isset($tables[$table])) {
                 $tables[$table] = array(0 => $table, 1 => array(), 2 => null, 3 => array(), 4 => array());
             }
         }
         if ($table and $field) {
             if (!isset($tables[$table][1][$field])) {
                 $tables[$table][1][$field] = QuickBooks_SQL_Schema::mapFieldToSQLDefinition($table, $field, $node->data());
             }
         }
     }
     if ($node->childCount()) {
         foreach ($node->children() as $child) {
             QuickBooks_SQL_Schema::_transform($curpath . ' ' . $node->name(), $child, $tables);
         }
     }
     return true;
 }