Un XML ca veut pas dire grand chose. Tu veux partir de quoi et arriver à quoi ?
Interprétation débile de ta question : si tu pars d'un XML avec une liste de la requête suffit d'enlever les balises pour obtenir le code SQL :)-
J'ai fait un truc dans le genre en Perl - avec les bons modules, c'est assez facile :
XML::Parser - pour parser l'xml, oeuf corse - et Template Toolkit - pour transformer les données en bon gros fichier SQL.
Modulo quelques erreurs de retranscription, l'idée est de générer une arborescence des données à partir du xml, et de l'utiliser comme données d'entrée d'un template.
Le xml :
use XML::Parser;
use Template;
my $data;
my $tables;
my $currentTable;
my @cols;
my @pks;
sub database {
my ($o, $class, %args) = @_;
$vars->{database} = $args{name};
}
sub table {
my ($o, $class, %args) = @_;
undef @cols;
undef %currentTable;
$currentTable{name} = $args{name};
}
sub col {
my ($o, $class, %args) = @_;
$my $col = { name => $args{name},
type => $args{type},
default => $args{default},
auto_increment => $args{ai},
};
push (@cols, $col);
push (@pks, $col) if exists $args{pk} and $args{pk} eq "yes";
}
sub table_ {
my @c = @cols;
$currentTable{cols} = \@c;
@{$currentTable{pks}} = @pks;
my %h = %currentTable;
$tables{$h{name}} = \%h;
push (@tables, $h{name});
}
sub database_ {
$vars->{tables} = [ map { $tables{$_} } @tables ];
}
my $parser = new XML::Parser(Style => 'Subs');
$parser->parsefile($fichier) or die "Failed\n";
my $tt = Template->new();
$tt->process($tmpl, $data, $outfile) || do {
my $error = $tt->error();
print $error, "\n";
};
Le principal intérêt de ce truc c'est de créer plusieurs templates en fonctions des SGBD, ou carrément créer un template pour générer le code en C par ex pour faire quelques requêtes classiques (update/select/delete).
Oups désolé, je n'avais pas vu qu'on était dans le forum php, n'y voyez pas une tentative de lancer un troll, c'était vraiment involontaire : je consulte les news et les forums via le flux rss dans akregator, et je n'ai pas fais gaffe au sujet du forum. Ça peut fait un bon exercice de traduction ;-)
# Plus précisément ?
Posté par Pascal Terjan (site web personnel) . Évalué à 2.
Interprétation débile de ta question : si tu pars d'un XML avec une liste de la requête suffit d'enlever les balises pour obtenir le code SQL :)-
[^] # Re: Plus précisément ?
Posté par Pascal Terjan (site web personnel) . Évalué à 2.
si tu pars d'un XML avec une liste de <query>la requête</query>suffit d'enlever les balises pour obtenir le code SQL :)
# dtd?
Posté par niol (site web personnel) . Évalué à 2.
Il y a des choses qui existent avec des dtd faites pour cà chez microsoft et chez oracle (d'après google).
# id
Posté par TImaniac (site web personnel) . Évalué à 2.
# En parlant de SQL et de XML..
Posté par ~ lilliput (site web personnel) . Évalué à 1.
y'a t'il un DTS officiel pour ce genre de truc ?
http://www.theatre-eibel.fr http://www.isc2chapter-yorkshire.co.uk
[^] # Re: En parlant de SQL et de XML..
Posté par gc (site web personnel) . Évalué à 5.
# J'ai !
Posté par jigso . Évalué à 3.
[^] # Re: J'ai !
Posté par jigso . Évalué à 3.
[^] # Re: J'ai !
Posté par Pascal Terjan (site web personnel) . Évalué à 3.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.