Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1999 connectés 

  FORUM HardWare.fr
  Programmation

  [XML] Problème avec l'ordre des éléments d'un fichier XML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[XML] Problème avec l'ordre des éléments d'un fichier XML

n°91577
matrixfan2​k1
Posté le 21-01-2002 à 16:04:53  profilanswer
 

Bonjour à tous.
 
Voila mon problème. J'ai créé un document XML dont la structure est vérifié par un fichier DTD. Or, cette vérification m'impose un ordre des éléments.
 
Par exemple, si le fichier DTD est:
 
<!ELEMENT personne (nom,prenom)>
  <!ELEMENT nom (#PCDATA)>
  <!ELEMENT prenom (#PCDATA)>
 
Ce fichier XML fonctionne:
 
<personne>
  <nom>Dupond</nom>
  <prenom>Antoine</prenom>
</personne>
 
mais celui-ci ne fonctionne pas:
 
<personne>
  <prenom>Antoine</prenom>
  <nom>Dupond</nom>
</personne>
 
Comment puis-je faire pour que la DTD ne se soucie pas de l'ordre ?
 
Merci d'avance.
 
PS: J'utilise le parseur MSXML 3.0 sous C++ Builder 5.0

mood
Publicité
Posté le 21-01-2002 à 16:04:53  profilanswer
 

n°91579
darklord22
Nightwish rulezzzzzzzzzzzzz
Posté le 21-01-2002 à 16:07:19  profilanswer
 

up ca m'intéresse aussi. Je me souviens avoir eu le meme probleme et j'ai pas (encore) trouvé la réponse.


---------------
What is popular is not always right, what is right is not always popular :D
n°91601
matrixfan2​k1
Posté le 21-01-2002 à 16:50:01  profilanswer
 

up  :(

n°91620
matrixfan2​k1
Posté le 21-01-2002 à 17:25:22  profilanswer
 

Visiblement, cela doit fonctionner avec les schemas XML. Mais bon, ca m'a l'air assez compliqué et ça me ferait pas mal de changements.
 
Y'a quelqu'un qui pourrait me donner un exemple clair de schéma XML ? Ou alors c'est possible avec les DTD (ce qui me parait problable).
 
Merci encore, c'est assez urgent.

n°91635
therier
heu...coucou!
Posté le 21-01-2002 à 18:01:56  profilanswer
 

matrixfan2k1 a écrit a écrit :

Visiblement, cela doit fonctionner avec les schemas XML. Mais bon, ca m'a l'air assez compliqué et ça me ferait pas mal de changements.
 
Y'a quelqu'un qui pourrait me donner un exemple clair de schéma XML ? Ou alors c'est possible avec les DTD (ce qui me parait problable).
 
Merci encore, c'est assez urgent.  




 
 
un petit schema pour faire la même chose...
 
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
 
<xsd:element name="Personne">
 <xsd:complexType>
  <xsd:sequence>
 <xsd:element name="prenom" type="xsd:string" minOccurs="0"/>
 <xsd:element name="nom" type="xsd:string" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
</xsd:element>
 
L'ordre a une importance puisque l'on fait une sequence...
Donc on peut ecrire les 2 cas:
 
 
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
 
<xsd:element name="Personne">
 <xsd:complexType>
 
<xsd:choice>
  <xsd:sequence>
 <xsd:element name="prenom" type="xsd:string" minOccurs="0"/>
 <xsd:element name="nom" type="xsd:string" minOccurs="0"/>
  </xsd:sequence>
  <xsd:sequence>
 <xsd:element name="nom" type="xsd:string" minOccurs="0"/>
        <xsd:element name="prenom" type="xsd:string" minOccurs="0"/>
 
  </xsd:sequence>
</xsd:choice>  
 </xsd:complexType>
</xsd:element>
 
 
ouala. J'ai pas testé, mais ça doit marcher.

n°91636
matrixfan2​k1
Posté le 21-01-2002 à 18:04:44  profilanswer
 

J'ai vu qu'on pouvait mettre "all" à la place de "sequence" pour ne pas prendre en compte de l'ordre. C'est d'ailleurs cela qui m'a attiré vers les schémas.
Mais je ne comprends pas l'intérêt de la ligne:
 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">  
 
A quoi sert l'url ? Et la propriété elementFormDefault?
 
En tout cas, merci beaucoup de ton aide.

n°91637
therier
heu...coucou!
Posté le 21-01-2002 à 18:13:31  profilanswer
 

matrixfan2k1 a écrit a écrit :

J'ai vu qu'on pouvait mettre "all" à la place de "sequence" pour ne pas prendre en compte de l'ordre. C'est d'ailleurs cela qui m'a attiré vers les schémas.
Mais je ne comprends pas l'intérêt de la ligne:
 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">  
 
A quoi sert l'url ? Et la propriété elementFormDefault?
 
En tout cas, merci beaucoup de ton aide.  




 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" c'est le namespace schema. Tu definis xsd (ou toto si tu veux!) comme le namespace de tes primitives schema.
 
l'attribut sus-cité est mis par defaut partout, il definit si ton namespace connait l'element form (rien à secouer ici, mais c un copier-cller)...
 
l'element all marche bien mais si tu utilise des generateur des 'binders' Java, il provoque des erreurs. c pourquoi je vise au plus simple avec sequences et choice...
 
une tite URL:
http://www.xml.com/pub/a/2000/11/2 [...] tml?page=8

n°91817
matrixfan2​k1
Posté le 22-01-2002 à 09:58:37  profilanswer
 

OK, je regarde ça tout de suite. Merci.

n°91829
matrixfan2​k1
Posté le 22-01-2002 à 10:54:31  profilanswer
 

Je pense avoir compris les schémas XML mais malheureusement, lorsque je fais des tests, aucune erreur apparait. Est-ce que c'est mon code qui ne fonctionne pas. Voici un exemple:
 
Schema XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="personne">
<xsd:complexType>
 <xsd:sequence>
  <xsd:element name="nom" type="xsd:string" minOccurs="0"/>
  <xsd:element name="prenom" type="xsd:string" minOccurs="0"/>
 </xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

 
Les fichiers XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<personne  
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="schema.xsd">
 <nom>Dupond</nom>
 <prenom>Antoine</prenom>
</personne>
 
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<personne  
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="schema.xsd">
 <nom>Dupond</nom>
 <adresse>Antoine</adresse>
</personne>
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<personne  
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="schema.xsd">
 <prenom>Dupond</prenom>
 <nom>Antoine</nom>
</personne>

 
Et tous les fichiers XML ne provoquent aucune erreur, alors qu'avec la DTD seul le 1er fonctionnait.
 
Quelqu'un aurait-il une idée ?

n°91831
therier
heu...coucou!
Posté le 22-01-2002 à 10:56:10  profilanswer
 

matrixfan2k1 a écrit a écrit :

Je pense avoir compris les schémas XML mais malheureusement, lorsque je fais des tests, aucune erreur apparait. Est-ce que c'est mon code qui ne fonctionne pas. Voici un exemple:
 
Schema XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="personne">
<xsd:complexType>
 <xsd:sequence>
  <xsd:element name="nom" type="xsd:string" minOccurs="0"/>
  <xsd:element name="prenom" type="xsd:string" minOccurs="0"/>
 </xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

 
Les fichiers XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<personne  
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="schema.xsd">
 <nom>Dupond</nom>
 <prenom>Antoine</prenom>
</personne>
 
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<personne  
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="schema.xsd">
 <nom>Dupond</nom>
 <adresse>Antoine</adresse>
</personne>
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<personne  
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="schema.xsd">
 <prenom>Dupond</prenom>
 <nom>Antoine</nom>
</personne>

 
Et tous les fichiers XML ne provoquent aucune erreur, alors qu'avec la DTD seul le 1er fonctionnait.
 
Quelqu'un aurait-il une idée ?  




 
 
Tu testes comment?

mood
Publicité
Posté le 22-01-2002 à 10:56:10  profilanswer
 

n°91836
matrixfan2​k1
Posté le 22-01-2002 à 11:12:50  profilanswer
 

J'utilise le parseur MSXML 3.0 inclus dans IE et j'ai fait un petit programme sous C++ Builder 5.0 qui charge le fichier XML et le vérifie.

n°91922
therier
heu...coucou!
Posté le 22-01-2002 à 14:52:14  profilanswer
 

matrixfan2k1 a écrit a écrit :

J'utilise le parseur MSXML 3.0 inclus dans IE et j'ai fait un petit programme sous C++ Builder 5.0 qui charge le fichier XML et le vérifie.  




 
Visiblement, il ne valide pas...
Verifie les parametres.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [XML] Problème avec l'ordre des éléments d'un fichier XML

 

Sujets relatifs
[URGENT - STAGE] Mon input type="file" me renvoi un fichier .tmp[C++] Chercher un string dans un fichier
[DELPHI / XML] Utiliser le DOM d'IE[C++]Lecture/ecriture dans un fichier
petit probleme hyper facile pour VB pour mon premier tp de facproblème de PATH
[ASP] lire dans un fichier[PHP]Choisir un fichier avec un form(ou autre) et récupérer le LIEN
java : probleme de creation du .bat de compilation et d'execution[ASP ACCESS] Problème de requête!
Plus de sujets relatifs à : [XML] Problème avec l'ordre des éléments d'un fichier XML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR