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>