Lier les fichiers .xml .xsd .xsl

Lier les fichiers .xml .xsd .xsl - XML/XSL - Programmation

Marsh Posté le 29-07-2005 à 10:54:17    

J'ai un petit souci. Je n'arrive pas a executer ce fichier xml avec les contraintes que lui impose Schema, dans ce sens que l'element "price" est de type="xs:integer" dans Schema. Lorsque dans le fichier xml, je mets des lettres a price (mle), il l'excute quand meme! Et pourtant il ne devrait pas! Est ce que quelqu'un peut m'aider a regler ce probleme svp?
 
 Voici shiporder.xsd:
---------------------------------------------------------
 
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 
<!-- definition of simple elements -->
<xs:element name="orderperson" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="title" type="xs:string"/>
<xs:element name="note" type="xs:string"/>
<xs:element name="quantity" type="xs:positiveInteger"/>
<xs:element name="price" type="xs:integer"/>
 
<!-- definition of attributes -->
<xs:attribute name="orderid" type="xs:string"/>
 
<!-- definition of complex elements -->
<xs:element name="shipto">
 <xs:complexType>
  <xs:sequence>
   <xs:element ref="name"/>
   <xs:element ref="address"/>
   <xs:element ref="city"/>
   <xs:element ref="country"/>
  </xs:sequence>
 </xs:complexType>
</xs:element>
<xs:element name="item">
 <xs:complexType>
  <xs:sequence>
   <xs:element ref="title"/>
   <xs:element ref="note" minOccurs="0"/>
   <xs:element ref="quantity"/>
   <xs:element ref="price"/>
  </xs:sequence>
 </xs:complexType>
</xs:element>
 
<xs:element name="shiporder">
 <xs:complexType>
  <xs:sequence>
   <xs:element ref="orderperson"/>
   <xs:element ref="shipto"/>
   <xs:element ref="item" maxOccurs="unbounded"/>
  </xs:sequence>
  <xs:attribute ref="orderid" use="required"/>
 </xs:complexType>
</xs:element>
 
</xs:schema>
 
Et voila shiporder.xml:
-------------------------------------------------------------------------------
 
<?xml version="1.0" encoding="ISO-8859-1"?>
 
<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
 <orderperson>John Smith</orderperson>
 <shipto>
  <name>Ola Nordmann</name>
  <address>Langgt 23</address>
  <city>4000 Stavanger</city>
  <country>Norway</country>
 </shipto>
 <item>
  <title>Empire Burlesque</title>
  <note>Special Edition</note>
  <quantity>1</quantity>
  <price>10.90</price>
 </item>
 <item>
  <title>Hide your heart</title>
  <quantity>1</quantity>
  <price>mle</price>
 </item>
</shiporder>
 
Merci d'avance! Je suis en stage et ce probleme bloque mon travail.
 
 
 

Reply

Marsh Posté le 29-07-2005 à 10:54:17   

Reply

Marsh Posté le 29-07-2005 à 10:55:02    

Parce que ton parser ne valide pas le fichier XML face à son Schema...

Reply

Marsh Posté le 29-07-2005 à 11:00:29    

FlorentG a écrit :

Parce que ton parser ne valide pas le fichier XML face à son Schema...


 
Bien sur! Et c'est ca le probleme. Qu'est ce que je dois faire pour ? J'utilise  nedit pour ecrire mes fichiers et je l'execute sur Netscape 7.0

Reply

Marsh Posté le 29-07-2005 à 11:01:40    

Netscape étant basé sur FireFox, je crois pas que FireFox connaissent les schémas xsd... Il connait les DTD, c'est tout. Faut que tu trouves un parser qui connaisse l'xsd, peut-être celui de microsoft

Reply

Marsh Posté le 29-07-2005 à 11:09:34    

FlorentG a écrit :

Netscape étant basé sur FireFox, je crois pas que FireFox connaissent les schémas xsd... Il connait les DTD, c'est tout. Faut que tu trouves un parser qui connaisse l'xsd, peut-être celui de microsoft


 
Ouh la! J'ai alors un gros souci! Dans ma boite on utilise microsoft que pour faire du traitement de texte. Mais est ce que tu peux quand meme me dire comment est ce que je fais pour me choper un parser  XML sur windows ?

Reply

Marsh Posté le 29-07-2005 à 11:11:06    

http://msdn.microsoft.com/xml/ Dans les downloads, t'as le parser...

Reply

Marsh Posté le 02-08-2005 à 11:20:47    

et pour une fois on peut dire qu'ils n'ont pas loupé leur parser chez M$, le MSXML 4 est très costaud, rapide et même dispo en ligne de commande avec l'utilitaire MSXSL.EXE

Reply

Sujets relatifs:

Leave a Replay

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