La validation permet de vérifier si la structure et le contenu d'un document XML respecte les contraintes imposées par une définition de type de document (DTD) ou un schéma XML.

<!-- Fichier : employes.xml -->
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE employes SYSTEM "employes.dtd">
<employes>
  <employe id="RJ1002" service="DG001">
    <nom>Robierre</nom>
    <prenom>Jean</prenom>
  </employe>
  <employe id="LA1012" service="DG001">
    <nom>Lardut</nom>
    <prenom>Anne</prenom>
  </employe>
  <employe id="GA1013" service="ST001">
    <nom>Guilde</nom>
    <prenom>Angelique</prenom>
  </employe>
  <employe id="HP1022" service="SC001">
    <nom>Henry</nom>
    <prenom>Paul</prenom>
  </employe>
  <employe id="MM1045" service="RH001">
    <nom>Mortier</nom>
    <prenom>Marc</prenom>
  </employe>
  <employe id="LS1102" service="SQ001">
    <nom>Lebreton</nom>
    <prenom>Sophie</prenom>
  </employe>
  <employe id="JM1095" service="RD001">
    <nom>Jolie</nom>
    <prenom>Martine</prenom>
  </employe>
  <employe id="MT1036" service="SC101">
    <nom>Marcelin</nom>
    <prenom>Tania</prenom>
  </employe>
  <employe id="LL1029" service="SC101">
    <nom>Leger</nom>
    <prenom>Laurence</prenom>
  </employe>
  <employe id="DM1052" service="SC001">
    <nom>Duroi</nom>
    <prenom>Maxime</prenom>
  </employe>
</employes>

<!-- Fichier : employes.xsd -->
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="element_enfant" type="xsd:string"/>
  <xsd:element name="element_racine">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="element_enfant" type="xsd:string" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

<!-- Fichier : employes.rng -->
<?xml version="1.0" encoding="ISO-8859-1"?>
<element name="employes" 
         xmlns="http://relaxng.org/ns/structure/1.0"
         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <oneOrMore>
    <element name="employe">
        <attribute name="id">
          <data type="ID"/>
        </attribute>
        <attribute name="service">
          <data type="NMTOKEN"/>
        </attribute>
      <element name="nom">
        <text/>
      </element>
      <element name="prenom">
        <text/>
      </element>
    </element>
  </oneOrMore>
</element>

<!-- Fichier : employes.dtd -->
<?xml version="1.0" encoding="ISO-8859-1"?>
<!ELEMENT employe (nom, prenom)>
<!ATTLIST employe
        id ID #REQUIRED
        service NMTOKEN #REQUIRED
>
<!ELEMENT employes (employe+)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
Sommaire