Anonymus Posté 17 Avril 2006 Posté 17 Avril 2006 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.
TheRec Posté 18 Avril 2006 Posté 18 Avril 2006 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
Spidetra Posté 18 Avril 2006 Posté 18 Avril 2006 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.
Anonymus Posté 18 Avril 2006 Auteur Posté 18 Avril 2006 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 Mais il y a forcément un parser qui permet de transcrire ca en sql (plus fluide pour moi ) 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.
robinsonvendredi Posté 18 Avril 2006 Posté 18 Avril 2006 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)
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant