Go Back   Velocity Reviews > Newsgroups > XML
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

XML - [Newbie] XSD Validation for xml

 
Thread Tools Search this Thread
Old 10-09-2009, 11:33 PM   #1
Default [Newbie] XSD Validation for xml


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.


apolloj
  Reply With Quote
Old 10-10-2009, 11:50 AM   #2
Martin Honnen
 
Posts: n/a
Default Re: [Newbie] XSD Validation for xml
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/


Martin Honnen
  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

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

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
XML document validation using Xerces SAX2XMLReader against external DTD mnshtiwari Software 0 04-14-2009 03:51 PM
C#, Server validation paul_singh Software 0 09-23-2008 02:34 PM
on submit validation with Master Page in ASP.net 2.0 dipesh10 Software 0 06-27-2007 02:33 PM
How we can do validation with velocity macro tags HemantS Software 0 06-12-2007 04:58 AM




SEO by vBSEO 3.3.2 ©2009, Crawlability, Inc.

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