-
Format d'Elements
Je suis en train d'écrire un DTD pour spécifier les formats entre mon application et les clients de cette appli.
Je suis novice sur le sujet.
Avec XMLSpy j'ai réussi importer un schéma XSD de ma base de données SQL Server, d'en déduire le DTD, en faisant quelques retouches à la main.
Je voudrais me servir du DTD comme spécification, mais je le trouve incomplet, car rien ne me dit que les données XML ne violeront pas les limites de taille de mes colonnes SQL, je cherche un peu à compléter le #PCDATA que je trouve trop vague,
comment lui donner une taille limite max ?
indiquer s'il est obligatoire ou pas ?
indiquer si sa valeur doit être unique ?
y'a surement dans le XML de quoi répondre à ma question, non ?
-
Bonjour,
ce n'est pas avec la DTD que tu arriveras à fixer des contraintes aussi précises. Ta spécification devrait se reposer sur ton XML Schema, dans lequel tu pourras définir un type de données précis pour tes attributs, fixer des valeurs limites, etc.
-
oui, j'ai bien envisagé de le faire dans le xsd,
mais se pose à moi un problème :
je récupère les données de ce schéma d'une base de données SQL Server. Par contre je n'ai aucune garantie qu'il en soit de même pour les données de mes clients, qui risquent d'être nottament en MySQL ou Access. Si j'impose en fonction de SQL server des limites dans le xsd, comment faire pour couvrir à la fois mes besoins et ceux des Clients ?
-
Mauvaise réponse de ma part. Le XSD ne fait aucun apriori sur le type de base de données. C'est bien comme tu me le conseilles qu'il faut travailler. Je communique le XSD + DTD à mez clients.
Par contre j'ai un nouveau problème.
exemple :
j'ai 3 tables, jointes A, B, C:
B liée à la clé unique de A, (j'ai donc une relation 1 vers N).
B liée à la clé unique de C (j'ai donc aussi une relation 1 vers N).
quand je demande le fichier XML relatif à ma base, avec A comme racine XML, j'obtiens bien les données relatives à A et B, mais rien sur C ?
je crois comprendre que c'est lié au fait que j'ai une relation 1 vers N entre B et C. comment faire pour obtenir un fichier XML ou C apparaitrait ?
Je sais pas si c'est bien clair. Si tu veux j'ai le XSD et le XML de l'example, à te communiquer éventuellement par MP, mais là ça ferait trop...
-
Ne connaissant pas SQL Server, je vais me hasarder à une suggestion...
Pourquoi ne fais-tu pas une sortie en demandant B comme racine ?
-
non justement ce que je cherche à faire c'est fournir un seul fichier XML.
Avec A comme racine, mais avec toutes les données de A, B et C.
Si je dois sortir un fichier avec A comme racine, puis un second avec C comme racine, où est l'interet. On courrai le risque d'avoir des différences, données orphelines, etc. enfin tous les problèmes que XML permet d'éviter il me semble. Mais encore une fois je ne suis pas un spécialiste, c'est pour cela que j'attends vos suggestions...