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

 


Dernière réponse
Sujet : [XML] Problème avec l'ordre des éléments d'un fichier XML
Profil supprimé

therier a écrit a écrit :

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




 
Le parser MSXML3 ne gere pas les schémas XML...
Saxon non plus. :(


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion

therier a écrit a écrit :

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




 
Le parser MSXML3 ne gere pas les schémas XML...
Saxon non plus. :(

therier

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.

matrixfan2k1 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.
therier

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?

matrixfan2k1 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 ?
matrixfan2k1 OK, je regarde ça tout de suite. Merci.
therier

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

matrixfan2k1 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.
therier

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.

matrixfan2k1 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.
matrixfan2k1 up  :(
darklord22 up ca m'intéresse aussi. Je me souviens avoir eu le meme probleme et j'ai pas (encore) trouvé la réponse.
matrixfan2k1 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

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)