
On Tue, Mar 8, 2011 at 2:06 PM, ibtisam jamal <ibty.jamal@gmail.com> wrote:
im learning but im stuck i created the attached XML doc from the attached DTD then i created a schema doc from my XML and the DTD .but when i referenced the xsd in the xml document it gets stuck when validating .
I think i should have 6 elements under root seeker
Please find the attached
Your schema definition has some problems -- it allows multiple root elements ; does not define a hierarchy ; also you dont need a DTD if you are using a XSD schema. For the schema -- you need to do something like this : <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="seeker"> <xs:complexType> <xs:sequence> <xs:element ref="name"/> <xs:element ref="address"/> <xs:element ref="personalinfo"/> <xs:element ref="email"/> <xs:element ref="skills"/> <xs:element ref="salary"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="name"> <xs:complexType> <xs:sequence> <xs:element ref="first-name"/> <xs:element ref="surname"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="first-name" type="xs:NCName"/> <xs:element name="surname" type="xs:NCName"/> <xs:element name="address"> <xs:complexType> <xs:sequence> <xs:element ref="street"/> <xs:element ref="town"/> <xs:element ref="county"/> <xs:element ref="postcode"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="street" type="xs:string"/> <xs:element name="town" type="xs:NCName"/> <xs:element name="county" type="xs:string"/> <xs:element name="postcode" type="xs:integer"/> <xs:element name="personalinfo"> <xs:complexType> <xs:sequence> <xs:element ref="dateofbirth"/> <xs:element ref="nationality"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="dateofbirth"> <xs:complexType> <xs:attribute name="date" use="required" type="xs:date"/> </xs:complexType> </xs:element> <xs:element name="nationality" type="xs:NCName"/> <xs:element name="email" type="xs:string"/> <xs:element name="skills"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="skill"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="skill" type="xs:NCName"/> <xs:element name="salary"> <xs:complexType> <xs:sequence> <xs:element ref="min-salary"/> <xs:element ref="max-salary"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="min-salary" type="xs:string"/> <xs:element name="max-salary" type="xs:string"/> </xs:schema> A xml corresponding to the schema will look like this : <?xml version="1.0" encoding="UTF-8"?> <!-- JOBSEEKER DETAILS --> <seeker xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="jobseeker.xsd"> <name> <first-name>MUKHTAR</first-name> <surname>OMAR</surname> </name> <address> <street>SOUTH C</street> <town>NAIROBI</town> <county>NAIROBI WEST</county> <postcode>00506</postcode> </address> <personalinfo> <dateofbirth date="1970-01-12" /> <nationality>Kenya</nationality> </personalinfo> <email>M.OMAR@GMAIL.COM</email> <skills> <skill>DOCTOR</skill> <skill>ENGINEER</skill> <skill>PILOT</skill> </skills> <salary> <min-salary>2000 USD</min-salary> <max-salary>3000 USD</max-salary> </salary> </seeker>