Maison  >  Article  >  développement back-end  >  Introduction détaillée aux exemples de code XML DTD et XML Schema (image et texte)

Introduction détaillée aux exemples de code XML DTD et XML Schema (image et texte)

黄舟
黄舟original
2017-03-22 16:55:421298parcourir

 XML(eXtensible Markup Language) langage de balisage extensible. XML est particulièrement important dans la programmation de services Web. Il peut être utilisé comme support pour transmettre des données en transmission réseau. En tant que métalangage, XML peut être utilisé pour marquer des données et définir des types de données. C'est un métalangage qui permet aux utilisateurs de définir leur propre langage de balisage. Il est parfaitement adapté au transport réseau, offrant une approche unifiée pour décrire et échanger des données structurées indépendamment des applications ou des fournisseurs. L'interaction entre des langages hétérogènes et des plateformes hétérogènes peut être réalisée. Les méthodes de définition de documents XML incluent : la définition de type de document (DTD) et le schéma XML. DTD (Document Type Definition) définit la structure globale du document et la syntaxe du document (il existe des exemples correspondants ci-dessous pour la compréhension). Elle est largement utilisée et dispose d'un riche support d'outils. Le schéma XML est plus puissant et est utilisé pour définir des fonctionnalités plus puissantes et plus riches telles que les informations de gestion. XML peut déclarer le contenu de manière plus fine, définir des contraintes et faciliter une transmission plus significative du contenu sur plusieurs plates-formes. Il fournit un format pour décrire les données structurées, simplifie l'échange et la représentation des données dans le réseau, sépare le code, les données et la représentation et sert de format standard pour l'échange de données. Il est donc souvent appelé document de données intelligent. DTD peut être comparé à une pelle, tandis que XML Schema peut être considéré comme une excavatrice, qui est plus puissante. Bien que XML soit appelé langage de balisage, il diffère du HTML (Hypertext Markup Language) dans la mesure où son format est plus strict, les balises doivent être fermées et l'affichage et le contenu sont séparés. XML décrit le contenu et la sémantique du document plutôt que la manière dont il est utilisé. Le document doit être affiché. HTML a des balises fixes, et l'affichage et le contenu sont ensemble, et vous ne pouvez pas créer vos propres balises. Cependant, XML est extensible, et chaque élément apparaît par paires, et le début et la fin des éléments XML sont incorporés. . La relation d'imbrication doit rester correcte (les balises qui commencent plus tard dans l'imbrication doivent se terminer en premier et les balises qui commencent en premier doivent se terminer en dernier). Il n'y a qu'un seul élément racine (Root Element) dans chaque document XML, et la racine. L'élément contient tous les autres éléments. Un document XML conforme à la syntaxe XML est dit bien formé lorsqu'il n'est pas vérifié par DTD ou XML Schema. Si un document XML bien formé est vérifié par DTD ou XML Schema, ce type de document XML est appelé valide. (Valide) de.

Ce qui suit utilise le XML d'une liste d'étudiants comme exemple

<?xml version="1.0" encoding="utf-8"?>
<学生名册>
    <学生 学号="A1">
        <姓名>CIACs</姓名>
        <性别>男</性别>
        <年龄>22</年龄>
    </学生>

    <学生 学号="A2">
        <姓名>zhihao</姓名>
        <性别>男</性别>
        <年龄>23</年龄>
    </学生>
</学生名册>

Un document XML bien formaté, la fenêtre de sortie de XMLSpy affichera les résultats suivants

La première ligne de XML doit être dc55d8f1b8d0d15e8e0c4fca7640a4b5 instructions de traitement, et il ne peut y avoir aucun espace vide entre "< ;?xml", xml L'élément est strictement sensible à la casse , le format d'encodage du document est par défaut "UTF-8", et la version n'est que 1.0. Le document XML ci-dessus ne peut être considéré que comme un document XML bien formaté, et non comme un document XML valide (Vaild). Ci-dessous, nous utilisons deux méthodes pour le vérifier.

Vérifiez-le d'abord via DTD

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 学生名册 [
<!ELEMENT 学生名册 (学生+)>
<!ELEMENT 学生 (名字,性别,年龄)>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 性别 (#PCDATA)>
<!ELEMENT 年龄 (#PCDATA)>
<!ATTLIST 学生 学号 ID #REQUIRED>
<!ENTITY  sex "男">
]>

<学生名册>
    <学生 学号="A1">
        <名字>CIACs</名字>
        <性别>&sex;</性别>
        <年龄>22</年龄>
    </学生>
    
    <学生 学号="A2">
        <名字>zhihao</名字>
        <性别>&sex;</性别>
        <年龄>23</年龄>
    </学生>
</学生名册>

Si la vérification réussit, la fenêtre de sortie XMLSpy affichera les résultats suivants

Sinon , même s'il y a un espace supplémentaire, il ne passera pas la vérification. Ici, j'écris la vérification DTD en XML. Bien sûr, vous pouvez également l'écrire dans un autre fichier. Le suffixe du fichier est ".dtd", puis l'associer au document XML à vérifier. 🎜>

1 a2e846a3ba5966e7efee51e13323437c

La valeur d'identification ici semble commencer par un caractère. S'il ne s'agit que d'un numéro, elle ne passera pas la vérification.

Le genre dans les informations sur l'étudiant, je le définis comme une entité, puis je référence

sa valeur via l'entité . Veuillez noter que la syntaxe de la référence de l'entité est "&nom de l'entité ; ". Ce qui suit est utilisé pour vérifier la méthode du schéma XML

Le document XML à vérifier

Document de vérification du schéma XML
<?xml version="1.0" encoding="utf-8"?>
<学生名册 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="学生名册.xsd">
    <学生 学号="A1">
        <姓名>CIACs</姓名>
        <性别>男</性别>
        <年龄>22</年龄>
    </学生>

    <学生 学号="A2">
        <姓名>zhihao</姓名>
        <性别>男</性别>
        <年龄>23</年龄>
    </学生>
</学生名册>

Fenêtre de sortie XMLSpy Résultats de sortie
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="学生名册">
        <xs:complexType>
            <xs:sequence minOccurs="1" maxOccurs="unbounded">
                <xs:element ref="学生"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="学生">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="姓名" type="xs:string"/>
                <xs:element name="性别">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="男"/>
                            <xs:enumeration value="女"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="年龄">
                    <xs:simpleType>
                        <xs:restriction base="xs:integer">
                            <xs:minExclusive value="0"/>
                            <xs:maxExclusive value="120"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="学号" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
</xs:schema>

Le document XML à vérifier est associé au document XML Schema

en ajoutant les informations suivantes à la balise de début de l'élément racine

Les documents ci-dessus sont tous placés dans le même chemin, il suffit donc de citer directement le nom du fichier.
 1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="学生名册.xsd"


À partir des deux méthodes de vérification ci-dessus, nous pouvons clairement voir la différence entre la vérification DTD et XML Schema. Les deux vérifient également les documents XML et fournissent des fonctionnalités plus puissantes que DTD. >des types de données plus fins

, et Schema peut également personnaliser les types de données. Il s'agit d'un fichier XML lui-même, mais la syntaxe de dtd est différente de la syntaxe de XML. Bien que Schema soit plus grand que DTD en termes de taille de code, une fois que vous aurez appris Schema, vous préférerez utiliser Schema.

Bien apprendre XML et ses méthodes de vérification est très important pour apprendre plus tard la programmation de services Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn