Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > XML > [Newbie] XSD Validation for xml

Reply
Thread Tools

[Newbie] XSD Validation for xml

 
 
apolloj
Guest
Posts: n/a
 
      10-09-2009
Hi,

I've got this xsd schema :

1/ info.xsd :

<?xml version="1.0" encoding="utf8" ?>
<xsd:schema xmlns=""
xmlnssd="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:etatContratrevu"/>
<xsd:enumeration value="test:etatContratperationnel"/>
<xsd:enumeration value="test:etatContrat:stabilise"/>
<xsd:enumeration value="test:etatContratbsolescent"/>
<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/ This info.xml file :

<?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/ When I try to validate info.xml againt info.xsd, I've got this error :

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

What do I miss ?

Thanks in advance.
 
Reply With Quote
 
 
 
 
Martin Honnen
Guest
Posts: n/a
 
      10-10-2009
apolloj wrote:

> <xsd:schema xmlns=""
> xmlnssd="http://www.w3.org/2001/XMLSchema"
> targetNamespace="">
>
> <xsd:element name="description" type="xsd:string"/>
>
> <xsd:element name="services-test" type="xsd:string"/>


Here you are defining the element services-test to have the type xsd:string.


> <services-test>
> <mat name="MAN">
> <description>mat</description>


yet here you give the element services-test child elements. If the type
is xsd:string then the element is not allowed any child elements, it can
only have text contents.

You probably want to give the services-test element one of the complex
types you have defined in your schema e.g.
<xsd:element name="services-test" type="services-test"/>
as the complex type named services-test is defined in your schema.

--

Martin Honnen
http://msmvps.com/blogs/martin_honnen/
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
convert XML to XSD? or DTD to XSD? Matt XML 3 09-11-2008 12:40 PM
Validation with XSD using XML::LibXML::Schema, and XML::Validator::Schema huntingseasonson@gmail.com Perl Misc 5 11-29-2006 12:37 PM
Validation of XSD (XML Schema) against XSD Rushi XML 1 12-09-2005 08:12 AM
XML + XSD: Is it possible to get all errors against the XSD? Markus Java 1 11-22-2005 02:53 PM
XML schema - Make xsd include another xsd stiank81 XML 4 06-26-2005 05:11 PM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57