What does an XML Schema look like?
Let's see an example.
An example of XML File
Consider this XML document for the next examples:
book.xml
<?xml version="1.0"?>
<book>
<title>A Great Book</title>
<author>Tom Nolan</author>
<publisher>Tutorial Reference</publisher>
</book>
An example of DTD File
The following example is a DTD file called "book.dtd" that defines the elements of the XML document above ("book.xml"):
book.dtd
<!DOCTYPE book [
<!ELEMENT book (title, author, publisher)>
<!ELEMENT title(#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT publisher(#PCDATA)>
]>
An example of XML Schema
The following example is an XML Schema file called "book.xsd" that defines the elements of the XML document above ("book.xml"):
book.xsd
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://tutorialreference.com"
xmlns="https://tutorialreference.com"
elementFormDefault="qualified">
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="author" type="xs:string"/>
<xs:element name="publisher" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
note
The book element is a complex type because it contains other elements. The other elements (title, author, publisher) are simple types because they do not contain other elements.
You will learn more about simple and complex types in the following chapters.
A Reference to a DTD
This XML document has a reference to a DTD, using <DOCTYPE>
book.xml
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM
"https://tutorialreference.com/xml/book.dtd">
<book>
<title>A Great Book</title>
<author>Tom Nolan</author>
<publisher>Tutorial Reference</publisher>
</book>
A Reference to an XML Schema
This XML document has a reference to an XML Schema:
<book
xmlns="https://tutorialreference.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://tutorialreference.com/xml book.xsd">
<title>A Great Book</title>
<author>Tom Nolan</author>
<publisher>Tutorial Reference</publisher>
</book>