diff --git a/tools/dbxml_validator/validate.php b/tools/dbxml_validator/validate.php index 0b1a2ecb9..7ac6cca2a 100644 --- a/tools/dbxml_validator/validate.php +++ b/tools/dbxml_validator/validate.php @@ -1,7 +1,7 @@ #!/bin/env php push(ReturnCode::RETCODE_GENERIC_XML_SYNTAX); if($domDocument->load($argv[$i])) @@ -1870,7 +1874,15 @@ try $queryElement = $domDocument->documentElement; - if(!$schema_file && !$schema_language + if (!$schema_language && $auto_schema) + { + if ($queryElement->tagName == 'table') + { + $use_schema_language = TRUE; + } + } + + if(!$schema_file && !$use_schema_language && ( $queryElement->tagName != 'query' @@ -1890,7 +1902,7 @@ try ); } - if(!$schema_file && !$schema_language && !$skip_query_id + if(!$schema_file && !$use_schema_language && !$skip_query_id && !validate_query_id($argv[$i], $queryElement->getAttribute('id'))) { @@ -1903,7 +1915,7 @@ try ); } - if($schema_language) + if($use_schema_language) { $document_schema = $table_schema; } @@ -1920,7 +1932,7 @@ try { $retcode->pop(); - if($schema_language) + if($use_schema_language) { validate_schema_doc($argv[$i], $domDocument->documentElement); } @@ -1978,7 +1990,7 @@ try { Context::$set_info_method(); // calls setMysqlDBInfo()/setCubridDBInfo()/... - if($schema_language) + if($use_schema_language) { $GLOBALS['__DB__'][$db_type]->queries = ''; $GLOBALS['__DB__'][$db_type]->createTableByXmlFile($argv[$i]); @@ -1996,13 +2008,14 @@ try // copied from classes/db/DB.class.php $oParser = new XmlQueryParser(); - $args_array = array(); - $oParser->parse - ( - pathinfo($argv[$i], PATHINFO_FILENAME), // query id - $argv[$i], // xml file - $unlink_tmpfile->file_name // cache file - ); + $args_array = + $oParser->parse_xml_query + ( + pathinfo($argv[$i], PATHINFO_FILENAME), // query id + $argv[$i], // xml file + $unlink_tmpfile->file_name // cache file + ); + $args_array = $args_array->queryTag->getArguments(); $GLOBALS['__DB__'][$db_type]->queries = ''; $k = 1;