XSD: valeur par défaut d'un élément manquant

Est-il possible de définir une valeur par défaut pour un élément manquant dans un Schéma XML. J'ai le code suivant:

<xs:element name="protocol" nillable="false" minOccurs="0" default="ftp">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:enumeration value="ftp"/>
      <xs:enumeration value="webdav"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Si j'ai dans le fichier XML

<protocol>ftp</protocol>

ou

<protocol>webdav</protocol>

il valide et je obtenir la bonne valeur.
Si j'ai dans le fichier XML

<protocol></protocol>

il valide également et j'obtiens la valeur par défaut de ftp.

Mes recherches montrent que les valeurs d'attribut par défaut s'appliquent lorsque les attributs sont manquantes, et l'élément par défaut les valeurs s'appliquent lorsque les éléments sont vides. Est-il possible d'avoir une valeur par défaut pour un élément manquant?

Ce qui concerne

rambius

minOccurs devrait être de 1 alors
Je veux l'élément protocole facultatif, mais si elle est manquante, il convient de ftp. On dirait qu'il n'est pas possible et je doit traiter que de la logique dans l'application, pas dans le schéma.

OriginalL'auteur rambius | 2013-09-09