Quelle est exactement la différence entre XML Schema Document et XML Schema Instance?
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Veuillez développer.
xsd
et xsi
Similitudesxsd
est xs
.)xsd
et xsi
Différencesxsd
(ou xs
) préfixe faisant référence à Espace de noms de schéma (http://www.w3.org/2001/XMLSchema
) est utilisé dans les schémas XML (XSD) pour les éléments, attributs et types de recommandation de schéma XML W3C lui-même. (Ceci est possible car le schéma XML est lui-même XML.)Le préfixe xsi
faisant référence à l'espace de noms de l'instance de schéma http://www.w3.org/2001/XMLSchema-instance
est utilisé dans les instances de document XML pour plusieurs attributs spéciaux définis par la recommandation de schéma XML:
xsi:type
permet à une instance XML d'associer des informations de type d'élément directement plutôt que via un XSD. Voir Comment restreindre la valeur d'un élément XML en utilisant xsi: tapez XSD?
xsi:nil
permet à un élément vide d'être considéré comme valide alors que le XSD ne l'aurait pas permis autrement.
xsi:schemaLocation
et xsi:noNamespaceSchemaLocation
fournit des conseils au processeur XML sur la façon d'associer un XSD à un document XML. Utilisation xsi:schemaLocation
lorsqu'il y a un espace de noms; utilisation xsi:noNamespaceSchemaLocation
lorsqu'il n'y a pas d'espace de noms.
http://www.w3.org/2001/XMLSchema
La version simple: il s'agit de l'espace de noms utilisé dans un schéma XML (XSD). Un schéma XML est utilisé pour décrire ce qui est valide dans un document d'instance XML.
La version moins simple: il s'agit de l'espace de noms d'un schéma XML qui décrit la structure d'un schéma XML. En d'autres termes, un schéma qui se décrit.
Un schéma XML (XSD) doit être écrit à l'aide des types définis dans ce schéma.
Par exemple.
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MyElement" type="xs:string" />
</xs:schema>
http://www.w3.org/2001/XMLSchema-instance
Il s'agit d'un espace de noms utilisé dans les documents d'instance XML pour fournir des données supplémentaires à l'analyseur XML qui le traite. Il décrit les attributs xsi: schemalocation, xsi: noSchemalocation, xsi: type et xsi: nil que l'analyseur XML peut utiliser pour l'assister dans la validation.
Par exemple.
<MyElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="MySchema.xsd">
string
</MyElement>