Insérer
Passer avec la souris sur ou sélectionner la commande Insérer pour faire défiler un sous-menu contenant trois commandes (décrit ci-dessous ) :
•Insérer le fichier externe encodé
Insérer le chemin de fichier
La commande Chemin de fichier est activée dans le Mode Texte et le Mode Grille des documents de tout type de fichier. Grâce à elle, vous pouvez insérer le chemin vers un fichier au niveau de la sélection du curseur. Cliquez sur la commande pour ouvrir un dialogue (capture d'écran ci-dessous) dans lequel vous pouvez sélectionner le fichier requis.
Le fichier requis peut être sélectionné en choisissant une des méthodes suivantes : (i) en parcourant le fichier, l’URL ou la ressource globale (utiliser la touche Parcourir) ; (ii) en choisissant la fenêtre dans laquelle le fichier est ouvert (la touche Fenêtre). Une fois terminé, cliquez sur OK. Le chemin vers le fichier sélectionné sera inséré dans le document actif au niveau de la sélection du curseur.
Insérer XInclude
La commande XInclude est disponible dans le Mode Texte et le Mode Grille et vous permet d’insérer un nouvel élément XInclude au point de sélection du curseur dans le Mode Texte ou avant l’item sélectionné dans les deux Modes Texte et Grille. Si dans le Mode Grille la sélection actuelle est un attribut, l’élément XInclude est inséré après l’attribut et avant le premier élément enfant de l’élément parent de l’attribut. Choisir cette commande pour ouvrir le dialogue XInclude (capture d'écran ci-dessous).
Le fichier XML à inclure est saisi dans le champ de texte href (en alternative, vous pouvez chercher le fichier en cliquant sur la touche Chercher (...) située à droite du champ de saisie). Le nom de fichier sera saisi dans le document XML en tant que la valeur de l'attribut href. Les attributs parse, xpointer et encoding de l'élément XInclude (xi:include) et l'élément enfant fallback de xi:include peuvent aussi être insérés par le biais du dialogue. Veuillez tout d'abord cocher la case appropriée puis sélectionner/saisir les valeurs requises. Dans le cas de l'élément fallback, le fait de cocher sa case insère uniquement l'élément vide. Le contenu de l'élément fallback doit être ajouté ultérieurement dans un des modes d'édition.
L'attribut parse détermine si le document inclus doit être parsé en tant que XML ou texte. (XML est la valeur par défaut et ne doit donc pas être spécifiée.) L'attribut xpointer identifie un fragment spécifique du document situé avec l'attribut href ; c'est ce fragment qui sera inclus. L'attribut encoding spécifie l'encodage du document inclus de manière à ce que XMLSpy puisse transcoder ce document (ou la partie devant être incluse) dans l'encodage du document incluant. Les contenus de l'élément enfant fallback remplacent l'élément xi:include si le document à inclure ne peut pas être situé.
Voici un exemple d'un document XML qui utilise XInclude pour inclure deux documents XML :
<?xml version="1.0" encoding="UTF-16"?>
<AddressBook xsi:schemaLocation="https://www.altova.com/sv/myaddresses AddressBook.xsd"
xmlns="https://www.altova.com/stylevision/tutorials/myaddresses"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="BusinessAddressBook.xml"/>
<xi:include href="PersonalAddressBook.xml"/>
</AddressBook>
Lorsque ce document XML est parsé, il remplacera les deux éléments XInclude avec les fichiers spécifiés dans les attributs href respectifs.
xml:base
Lorsque le validateur XML de XMLSpy lit un document XML et rencontre l'élément include dans l'espace de noms XInclude (dénommé ci-après xi:include), il remplace cet élément (xi:include) avec le document XML nommé dans l'attribut href de l'élément xi:include. L'élément de document (élément racine) du document XML inclus (ou de l'élément identifié par un XPointer) sera inclus avec un attribut de xml:base pour pouvoir préserver les URI de base de l'élément inclus. Si le document XML résultant (contenant le document XML inclus ou le fragment d'arborescence) doit être valide conformément à un schéma, alors l'élément de document du document inclus (ou l'élément de niveau supérieur du fragment d'arborescence) doit être créé avec un modèle de contenu qui permettra un attribut de xml:base. Si, conformément au schéma, l'attribut xml:base n'est pas autorisé sur cet élément, le document résultant sera invalide. Vous trouverez dans la section Attributs xml:Prefixed de la section Mode Schéma de la documentation une description pour définir un attribut xml:base dans un modèle de contenu d'un élément à l'aide du Mode de Schéma de XMLSpy .
XPointers
XMLSpy prend en charge les XPointers dans XInclude. Les recommandations W3C pertinentes sont les recommandations XPointer Framework et système XPointer element(). L'utilisation d'un XPointer dans un élément XInclude permet d'inclure une partie spécifique du document XML, au lieu de devoir inclure le document XML entier. Les XPointers sont utilisés dans un élément XInclude comme suit :
<xi:include href="PersonalAddressBook.xml" xpointer="element(usa)"/>
<xi:include href="BusinessAddressBook.xml" xpointer="element(/1/1)"/>
<xi:include href="BobsAddressBook.xml" xpointer="element(usa/3/1)"/>
<xi:include href="PatsAddressBook.xml" xpointer="element(usa)element(/1/1)"/>
Dans le système element() de XPointer, il est possible d'utiliser un NCName ou une séquence enfant dirigée par des entiers.
•Dans le premier élément xi:include nommé ci-dessus, l'attribut xpointer utilise le système d'élément avec un NCName de usa. Conformément au XPointer Framework, cet NCName identifie l’élément qui a une ID de usa.
•Dans le second xi:include listé ci-dessus, l'attribut xpointer avec une valeur de element(/1/1) identifie, dans une première étape, le premier élément enfant de la racine de document (qui, si le document est bien formé, sera son élément de document (ou de racine)). Dans une seconde étape, le premier élément enfant de l'élément situé dans l'étape précédente est situé ; dans notre exemple, il s'agit du premier élément enfant de l'élément de document.
•L'attribut xpointer du troisième xi:include listé ci-dessus utilise une combinaison de NCName et de la séquence enfant. Ce XPointer localise le premier élément enfant du troisième élément enfant ayant une ID de usa.
•Si vous n'êtes pas sûr si votre premier XPointer fonctionnera, vous pouvez le compléter avec un second, comme montré dans le quatrième xi:include listé ci-dessus : xpointer="element(usa)element(/1/1)"". Ici, s'il n'y a aucun élément avec une ID de usa, le XPointer de réserve spécifie que le premier élément enfant de l'élément de document doit être sélectionné. Des réserves supplémentaires sont autorisées. Des XPointers individuels peuvent ne pas être séparés ou ils peuvent être séparés par un espace blanc : par exemple, xpointer="element(usa)element(addresses/1) element(/1/1)".
Note : | Le contexte liant d'espace de noms n'est pas utilisé dans le système element() parce que celui-ci ne prend pas en charge les noms qualifiés. |
Insérer le fichier externe encodé
La commande Fichier externe encodé est disponible dans le Mode Texte et le Mode Grille. Elle vous permet d'inclure un fichier externe en tant que texte encodé en Base-16 ou Base-64 à tout endroit dans le document XML. Cette fonction permet d'intégrer les fichiers externes dans le document XML. Cette fonction permet aux fichiers externes d’être incorporés dans le document XML.
Cliquer sur la commande Insérer | Fichier externe encodé ouvre le dialogue Insérer le fichier externe encodé (capture d’écran ci-dessous).
Vous pouvez chercher ou saisir le nom du fichier externe à encoder et à intégrer. Spécifiez un encodage Base-16 ou Base-64. Si vous souhaitez ajouter le texte encodé dans un élément, cochez la case Créer élément et spécifiez le nom de l'élément désiré (voir la capture d’écran ci-dessus). En alternative, sélectionnez Créer texte pour insérer le texte encodé directement à l’emplacement du curseur.
Cliquez sur OK pour insérer le texte encodé du fichier sélectionné au niveau du curseur, avec un élément contenant si cela a été précisé.
<img ext="png" encoding="xs:base64Binary">
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/
//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U
g9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC
</img>
La liste ci-dessus montre le texte encodé d'un fichier d'image PNG. Un élément img a été créé autour du texte encodé.