🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.text.xml
Article #108

[newbie] Validation XSD/XML

#108
From: apolloj
Date: Fri, 09 Oct 2009 22:48
150 lines
6359 bytes
Hi,

1/J'ai ce sh�ma  info.xsd :

<?xml version="1.0" encoding="utf8" ?>
<xsd:schema xmlns=""
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             targetNamespace="">

     <xsd:element name="description" type="xsd:string"/>

  <xsd:element name="services-test" type="xsd:string"/>

         <!-- definition du noeud racine 'services-test' -->
         <xsd:complexType name="services-test">
             <xsd:sequence>
                   <xsd:element maxOccurs="unbounded" minOccurs="0" 
name="mat" type="mat"/>
             </xsd:sequence>
             <xsd:attribute name="noNamespaceSchemaLocation" 
type="xsd:token"/>
           </xsd:complexType>

         <!-- definition du noeud 'mat' -->
         <xsd:complexType name="mat">
             <xsd:sequence>
                 <xsd:element maxOccurs="1" minOccurs="0" 
name="description" type="xsd:string"/>
                 <xsd:element maxOccurs="1" minOccurs="1" 
name="contrats" type="contrats"/>
             </xsd:sequence>
             <xsd:attribute name="name" type="xsd:token" use="required"/>
         </xsd:complexType>

         <!-- defintion du noeud 'contrats'-->
         <xsd:complexType name="contrats">
             <xsd:sequence>
                 <xsd:element maxOccurs="unbounded" minOccurs="0" 
name="contrat" type="contrat"/>
             </xsd:sequence>
         </xsd:complexType>

         <!-- validation du noeud 'contrat' -->
         <xsd:complexType name="contrat">
             <xsd:sequence>
                 <xsd:element name="description" type="xsd:string"/>
                 <xsd:element name="etatContrat" type="etatContrat"/>
                 <xsd:element name="services"     type="services"/>
             </xsd:sequence>
             <xsd:attribute name="name" type="xsd:token"/>
         </xsd:complexType>

         <!-- Validation de noeud 'EtatContrat' -->
         <xsd:complexType name="etatContrat">
             <xsd:sequence>
                 <xsd:element name="etat" type="etat"/>
             </xsd:sequence>
             <xsd:attribute name="dateEffet" type="xsd:string" 
use="optional"/>
         </xsd:complexType>

         <xsd:complexType name="etat">
             <xsd:sequence>
                 <xsd:element name="description" type="xsd:token"/>
             </xsd:sequence>
             <xsd:attribute name="name" use="required">
                 <xsd:simpleType>
                     <xsd:restriction base="xsd:NMTOKEN">
                         <xsd:enumeration value="test:etatContrat:prevu"/>
                         <xsd:enumeration 
value="test:etatContrat:operationnel"/>
                         <xsd:enumeration 
value="test:etatContrat:stabilise"/>
                         <xsd:enumeration 
value="test:etatContrat:obsolescent"/>
                         <xsd:enumeration value="test:etatContrat:retire"/>
                     </xsd:restriction>
                 </xsd:simpleType>
             </xsd:attribute>
         </xsd:complexType>

     <xsd:complexType name="services">
         <xsd:sequence>
             <xsd:element maxOccurs="unbounded" minOccurs="0" 
name="service" type="service"/>
         </xsd:sequence>
     </xsd:complexType>

     <xsd:complexType name="service">
         <xsd:sequence>
             <xsd:element name="description" type="xsd:string"/>
         </xsd:sequence>
         <xsd:attribute name="accessPoint" type="xsd:anyURI"/>
         <xsd:attribute name="name" type="xsd:string" use="required" />
         <xsd:attribute name="wsdl" type="xsd:anyURI" use="required" />
     </xsd:complexType>

</xsd:schema>

2/ Le fichier xml suivant :

<?xml version="1.0" encoding="utf8"?>
<services-test>
   <mat name="MAN">
     <description>mat</description>
     <contrats>
       <contrat name="CONTRAT_MAN_top2">
         <description>contrat CONTRAT_MAN_top2</description>
         <etatContrat>
           <etat name=":etatContrat:stabilise">
             <description>Stabilis�</description>
           </etat>
         </etatContrat>
         <services>
             <service name="RestitutionNomenclatureInterface" 
wsdl="http://192.168.31.32:1511/mannaf_CA2_Z2/services/MAN/contrat_naf" 
accessPoint="http://192.168.31.32:1511/mannaf_CA2_Z2/services/MAN/contrat_naf">
               <description>Description</description>
             </service>
             <service name="RestitutionActivitesInterface"

wsdl="http://192.168.31.32:1511/mannaf_CA2_Z2/services/MAN/contrat_naf"

accessPoint="http://192.168.31.32:1511/mannaf_CA2_Z2/services/MAN/contrat_naf">
               <description>Description</description>
             </service>
         </services>
       </contrat>
     </contrats>
   </mat>
</services-test>

3/ Quand j'essaie de valider le fichier xml � partir de xsd :

xmllint --noout --schema ./info.xsd ./info.xml
./info.xml:2: element services-test: Schemas validity error : Element 
'services-test': No matching global declaration available.
./info.xml fails to validate

Qq'un peut-il-me donner des infos ?

Mer�i d'avance.

PS :
xmllint --version
xmllint: using libxml version 20632
    compiled with: Threads Tree Output Push Reader Patterns Writer SAXv1 
FTP HTTP DTDValid HTML Legacy C14N Catalog XPath XPointer XInclude Iconv 
ISO8859X Unicode Regexps Automata Expr Schemas Schematron Modules Debug 
Zlib
Technical Details
Message-ID: <4acfbdd9$0$31424$426a34cc@news.free.fr>
Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!cleanfeed3-b.proxad.net!nnrp3-1.free.fr!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: 8a75585569,af86fdbf92d5fc75,start
X-Google-Attributes: gid8a75585569,public,usenet
X-Google-NewGroupId: yes
X-Google-Language: ENGLISH,ASCII
Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!cleanfeed3-b.proxad.net!nnrp3-1.free.fr!not-for-mail
Date: Sat, 10 Oct 2009 00:48:57 +0200
From: apolloj <apolloj_net@NOSPAMmsn.com>
User-Agent: Thunderbird 2.0.0.23 (X11/20090817)
MIME-Version: 1.0
Newsgroups: fr.comp.text.xml
Subject: [newbie] Validation XSD/XML
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 150
Message-ID: <4acfbdd9$0$31424$426a34cc@news.free.fr>
Organization: Guest of ProXad - France
NNTP-Posting-Date: 10 Oct 2009 00:48:57 MEST
NNTP-Posting-Host: 88.173.239.181
X-Trace: 1255128537 news-4.free.fr 31424 88.173.239.181:47057
X-Complaints-To: abuse@proxad.net