Hvordan bruger man XSD?

XML-dokumenter kan referere til DTD eller XML Schema.

En enkel XML-dokument:

Se denne XML-dokumentet ved navn "note.xml":

<?xml version="1.0"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

DTD-fil

Dette eksemplet er en DTD-fil ved navn "note.dtd", som definerer elementene i den ovennævnte XML-dokumentet:

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

Linje 1 definerer note-elementet med fire underelementer: "to, from, heading, body".

Linje 2-5 definerer typen for elementerne to, from, heading, body som "#PCDATA".

XML Schema

Her er et eksempel på en XML Schema-fil ved navn "note.xsd", der definerer elementerne i den ovennævnte XML-dokument:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.codew3c.com"
xmlns="http://www.codew3c.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>

note-elementet er en kompleks type, fordi det indeholder andre underelementer. Andre elementer (to, from, heading, body) er enkle typer, fordi de ikke indeholder andre elementer. Du vil lære mere om komplekse og enkle typer i de efterfølgende kapitler.

Reference til DTD

Dette fil indeholder en reference til DTD:

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "http://www.codew3c.com/dtd/note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

Reference til XML Schema

Dette fil indeholder en reference til XML Schema:

<?xml version="1.0"?>
<note>
xmlns="http://www.codew3c.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.codew3c.com note.xsd">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>