Aller au contenu

traducteur dtd > sql pour création de bases ?


Anonymus

Sujets conseillés

Bonjour,

Les dtd sont en général assez bien détaillées, je me demandais s'il n'existerait pas des traducteurs, ou convertisseurs qui prendraient d'un coté une dtd, pour la convertir en fichier sql pour insérer dans une base de données,

merci d'avance.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

sous quelle forme veux-tu stocker ta DTD dans la base de données ?

Une DTD est un fichier XML, un parser XML (soit comme l'extension de PHP, soit une classe comme phpxmlclasses) devrait faire l'affaire pour passer du fichier DTD à une structure de données. Après tu peux la parcourir et la stocker comme tu le souhaites :)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Les dtd sont en général assez bien détaillées, je me demandais s'il n'existerait pas des traducteurs, ou convertisseurs qui prendraient d'un coté une dtd,  pour la convertir en fichier sql pour insérer dans une base de données,

merci d'avance.

<{POST_SNAPBACK}>

On discutait justement de ça hier apm.

Il semblerait que cela existe chez Oracle.

Sinon, comme le dit Anonymus, il faudrait écrire un parser générique faisant le mapping entre les "types" XML et les types SQL.

Cela a de l'intérêt si les données de tes flux XML ont une struture relationelle.

Lien vers le commentaire
Partager sur d’autres sites

Dans cet exemple :

<!ELEMENT EAddress (#PCDATA)>
<!ELEMENT PostalAddresses (PostalAddress)>
<!ELEMENT PostalAddress (Address1, Address2, Address3, Address4, City, StateCode, PostalCode, CountryCode)>
<!ATTLIST PostalAddress
AddressType (Home | Business | Mailing | ShippingReceiving | Billing) #REQUIRED
>
<!ELEMENT Address1 (#PCDATA)>
<!ELEMENT Address2 (#PCDATA)>
<!ELEMENT Address3 (#PCDATA)>
<!ELEMENT Address4 (#PCDATA)>
<!ELEMENT City (#PCDATA)>
<!ELEMENT StateCode (#PCDATA)>
<!ELEMENT PostalCode (#PCDATA)>
<!ELEMENT CountryCode (#PCDATA)>
<!ELEMENT PhoneNumbers (PhoneNumber)>
<!ELEMENT PhoneNumber (#PCDATA)>
<!ATTLIST PhoneNumber
PhoneNumberType (HomePhone | BusinessPhone | MobilePhone | HomeFax | BusinessFax | Pager | Telex | TTY) #IMPLIED
>
<!ELEMENT CountryAccessNumber (#PCDATA)>
<!ELEMENT CityCode (#PCDATA)>
<!ELEMENT PhoneExtension (#PCDATA)>

Y'a bien une structure logique.

Ils sont pas pondu ca (vraiment un paquet de fichiers) pour le plaisir, et ils se doutent bien que je vais pas les lire non plus :D

Mais il y a forcément un parser qui permet de transcrire ca en sql (plus fluide pour moi :D )

On arrive même, dans certains cas, à avoir les types de données (string, longueur du champ, etc..). A mon avis, c'est même extrait directement d'une base de données, mais je ne trouve pas de 'parser', qui me fasse ca.

Lien vers le commentaire
Partager sur d’autres sites

Les dtd sont en général assez bien détaillées, je me demandais s'il n'existerait pas des traducteurs, ou convertisseurs qui prendraient d'un coté une dtd, pour la convertir en fichier sql pour insérer dans une base de données,

A ma connaissance ça marche plutôt dans l'autre sens : implementation Xpath qui permet de générer un fichier XML conforme à un schéma XML (équivalent d'une DTD) à partir d'enregistrements dans une base de données.

MS le fait (SQL XML), je ne sais pas pour les autres bdd.

Sinon dans le sens XML->SQL il existe un objet SQLXMLBulkLoad toujours chez MS (désolé si c'est à côté de ce que tu recherches)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...