Pour l'instant, utilisons "Notepad" pour créer notre fichier XML. Regardons d'abord un fichier XML :
Exemple 1
〈?xml version="1.0" encoding="gb2312" ?〉
〈Références〉
<livres>
〈Nom〉Introduction à XML 〈/Nom〉
〈Auteur〉Zhang San〈/Auteur〉
〈Unité monétaire du prix = "RMB"〉20,00〈/prix〉
</livres>
<livres>
<name>Syntaxe XML </name>
〈!--Ce livre sera bientôt publié--〉
〈Auteur〉Li Si〈/Auteur〉
〈Unité monétaire du prix = "RMB"〉18,00〈/prix〉
</livres>
〈/Matériaux de référence〉
Il s'agit d'un fichier XML typique après édition, il est enregistré sous forme de fichier avec le suffixe .xml. Nous pouvons diviser ce fichier en deux parties principales : le préambule du fichier (Prolog) et le corps du fichier. La première ligne de ce fichier est le préambule du fichier. Cette ligne est quelque chose qu'un fichier XML doit déclarer, et elle doit également être située sur la première ligne du fichier XML. Elle indique principalement à l'analyseur XML comment fonctionner. Parmi eux, la version est le numéro de version standard utilisé par ce fichier XML, qui est obligatoire ; le codage spécifie le type de caractère utilisé dans ce fichier XML, qui peut être omis. Lorsque vous omettez cette instruction, le code de caractère suivant doit être un code de caractère Unicode. (il est recommandé de ne pas l'omettre). Étant donné que nous utilisons le code de caractères GB2312 dans cet exemple, l'instruction de codage ne peut pas être omise. Il y a également quelques déclarations dans le préambule du dossier, que nous présenterons plus tard.
Le reste du fichier appartient au corps du fichier, où les informations sur le contenu du fichier XML sont stockées. Nous pouvons voir que le corps principal du fichier est composé des balises de contrôle de début <reference> et de fin </reference>. C'est ce qu'on appelle « l'élément racine » du fichier XML. <book> est « l'élément racine » ; directement sous l'élément racine « Sous-élément » ; sous « Livre » se trouvent des sous-éléments tels que « Nom », « Auteur » et « Prix ». L'unité monétaire est un « attribut » dans l'élément <price> et « RMB » est la « valeur de l'attribut ».
〈!--Ce livre sera bientôt publié--〉 est un commentaire tout comme le HTML. Dans un fichier XML, la partie commentaire est placée entre les balises "〈!--" et "--〉".
Comme vous pouvez le constater, le fichier XML est assez simple. Comme HTML, les fichiers XML sont également composés d'une série de balises. Cependant, les balises des fichiers XML sont nos propres balises personnalisées et ont des significations claires. Nous pouvons expliquer la signification du contenu des balises.
Après avoir eu une première impression des fichiers XML, parlons en détail de la syntaxe des fichiers XML. Avant de parler de grammaire, nous devons comprendre un concept important, qui est XML Parse.
1. Analyseur XML
La fonction principale de l'analyseur est de vérifier s'il existe des erreurs structurelles dans le fichier XML, de supprimer les balises dans le fichier XML et de lire le contenu correct pour le traitement par le programme d'application suivant. XML est un langage de balisage utilisé pour structurer les informations sur les fichiers. La spécification XML contient des règles détaillées sur la façon de marquer la structure des fichiers. L'analyseur est un logiciel écrit selon ces règles (principalement écrit en Java). Tout comme HTML, dans le navigateur, il doit y avoir un analyseur HTML pour que le navigateur puisse « lire » diverses pages Web composées de balises HTML et les afficher devant nous. S'il existe des balises que l'analyseur HTML du navigateur ne peut pas lire, un message d'erreur nous sera renvoyé.
Étant donné que les balises HTML actuelles sont en fait assez déroutantes et qu'il existe de nombreuses balises non standard (certaines pages Web peuvent être affichées normalement avec IE, mais pas avec Netscape Navigator), les concepteurs de XML ont strictement stipulé la syntaxe de XML à partir du Dès le début et la structure, les fichiers XML que nous écrivons doivent être conformes à ces réglementations, sinon l'analyseur XML vous affichera des messages d'erreur sans pitié.
Il existe deux types de fichiers XML, l'un est un fichier XML bien formé et l'autre est un fichier XML de validation.
Si un fichier XML satisfait à certaines règles pertinentes de la spécification XML et n'utilise pas de DTD (définition du format de document - détails plus loin), le document peut être appelé Well-Formed. Et si un fichier XML est bien formé, que la DTD est utilisée correctement et que la syntaxe de la DTD est correcte, alors le fichier est en cours de validation. Correspondant aux deux fichiers XML, il existe deux analyseurs XML, l'un est l'analyseur Well-Formed et l'autre est l'analyseur Validating. IE 5 inclut un analyseur de validation, qui peut également être utilisé pour analyser des fichiers XML bien formés.
Vérifiez s’il répond aux conditions de bien formé. Nous pouvons ouvrir le premier fichier XML que nous venons de modifier avec un navigateur IE 5 ou supérieur.
Vous vous demandez peut-être pourquoi l'affichage dans le navigateur est le même que celui de mon fichier source ? C'est vrai, car pour les fichiers XML, on ne connaît que le contenu, et sa forme d'affichage est complétée par CSS ou XSL. Ici, nous n'avons pas défini son fichier CSS ou XSL pour ce fichier XML, il est donc affiché sous sa forme originale. En fait, pour l'échange électronique de données, seul un fichier XML est nécessaire. Si nous voulons l'afficher sous une forme quelconque, nous devons éditer le fichier CSS ou XSL (cette question sera abordée plus tard).
2. Fichier XML bien formé
Nous savons que le XML doit être bien formé pour être correctement analysé par l'analyseur et affiché dans le navigateur. Alors, qu’est-ce qu’un fichier XML bien formé ? Il existe principalement les directives suivantes, qui doivent être respectées lorsque nous créons des fichiers XML.
Tout d'abord, la première ligne d'un fichier XML doit déclarer que le fichier est un fichier XML et la version de spécification XML qu'il utilise. Il ne peut y avoir d'autres éléments ou commentaires devant le fichier.
Deuxièmement, il ne peut y avoir qu'un seul élément racine dans un fichier XML. Dans notre premier exemple, 〈Références〉... 〈/Références〉 est l'élément racine de ce fichier XML.
Troisièmement, les balises du fichier XML doivent être fermées correctement, c'est-à-dire que les balises de contrôle du fichier XML doivent avoir une balise de fermeture correspondante. Par exemple : la balise <name> doit avoir une balise de fermeture </name> correspondante. Contrairement au HTML, la balise de fermeture de certaines balises est facultative. Si vous rencontrez une balise d'unité autonome dans un fichier XML, qui est similaire à <img src=.....> en HTML sans balise de fin, XML l'appelle un "élément vide" et vous devez utiliser la méthode d'écriture. est : 〈nom d'élément vide/〉 Si l'élément contient des attributs, la méthode d'écriture est : 〈nom d'élément vide nom d'attribut = "valeur d'attribut"/〉.
Quatrièmement, les marques ne doivent pas se croiser. Dans les fichiers HTML précédents, vous pouviez écrire comme ceci :
〈B〉〈H〉XXXXXXX〈/B〉〈/H〉,
il y a des zones qui se chevauchent entre les balises 〈B〉 et 〈H〉, mais en XML, c'est strictement décalé. l'écriture de telles marques est interdite. Les marques doivent apparaître dans un ordre régulier.
Cinquièmement, les valeurs d'attribut doivent être entourées de signes " ". Tels que "1.0", "gb2312", "RMB" dans le premier exemple. Ils sont tous entourés de " " et ne peuvent être manqués.
Sixièmement, les balises de contrôle, les instructions et les noms d'attributs en anglais doivent être sensibles à la casse. Contrairement au HTML, en HTML, les balises comme <B> et <b> ont la même signification, tandis qu'en XML, les balises comme <name>, <NAME> ou <Name> sont différentes.
Septièmement, nous savons que dans les fichiers HTML, si nous voulons que le navigateur affiche intacts les éléments que nous saisissons, nous pouvons mettre ces éléments dans 〈pre〉〈/pre〉 ou 〈xmp〉〈/xmp〉 Marquez le milieu. Ceci est essentiel pour nous de créer des pages Web pédagogiques HTML, car le code source du HTML doit être affiché dans la page Web. En XML, pour réaliser une telle fonction, des balises CDATA doivent être utilisées. Les informations contenues dans la balise CDATA sont transmises intactes à l'application par l'analyseur, et les balises de contrôle du segment d'informations ne sont pas analysées. La zone CDATA est marquée par : "<![CDATA[" comme marque de début et ">>" comme marque de fin. Par exemple : dans le code source de l'exemple 2, à l'exception des symboles "<![CDATA[" et ">>", le reste de l'analyseur de contenu sera transmis intact à l'application en aval, même s'il y a des espaces en le début et la fin de la zone CDATA et les caractères de nouvelle ligne, etc., seront également transférés (notez que CDATA est un caractère majuscule).
Exemple 2
〈![CDATA[flying xml〉〉〉〉〉,:-)
ooo〈〈〈〈〈〈
>〉
Huitièmement, XML gère les caractères d'espacement différemment de HTML. La norme HTML stipule que quel que soit le nombre de blancs, ils seront traités comme un seul blanc ; tandis qu'en XML, il est stipulé que l'analyseur doit remettre fidèlement tous les blancs autres que les balises aux applications en aval pour traitement. De cette façon, nous devons parfois abandonner l'habitude de l'indentation lors de l'écriture de fichiers HTML, car l'analyseur doit également traiter les espaces indentés. Tel que :
〈Auteur〉Zhang San〈/Auteur〉
et 〈auteur〉
Zhang San 〈/Auteur〉
est différent pour l'analyseur (ce dernier inclut en plus du caractère Zhang San dans la balise 〈Auteur〉〈/Auteur〉, il comprend également deux marques de nouvelle ligne et les caractères avant "Zhang San " symboles d'indentation de texte). Par conséquent, l'analyseur obtiendra des résultats de traitement différents après avoir supprimé la marque et transmis les informations à l'application.
Si nous voulons indiquer clairement au programme XML que les espaces dans les balises ont une signification claire et ne doivent pas être supprimés par hasard (par exemple, dans certains poèmes, les espaces ont des significations spécifiques), nous pouvons ajouter un attribut XML intégré - xml - aux balises. :space . Par exemple (notez le cas des noms et valeurs d'attribut) :
〈poetry xml:space="preserver"〉
Patrie! patrie!
Ma patrie !
〈/Poésie〉
De plus, dans le fichier XML, si les caractères spéciaux du tableau 1 doivent être utilisés, ils doivent être remplacés par les symboles correspondants.
Tableau 1
Symboles de remplacement de caractères spéciaux && &
<⁢
>>
" "
' '
Pour faire un résumé ici : le fichier XML qui répond aux exigences ci-dessus est le fichier XML bien formé. Il s’agit de la condition la plus élémentaire pour écrire des fichiers XML. Vous pouvez constater que la syntaxe des fichiers XML est beaucoup plus stricte que celle du HTML. En raison de réglementations aussi strictes, il est beaucoup plus facile pour les ingénieurs logiciels d'écrire des analyseurs XML. Contrairement à l'écriture d'analyseurs pour le langage HTML, ils doivent travailler dur pour s'adapter aux différentes méthodes d'écriture de pages Web et améliorer l'adaptabilité de leurs propres navigateurs. En fait, c’est aussi une bonne chose pour nous, débutants. Faites simplement ce que vous voulez et n'avez pas à vous soucier de la façon d'écrire divers HTML comme avant.
On voit que dans les fichiers XML, la plupart des balises personnalisées sont utilisées. Mais réfléchissez-y, si deux entreprises A et B du même secteur souhaitent échanger des données à l'aide de fichiers XML, l'entreprise A utilise la balise <price> pour représenter les informations sur les prix de leurs produits, tandis que l'entreprise B peut utiliser <selling. price> pour représenter les informations sur le prix. Si une application XML lit les informations dans leurs fichiers XML respectifs, si elle sait seulement que la balise <price> représente des informations sur les prix, alors les informations sur les prix de la société B ne peuvent pas être lues et une erreur se produit. Évidemment, pour les entités qui souhaitent utiliser des fichiers XML pour échanger des informations, il doit y avoir un accord entre elles - c'est-à-dire quelles balises peuvent être utilisées pour écrire des fichiers XML, quels sous-éléments peuvent être inclus dans l'élément parent, l'ordre dans lequel chaque élément apparaît, et comment définir les propriétés, etc. De cette façon, ils peuvent avoir une communication fluide lors de l’échange de données avec XML. Cette convention est appelée DTD (Document Type Definition, définition du format de document). Vous pouvez considérer une DTD comme un modèle pour écrire des fichiers XML. Pour l'échange de données XML entre une même industrie, il sera beaucoup plus pratique d'avoir une DTD fixe. Par exemple, si les pages Web XML des principaux centres commerciaux électroniques sur Internet suivent toutes la même DTD, nous pouvons alors facilement écrire une application basée sur cette DTD pour capturer automatiquement les éléments qui nous intéressent en ligne. En fait, il existe déjà plusieurs DTD bien définies, telles que MathML, SMIL, etc. mentionnées précédemment.
Si un fichier XML est bien formé et qu'il est correctement créé sur la base d'une DTD, alors le fichier XML s'appelle : Validation du fichier XML. L'analyseur correspondant s'appelle : Validating Parser.