Un schéma XML commence par l'ouverture d'un élément schema destiné à accueillir la définition des composants d'un document XML.

<xsd:schema 
  attributeFormDefault = (qualified | unqualified) : unqualified
  blockDefault = (#all | Liste de (extension | restriction | substitution)) : ''
  elementFormDefault = (qualified | unqualified) : unqualified
  finalDefault = (#all | Liste de (extension | restriction)) : ''
  id = ID 
  targetNamespace = adresse_URI 
  version = token 
  xml:lang = language 
  {tout attribut ayant un espace de noms 
        différent de celui du schéma...}>
  Contenu : ((include | import | redefine | annotation)*, 
          (((simpleType | complexType | group | attributeGroup) 
              | element | attribute | notation), annotation*)*)
</xsd:schema>

L'élément schema possède plusieurs attributs destinés à définir le cadre du schéma XML.

Attributs Description
attributeFormDefault indique si les attributs XML doivent être qualifiés par un espace de noms.
blockDefault empêche, par défaut, l'utilisation de types dérivés dans des éléments attendant le type de base.
elementFormDefault indique si les éléments XML doivent être qualifiés par un espace de noms.
finalDefault empêche, par défaut, la dérivation de type par restriction, extension ou les deux.
id précise un identificateur unique pour le schéma.
targetNamespace indique un espace de noms cible pour tout élément étranger au vocabulaire de schéma XML.
version indique un numéro de version.
xml:lang indique le langage dans lequel est conçu le document.

L'élément schema ne peut être inclus dans aucun élément.

Exemple
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema
      xmlns:xsd="http://www.w3.org/2001/XMLSchema.xsd"
      xmlns="http://www.site.com/schemaxml/"
      targetNamespace="http://www.site.com/schemaxml/">>
 ...
</xsd:schema>