Messages d'assertion
Dans le Schéma XML 1.1, les assertions peuvent être définies pour des types complexes (à l'aide d'éléments xs:assert) et de types simples (à l'aide d'éléments xs:assertion).
Il est toujours utile de proposer une explication de l'assertion avec sa définition de manière à ce qu'un message approprié puisse être affiché dans le cas ou une assertion n'est pas remplie lors de la validation d'un document d'instance XML. Puisque la spécification de Schéma XML n'impose aucun message, XMLSpy permet de fournir un message dans l'espace de noms https://www.altova.com/xml-schema-extensions Altova xml-schema-extensions (ou tout autre espace de noms) avec la définition de l'assertion et de l'utiliser dans la validation du document d'instance XML. Par exemple :
<xs:assert test="count(//MyNode) ge 1" altova:message="There must be at least one MyNode element"/> or
<xs:assertion test="count(//MyNode) ge 1" altova:message="There must be at least one MyNode element"/>
Si la restriction spécifiée dans l'assertion n'est pas remplie, le moteur de validation de XMLSpy s'affichera, ainsi qu'avec le message de validation-erreur, le message associé avec l'assertion en tant qu'indice. Le validateur rapportera la valeur d'un attribut assert/@message ou d'un attribut assertion/@message quels que soient les espaces de noms dans lesquels se trouvent l'attribut message. Néanmoins, dans le Mode Schéma, vous pouvez éditer uniquement les attributs message qui se trouvent dans l'espace de noms Altova xml-schema-extension. Pour éditer les attributs message dans d'autres espaces de noms, utiliser le Mode Texte.
Éditer des messages xs:assert
Dans le Mode Schéma, les éléments xs:assert (pour les types complexes) peuvent être créés et édités dans le panneau Attributs/Assertions/Contraintes d'Identité (AAIDC) ou dans l'Assistant de saisie Détails du type complexe pertinent. La capture d'écran ci-dessous montre une assertion pour le type complexe orderType. L'assertion (un xs:assert dans ce cas) est définie dans l'onglet Assertions (de l'Aperçu de schéma) avec un message d'assertion.
Si l'option Afficher les assertions dans le diagramme a été choisie, les assertions sur des types complexes peuvent aussi être créées et éditées dans le Mode Modèle de contenu. Pour ajouter ou éditer un message d'assertion, sélectionner l'assertion et saisir le message d'assertion dans l'assistant à la saisie Détails (voir capture d'écran ci-dessous).
Veuillez noter que les messages d'assertion créés de cette manière se trouvent dans l'espace de noms Altova xml-schema-extensions https://www.altova.com/xml-schema-extensions. Lorsque vous ajoutez le premier message d'assertion dans le document de schéma XML via le panneau AACID ou l'Assistant de saisie Détails, l'espace de noms Altova xml-schema-extensions est déclaré automatiquement sur l'élément xs:schema.
Si un fichier XML est validé et que le test d'assertion n'est pas satisfaisant, le message défini pour l'assertion est affiché avec un message d'erreur (voir capture d'écran ci-dessous).
Éditer les messages xs:assertion
Dans le Mode Schéma, les éléments xs:assertion (pour les types simples) peuvent être créés et édités dans l'Assistant à la saisie Facettes du type simple pertinent. Pour éditer le message d'assertion, cliquer avec la touche de droite sur l'assertion dans l'Assistant à la saisie Facettes (voir capture d'écran ci-dessous), cliquer sur Détails dans le menu qui s'affiche et éditer le message dans la fenêtre modale des Détails d'assertion (voir capture d'écran ci-dessous). Veuillez noter que les messages d'assertion créés de cette manière se trouvent dans l'espace de noms Altova xml-schema-extensions https://www.altova.com/xml-schema-extensions. Lorsque vous ajoutez le premier message d'assertion dans le document de schéma XML par le biais de la fenêtre modale des Détails d'assertion, l'espace de noms est automatiquement déclaré dans l'élément xs:schema.
Si un fichier XML est validé et que le test d'assertion n'est pas satisfaisant, le message défini pour l'assertion s'affichera avec le message d'erreur (voir capture d'écran ci-dessous).