Aide XML DTD

Aide XML DTD - XML/XSL - Programmation

Marsh Posté le 28-03-2006 à 15:04:42    

Bonjour,  
Je souhaite acquérrir des connaissances en XML, DTD ^^.
- j'aimerais créer un fichier XML permettant de conserver des données de commmande (Nom, Prénom....).
Quels moyens puis-je employer sachant que je ne dois pas utiliser php ni faire de saisie formulaire?
 
- j'ai créer 2 fichiers; le fichier XML des commandes; pourriez vous m'indiquer lequel est le plus approprié et m'aidez à corriger mes erreurs; les voici :
------------------------------------------------------------------------------------------------------------
<?xml version="1.0"?>
<COMMANDE>
      <NUMERO>0001</NUMERO>
      <NOM>VINCENT</NOM>
      <PRENOM>BERGER</PRENOM>
      <ADRESSE>10, rue oblivion - 93000 PARIS</ADRESSE>
      <DATE_ACHAT>15/03/06</DATE_ACHAT>
      <ETAT_COMMANDE>En cours de livraison</ETAT_COMMANDE>
      <MODE_PAIEMENT>Carte bancaire</MODE_PAIEMENT>
      <ARTICLE>
               <REFERENCE ID_PROD="PPROUGE08">
               <QUANTITE>20</QUANTITE>
               <PRIX_UNITAIRE>26.50</PRIX_UNITAIRE>
               </REFERENCE>
      </ARTICLE>
      <ARTICLE>
               <REFERENCE ID_PROD="PPBLEU06">
               <QUANTITE>15</QUANTITE>
               <PRIX_UNITAIRE>17.75</PRIX_UNITAIRE>
               </REFERENCE>
      </ARTICLE>
</COMMANDE>
<COMMANDE>
       <NUMERO>0002</NUMERO>
       <NOM>PIERRE</NOM>
       <PRENOM>MARCHAND</PRENOM>
       <ADRESSE>20, avenue des Champs Elysées - 75000 PARIS</ADRESSE>
       <DATE_ACHAT>13/02/06</DATE_ACHAT>
       <ETAT_COMMANDE>Livrée</ETAT_COMMANDE>
       <MODE_PAIEMENT>Chèque</MODE_PAIEMENT>
       <ARTICLE>
             <REFERENCE ID_PROD="PPVERT03">
             <QUANTITE>8</QUANTITE>
             <PRIX_UNITAIRE>23.50</PRIX_UNITAIRE>
             </REFERENCE>
       </ARTICLE>
       <ARTICLE>
             <REFERENCE ID_PROD="PPBLEU08">
             <QUANTITE>2</QUANTITE>
             <PRIX_UNITAIRE>19.25</PRIX_UNITAIRE>
             </REFERENCE>
        </ARTICLE>  
</COMMANDE>
--------------------------------------------------------------------------------------------------------------
<?xml version="1.0"?>
<COMMANDES XMLNS="">
         <NUMERO ID="0001">
                   <NOM>VINCENT</NOM>
                   <PRENOM>BERGER</PRENOM>
                   <ADRESSE>10, rue oblivion - 93000 PARIS</ADRESSE>
                   <DATE_ACHAT>15/03/06</DATE_ACHAT>
                   <ETAT_COMMANDE>En cours de livraison</ETAT_COMMANDE>
                   <MODE_PAIEMENT>Carte bancaire</MODE_PAIEMENT>
                   <ARTICLE>
                            <REFERENCE ID_PROD="PPROUGE08">
                                            <QUANTITE>20</QUANTITE>
                                            <PRIX_UNITAIRE>26.50</PRIX_UNITAIRE>
                            </REFERENCE>
                   </ARTICLE>
                   <ARTICLE>
                            <REFERENCE ID_PROD="PPBLEU06">
                                            <QUANTITE>15</QUANTITE>
                                            <PRIX_UNITAIRE>17.75</PRIX_UNITAIRE>
                            </REFERENCE>
                    </ARTICLE>
         </NUMERO>
         <NUMERO ID="0002">
                    <NOM>PIERRE</NOM>
                    <PRENOM>MARCHAND</PRENOM>
                    <ADRESSE>20, avenue des Champs Elysées - 75000 PARIS</ADRESSE>
                    <DATE_ACHAT>13/02/06</DATE_ACHAT>
                    <ETAT_COMMANDE>Livrée</ETAT_COMMANDE>
                    <MODE_PAIEMENT>Chèque</MODE_PAIEMENT>
                    <ARTICLE>
                               <REFERENCE ID_PROD="PPVERT03">
                                          <QUANTITE>8</QUANTITE>
                                          <PRIX_UNITAIRE>23.50</PRIX_UNITAIRE>
                               </REFERENCE>
                    </ARTICLE>
                    <ARTICLE>
                               <REFERENCE ID_PROD="PPBLEU08">
                                          <QUANTITE>2</QUANTITE>
                                          <PRIX_UNITAIRE>19.25</PRIX_UNITAIRE>
                               </REFERENCE>
                    </ARTICLE>
            </NUMERO>
</COMMANDES>
--------------------------------------------------------------------------------------------------------------
J'ai essayé de faire la DTD du second fichier :
Merci de me signaler mes erreurs ^^
 
<?xml version="1.0"?>
<!ELEMENT COMMANDES (NUMERO*)>
<!ATTLIST COMMANDES XMLNS CDATA #REQUIRED>
<!ELEMENT NUMERO (NOM,PRENOM,ADRESSE,DATE_ACHAT,ETAT_COMMANDE,MODE_PAIEMENT,ARTICLE+)>
<!ATTLIST NUMERO ID CDATA #REQUIRED>
<!ELEMENT NOM (#PCDATA)>
<!ELEMENT PRENOM (#PCDATA)>
<!ELEMENT ADRESSE (#PCDATA)>
<!ELEMENT DATE_ACHAT (#PCDATA)>
<!ELEMENT ETAT_COMMANDE (#PCDATA)>
<!ELEMENT MODE_PAIEMENT (#PCDATA)>
<!ELEMENT ARTICLE (REFERENCE*)>
<!ELEMENT REFERENCE (QUANTITE,PRIX_UNITAIRE)>
<!ATTLIST REFERENCE ID CDATA #REQUIRED>
--------------------------------------------------------------------------------------------------------------


Message édité par Funkyfonk le 28-03-2006 à 15:21:46
Reply

Marsh Posté le 28-03-2006 à 15:04:42   

Reply

Marsh Posté le 28-03-2006 à 15:22:36    

le premier me paraît mieux. Par contre, en xml, les balises et noms d'attributs sont en minuscules...

Reply

Marsh Posté le 28-03-2006 à 15:28:43    

Entendu merci^^, je vais corriger ça!!!
Par contre, faut il mettre des underscore ou des tirés dans les balises en minuscules?

Reply

Marsh Posté le 28-03-2006 à 15:43:23    

je ne suis pas sûr qu'on puisse mettre des - dans les noms d'attributs. Donc, je mettrais plutôt des _

Reply

Marsh Posté le 28-03-2006 à 15:59:56    

Pour ce qui est de ma premiere question, je me demande si il est possible de scanner ("parser" si c est bien ça) un fichier texte dans lequel un client à rentré une commande de manière à générer automatiquement le code xml et de l'intégrer dans le fichiers des commandes.xml? Est ce une solution?

Reply

Marsh Posté le 28-03-2006 à 17:30:45    

oui, c'est possible mais faut faire attention que l'utilisateur a bien respecté le formalisme que tu vas imposer dans le fichier txt que tu parseras après...pas évident! Alors que via un formualire, c'est facile.

Reply

Marsh Posté le 30-03-2006 à 17:33:51    

J'ai bien reécrit mon fichier xml ainsi que ma dtd; je voudrais savoir si il est mieux d'utiliser un parseur SAX ou un parseur DOM pour manipuler ce fichier XML? Merci^^

Reply

Marsh Posté le 30-03-2006 à 18:37:54    

DOM est peut-être plus utilisé, mais c'est à confirmer...

Reply

Marsh Posté le 01-04-2006 à 11:30:35    

L'usage est différent. DOM parse le document et te permet ensuite d'y accéder, dans sa totalité, tandis que SAX appelle un handler que tu écris pour chaque élément (attribut, cdata ...) qu'il rencontre. SAX est donc plus rapide et plus léger mais pas forcément adapté à tous les besoins.

Reply

Marsh Posté le 04-04-2006 à 10:57:17    

Merci, comment peut on vérifier qu'un fichier XML et sa DTD sont valides?


Message édité par Funkyfonk le 04-04-2006 à 10:57:42
Reply

Marsh Posté le 04-04-2006 à 10:57:17   

Reply

Marsh Posté le 04-04-2006 à 19:22:06    

Je n'ai jamais testé mais en Java les factories qui créent les parsers SAX et DOM ont une méthode setValidating(true) qui permet d'activer la validation en utilisant le DTD ou le schema précisé par le fichier XML.
 
Si tu cherches un outil tout fait, il y en a pas mal. Par exemple celui de Sun: http://www.sun.com/software/xml/de [...] ltischema/.


Message édité par rx__ le 04-04-2006 à 19:22:42
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed