JSON is a good choice, in my opinion. You could define your database schema as such:
{
table1: {
id: {
type:"int",
autoincrement:true
},
some_field: {
type:"string",
}
},
table2: { // etc
}
}
Then just use json_decode to turn this into a PHP array.
e.g.
$tables = json_decode($json_text);
foreach ($tables as $tablename => $t) {
foreach ($t as $fieldname => $field) {
echo "Table {$tablename} has a record called {$fieldname}";
}
}
This would print:
Table table1 has a record called id
Table table1 has a record called some_field
JSON is much easier to work with than XML in my opinion, and json_encode/decode is very fast so there's little overhead. In my opinion, it's also a lot more readable than XML and copes better with complex data structures than INI files. Some people prefer YAML, but there's really not much difference in syntax.