Jump to content
Sign in to follow this  
Anonymus

traducteur dtd > sql pour création de bases ?

Recommended Posts

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.

Share this post


Link to post
Share on other 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 :)

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...