SUR CETTE PAGE
Vue d’ensemble de XML
XML (Extensible Markup Language ) est un langage permettant de définir un ensemble de marqueurs, appelés balises, qui sont appliqués à un ensemble de données ou à un document pour décrire la fonction d’éléments individuels et codifier les relations hiérarchiques entre eux. Les balises XML ressemblent beaucoup aux balises HTML (Hypertext Markup Language), mais XML est en fait un métalangage utilisé pour définir les balises qui conviennent le mieux au type de données marquées.
Pour plus d’informations sur XML, reportez-vous à A Technical Introduction to XML at http://www.xml.com/pub/a/98/10/guide0.html et aux documents de référence supplémentaires sur le site http://www.xml.com . La spécification XML officielle du World Wide Web Consortium (W3C), Extensible Markup Language (XML) 1.0, est disponible à l’adresse http://www.w3.org/TR/REC-xml.
Les sections suivantes traitent des aspects généraux de XML :
Eléments de balise
XML a trois types de balises : les balises d’ouverture, les balises de fermeture et les balises vides. Les noms de balises XML sont entourés d’angles et sont sensibles à la casse. Les éléments d’un document ou d’un jeu de données compatible XML sont toujours entourés de balises d’ouverture et de fermeture appariées, et les balises doivent être correctement imbriquées. C’est-à-dire que vous devez fermer les balises dans le même ordre que celui dans lequel vous les avez ouvertes. XML est plus strict à cet égard que le HTML, qui n’utilise parfois que des balises d’ouverture. Les exemples suivants montrent des balises d’ouverture et de fermeture appariées entourant une valeur. Les balises de fermeture sont indiquées par la barre oblique au début du nom de la balise.
<interface-state>enabled</interface-state> <input-bytes>25378</input-bytes>
Le terme balise fait référence à un ensemble en trois parties : la balise d’ouverture, la balise de contenu et la balise de fermeture. Le contenu peut être une chaîne de caractères alphanumériques comme dans les exemples précédents, ou peut lui-même être un élément de balise conteneur, qui contient d’autres éléments de balise. Pour simplifier, le terme tag est souvent utilisé de manière interchangeable avec tag element ou element.
Si un élément de balise est vide, c’est-à-dire qu’il n’a pas de contenu, il peut être représenté soit sous la forme de balises d’ouverture et de fermeture appariées, sans rien entre elles, soit sous la forme d’une seule balise avec une barre oblique après le nom de la balise. Par exemple, la notation <snmp-trap-flag/>
est équivalente à <snmp-trap-flag></snmp-trap-flag>
.
Comme le montrent les exemples précédents, les chevrons entourent le nom de l’élément de balise. Il s’agit d’une convention XML, et les crochets sont une partie obligatoire du nom complet de l’élément de balise. Elles ne doivent pas être confondues avec les chevrons utilisés dans la documentation Juniper Networks pour indiquer les parties facultatives des chaînes de commande CLI de Junos OS.
Les éléments de balise XML Junos obéissent à la convention XML selon laquelle le nom de l’élément de balise indique le type d’informations qu’ils renferment. Par exemple, le nom de l’élément de balise XML <interface-state>
Junos indique qu’il contient une description de l’état actuel d’une interface sur le périphérique, tandis que le nom de l’élément<input-bytes>
de balise indique que son contenu spécifie le nombre d’octets reçus.
Lors de la discussion d’éléments de balise dans le texte, cette documentation utilise conventionnellement uniquement la balise d’ouverture pour représenter l’élément de balise complet (balise d’ouverture, contenu et balise de fermeture). Par exemple, la documentation fait référence à la <input-bytes>
balise pour indiquer l’ensemble <input-bytes>number-of-bytes</input-bytes>
de l’élément de balise.
Attributs
Les éléments XML peuvent contenir des propriétés associées sous la forme d’attributs, qui spécifient des informations supplémentaires sur un élément. Les attributs apparaissent dans la balise d’ouverture d’un élément et se composent d’une paire nom d’attribut et valeur. La syntaxe d’attribut se compose du nom de l’attribut suivi d’un signe égal, puis de la valeur de l’attribut entre guillemets. Un élément XML peut avoir plusieurs attributs. Plusieurs attributs sont séparés par des espaces et peuvent apparaître dans n’importe quel ordre.
Dans l’exemple suivant, l’élément configuration
possède deux attributs, junos:changed-seconds
et junos:changed-localtime
.
<configuration junos:changed-seconds="1279908006" junos:changed-localtime="2010-07-23 11:00:06 PDT">
La valeur de l’attribut junos:changed-seconds
est « 1279908006 », et la valeur de l’attribut junos:changed-localtime
est « 2010-07-23 11 :00 :06 PDT ».
Namespaces
Les espaces de noms permettent à un document XML de contenir les mêmes noms de balises, d’attributs ou de fonctions à des fins différentes et évitent les conflits de noms. Par exemple, de nombreux espaces de noms peuvent définir une fonction, et chacun d’entre eux peut présenter une print
fonctionnalité différente. Pour utiliser la fonctionnalité définie dans un espace de noms spécifique, vous devez associer cette fonction à l’espace de noms qui définit la fonctionnalité souhaitée.
Pour faire référence à une balise, un attribut ou une fonction à partir d’un espace de noms défini, vous devez d’abord fournir l’URI (Uniform Resource Identifier ) de l’espace de noms dans la déclaration de votre feuille de style. Vous qualifiez ensuite une balise, un attribut ou une fonction de l’espace de noms à l’aide de l’URI. Étant donné qu’un URI est souvent long, un préfixe plus court est généralement mappé à l’URI.
Dans l’exemple suivant, le jcs
préfixe est mappé à l’espace de noms identifié par l’URI http://xml.juniper.net/junos/commit-scripts/1.0
, qui définit les fonctions d’extension utilisées dans les scripts de validation, d’opération, d’événement et SNMP. Le jcs
préfixe est ensuite ajouté à la output
fonction, qui est définie dans cet espace de noms.
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> ... <xsl:value-of select="jcs:output('The VPN is up.')"/> </xsl: stylesheet>
Pendant le traitement, le préfixe est développé dans la référence d’URI. Bien qu’il puisse y avoir plusieurs espaces de noms qui définissent un élément ou une output
fonction, l’utilisation de définit jcs:output
explicitement quelle output
fonction est utilisée. Vous pouvez choisir n’importe quel préfixe pour faire référence au contenu d’un espace de noms, mais il doit y avoir une déclaration existante dans le document XML qui lie le préfixe à l’URI associé.
Définition du type de document
Un document ou un jeu de données balisé XML est structuré, car un ensemble de règles spécifie l’ordre et les interrelations des éléments qu’il contient. Les règles définissent les contextes dans lesquels chaque élément balisé peut (et dans certains cas) doit se produire. Un fichier appelé définition de type de document, ou DTD, répertorie tous les éléments de balise qui peuvent apparaître dans le document ou l’ensemble de données, définit les relations parent-enfant entre les balises et spécifie d’autres caractéristiques de balise. La même DTD peut s’appliquer à de nombreux documents ou ensembles de données XML.