Je lis sur XML, XML-Schema, DTD et je ne comprends pas vraiment la différence entre xsd: any et xsd: anyType.
Quelqu'un peut-il m'expliquer cela ou pointer vers un bon article? (veuillez ne pas créer de lien vers les spécifications du schéma XML - je l'ai lu et je suis plus confus)
TIA
Cet article l'explique bien. Je cite:
xsd: anyType est un type, comme xsd: integer (bien que xsd: anyType soit spécial en ce sens qu'il peut agir comme un type simple ou complexe, et qu'il n'impose essentiellement aucune restriction sur l'arborescence qu'il valide - pensez-y librement comme le Analogue du langage de schéma Java.lang.Object).
Un exemple d'utilisation serait:
<xsd:element name="e" type="xsd:anyType"/>
Cela signifierait que les éléments nommés
<e>
peut avoir n'importe quel contenu, n'importe quel attribut, etc.xs: any est un caractère générique, utilisable comme terme dans un modèle de contenu. Par exemple:
<xsd:complexType name="T">
<xsd:sequence>
<xsd:element ref="A"/>
<xsd:any />
<xsd:element ref="C"/>
</xsd:sequence>
</xsd:complexType>
Les éléments de type T doivent avoir un contenu
<A/><???/><C/>
, où<???>
peut être n'importe quel élément nommé. Maintenant, si vous regardez de très près, il existe une approximation de la définition de xsd: anyType donnée à titre de référence dans la recommandation, et elle utilise un caractère générique xsd: any comme moyen de dire qu'elle autorise tous les éléments.
Jetez également un œil au schéma XML .
Le message de la liste de diffusion lié dans la réponse de Dogbane n'était pas clair pour moi jusqu'à ce que je crée l'exemple suivant:
Avec le schéma anyType:
<xsd:complexType name="Outer">
<xsd:element name="e" type="xsd:anyType" />
</xsd:complexType>
Ce qui permet ce format:
<Outer>
<e> // must be called "e"
// but anything can go inside
</e>
</Outer>
Et avec n'importe quel schéma:
<xsd:complexType name="Outer">
<xsd:any />
</xsd:complexType>
Ce qui permet ce format:
<Outer>
//anything can go inside
</Outer>
Donc, anyType est un type et any est un élément