L'élément list permet de créer de nouveaux types de listes par dérivation de types de données atomiques existants.

<xsd:list 
  id = ID 
  itemType = QName 
  {tout attribut ayant un espace de noms 
        différent de celui du schéma...}>
  Contenu : (annotation?, (simpleType?))
</xsd:list>

L'élément list possède plusieurs attributs destinés à l'identifier et à préciser un type de données.

Attributs Description
id précise un identificateur unique pour l'élément.
itemType spécifie le nom d'un type de données existants.

L'élément list ne peut être inclus que dans l'élément suivant :

Exemple [voir]
<?xml version="1.0" encoding="ISO-8859-1"?>
<element_racine 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="c:\schema.xsd">
  <note_devoir>
  15 16 18 19 18 19
  </note_devoir>
  <note_devoir>
  9 12 11 14 8 15
  </note_devoir>
</element_racine>

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema 
         xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
         elementFormDefault="qualified" 
         attributeFormDefault="unqualified">
  <xsd:simpleType name="note_chiffree">
  <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="0"/>
            <xsd:maxInclusive value="20"/>
          </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="type_note">
  <xsd:list itemType="note_chiffree"/>
  </xsd:simpleType>
  
  <xsd:complexType name="type_element_racine">
  <xsd:sequence>
      <xsd:element name="note_devoir" 
                    type="type_note" 
                    maxOccurs="unbounded"/>
  </xsd:sequence>
  </xsd:complexType>

  <xsd:element name="element_racine" 
                  type="type_element_racine"/>
</xsd:schema>