Quelle est la différence entre ref et taper un schéma XML?

Considérons le schéma suivant:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:complexType name="Root">
        <xs:sequence>
            <xs:element ref="Child" />
            <xs:element name="Child2" type="Child" />
        </xs:sequence>
        <xs:attribute ref="Att" />
        <xs:attribute name="Att2" type="Att" />
    </xs:complexType>

    <xs:complexType name="Child">
        <xs:attribute ref="Att" />
    </xs:complexType>

    <xs:attribute name="Att" type="xs:integer" />

</xs:schema> 

La ref "Enfant" à la ligne 6 échoue, tandis que le type sur la ligne 7 valide. Pour l'attribut, l' ref réussit alors que le type échoue. J'essaie de comprendre pourquoi.

Ma compréhension de ref était qu'il faisait simplement référence à un autre élément et précisé que vous vous attendez à voir une instance de la visée de type (avec le nom donné dans la définition) à cet endroit. Évidemment, je suis en tort, donc, ce n'est ref signifie réellement?

source d'informationauteur Nigel Hawkins