Notions de base de la référence à un schéma xsd à partir d'un autre schéma
Nous écrivons un nouveau schéma xsd qui sera en fonction d'une référence et d'un autre schéma (qui est une industrie de la norme de facto pour les données GPS appelé GPX). Notre schéma sera utilisé dans la validation des documents générés par nos clients, et dans les tests. J'ai besoin de mieux comprendre comment la référence au schéma de base de notre nouveau schéma, d'autant plus que nos systèmes ne peuvent pas s'attendre à disposer d'une connexion Internet.
Ma compréhension est que les références à des documents xsd à un autre serveur sont généralement là pour qu'un développeur peut récupérer le document en cours de développement, mais pendant le fonctionnement du système de validation en temps, on serait sage d'avoir une copie locale d'un schéma puisqu'il ne serait pas prudent de s'accrocher à la production tout simplement parce que le serveur distant a été inaccessible. Est-ce correct?
Alors si c'est le cas, ne xsd attendre de moi, à la fois référence à la distance de la base de schéma xsd, mais aussi le nom et l'emplacement de certains local copie du schéma? Ou est cette référence ne sont pas nécessaires dans mon nouveau fichier de schéma? L'espoir qui fait sens. Merci.
OriginalL'auteur bethesdaboys | 2011-11-19
Vous devez vous connecter pour publier un commentaire.
Pour faire référence à un autre schéma, il s'agit d'une convention d'avoir le schéma local de la "main" schéma que vous référant à partir. Par exemple, pour importer un schéma qui définit certains ré-utilisable types:
Fondamentalement c'est dire qu'il existe un schéma appelé CommonTypes.xsd qui se trouve dans le même répertoire que mon principal schéma. Le
schemaLocation
attribut est utilisé comme un chemin d'accès relatif à la réelle fichier de schéma de mon référencement schéma (NOTE: Il est également complètement optionnel - voir ma note au bas de cette réponse).Pour utiliser les types à l'intérieur de CommonTypes.xsd, j'ai d'abord ajouter les types les plus courants de l'espace de noms dans ma principale de schéma de déclaration:
C'est de dire que je veux faire les types de mon schéma commun disponibles dans mon principal schéma en utilisant le préfixe d'espace de noms "communs".
Alors, par exemple, pour faire référence à une "Adresse" type commun:
Cela me dit que mon adresse de livraison type est en fait le même type que AddressType défini dans la commune de types de schéma.
Remarque: schemaLocation peut également être utilisé avec d'URI, dans l'absolu ou les chemins d'accès UNC, ou pas du tout parce que c'est un tout attribut facultatif. Si vous n'utilisez pas schemaLocation votre analyseur sera plus susceptible de scanner les répertoires locaux à la recherche d'un schéma avec le bon espace de noms défini, mais cela dépend de la mise en œuvre.
schemaLocation
n'est rien de plus qu'une option soupçon quant à l'emplacement du schéma avec l'espace de nom. Le processeur est libre de l'ignorer comme il l'entend.Il est donc fondé sur la convention plutôt qu'une stricte définition? Je l'ai vu faire de cette façon beaucoup de fois avant, et avoir moi-même fait cette.
Certaines implémentations peuvent être plus strictes que d'autres, mais le Schéma XML spécification dit c'est très facultatif.
Avoir mis à jour ma réponse à réfléchir. Sentez-vous svp libre pour éditer plus loin.
OriginalL'auteur tom redfern