![]() |
|
|
|||||||
![]() |
XML - [Newbie] XSD Validation for xml |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
Hi,
I've got this xsd schema : 1/ info.xsd : <?xml version="1.0" encoding="utf8" ?> <xsd:schema xmlns="" xmlns 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 <xsd:enumeration value="test:etatContrat <xsd:enumeration value="test:etatContrat:stabilise"/> <xsd:enumeration value="test:etatContrat <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 |
|
|
|
|
#2 |
|
Posts: n/a
|
apolloj wrote:
> <xsd:schema xmlns="" > xmlns > 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 |
|
![]() |
| Thread Tools | Search this Thread |
|
|
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 |