Hur använder man XSD?

XML-dokument kan hänvisa till DTD eller XML Schema.

Se denna XML-dokument med namnet \

<?xml version="1.0"?>
<note>
<to>George</to>
<from>John</from>
<heading>Påminnelse</heading>
<body>Glöm inte mötet!</body>
</note>

Följande exempel är en DTD-fil med namnet \

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

Den första raden definierar elementet "note" med fyra underkomponenter: \

Rader 2-5 definierar typen för to, from, heading, body-elementen som "#PCDATA".

XML Schema

Följande exempel är en XML Schema-fil med namnet "note.xsd", som definierar elementen i den tidigare XML-dokumentet:

<?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 är en komplex typ eftersom det innehåller andra underelement. Andra element (to, from, heading, body) är enkla typer eftersom de inte innehåller andra element. Du kommer att lära dig mer om komplexa och enkla typer i de följande kapitlen.

Referenser till DTD

Denna fil innehåller referenser till DTD:

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "http://www.codew3c.com/dtd/note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Påminnelse</heading>
<body>Glöm inte mötet!</body>
</note>

Referenser till XML Schema

Denna fil innehåller referenser till 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>Påminnelse</heading>
<body>Glöm inte mötet!</body>
</note>