Come utilizzare XSD?

Un documento XML può fare riferimento a DTD o XML Schema.

Un documento XML semplice:

Vediamo il documento XML chiamato "note.xml":

<?xml version="1.0"?>
<note>
<to>George</to>
<from>John</from>
<heading>Ricordatorio</heading>
<body>Non dimenticare l'incontro!</body>
</note>

File DTD

Esempio seguente è il file DTD chiamato "note.dtd", che definisce gli elementi del documento XML precedente:

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

La riga 1 definisce che l'elemento note ha quattro elementi figli: "to, from, heading, body".

Le righe 2-5 definiscono il tipo degli elementi to, from, heading, body come "#PCDATA".

XML Schema

Esempio seguente è un file XML Schema chiamato "note.xsd", che definisce gli elementi del documento XML sopra menzionato:

<?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>

L'elemento note è di tipo complesso perché contiene altri elementi sottostanti. Gli altri elementi (to, from, heading, body) sono di tipo semplice perché non contengono altri elementi. Apprenderai di più su tipi complessi e semplici nei capitoli seguenti.

Riferimento al DTD

Questo file contiene una riferimento al DTD:

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "http://www.codew3c.com/dtd/note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Ricordatorio</heading>
<body>Non dimenticare l'incontro!</body>
</note>

Riferimento al XML Schema

Questo file contiene una riferimento al 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>Ricordatorio</heading>
<body>Non dimenticare l'incontro!</body>
</note>