XSD How to use?


XML documents can reference a DTD or an XML Schema.


A simple XML document:

Take a look at this XML document named "note.xml":

<?xml version="1.0"?>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>


DTD file

The following example is a DTD file named "note.dtd", which defines the elements of the XML document ("note.xml") above:

<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

Line 1 defines the note element as having four child elements: "to, from, heading, body".

Lines 2-5 define the types of the to, from, heading, body elements as "#PCDATA".


XML Schema

The following example is an XML Schema file named "note.xsd", which defines the elements of the XML document ("note.xml") above:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">

<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="to" type="xs:string"/>
      <xs:element name="from" type="xs:string"/>
      <xs:element name="heading" type="xs:string"/>
      <xs:element name="body" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema>

The note element is a complex type because it contains other child elements. The other elements (to, from, heading, body) are simple types because they do not contain other elements. You will learn more about complex types and simple types in the following chapters.


Reference to the DTD

This file contains a reference to the DTD:

<?xml version="1.0"?>

<!DOCTYPE note SYSTEM
"http://www.w3schools.com/dtd/note.dtd">

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>


Reference to the XML Schema

This file contains a reference to the XML Schema:

<?xml version="1.0"?>

<note
xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>
Other extensions