Maison > développement back-end > Tutoriel XML/RSS > Introduction détaillée au code Schema en XML (image)

Introduction détaillée au code Schema en XML (image)

黄舟
Libérer: 2017-03-10 19:19:22
original
1657 Les gens l'ont consulté

XML possède la fonctionnalité Schema, qui peut introduire la structure des éléments de manière plus puissante que la DTD. Expliquons en détail le concept, la fonction et l'utilisation du schéma en XML. Les amis dans le besoin peuvent se référer à la définition du document

. Le modèle fournit des spécifications pour les documents XML.Bien que l'introduction de la DTD résolve le problème de normalisation des documents XML, son type de format de fichier n'est pas cohérent avec le type de format de fichier XML. Dans le même temps, les types de données fournis par DTD sont limités et ne peuvent parfois pas être respectés. les besoins de l’industrie, c’est pourquoi il est introduit Schema. Le mode Schéma peut déterminer la structure des éléments et des attributs d'un document XML, l'ordre des éléments, les valeurs des données des éléments et des attributs, en fonction des plages, des énumérations et de la correspondance de style.
Introduction détaillée au code Schema en XML (image)

1. Première introduction au schéma

Le langage XML Schema est également appelé XML Schema Definition (XSD). Sa fonction est de définir un A. groupe de composants juridiques d'un document XML (la structure d'un document XML), tout comme une DTD. XML Schema est basé sur le langage XML. On peut également dire que XML Schema lui-même est une application de XML.

1. Le rôle du schéma

Le schéma XML et la DTD ont le même rôle. Ils sont tous deux utilisés pour définir la structure d'un document XML. Alors pourquoi. besoin d'avoir une DTD ? Qu'en est-il du schéma XML ? Parce que XML Schema est plus puissant que DTD.

Les avantages du schéma Xml par rapport à la DTD :
(1) Le schéma est extensible
(2) Le schéma est plus riche et plus utile que la DTD
(3) Le schéma utilise du XML écrit
(4) Le schéma prend en charge les types de données
(5) Le schéma prend en charge l'espace de noms
(6) Pas besoin d'apprendre d'autres langages
(7) L'éditeur XML peut être utilisé directement pour écrire un schéma XML
(8) L'analyseur XML peut être utilisé directement pour analyser le schéma XML
(9) XML DOM peut être utilisé pour exploiter de manière flexible le schéma XML
(10) La technologie XSLT peut être utilisée pour convertir le schéma XML

2. Apprentissage comparé

1.1 Fonctionnellement

sont les mêmes, les deux sont des modèles qui définissent la structure d'un document XML.

1.2 Utilisation

Les deux ont la même fonction, mais il existe quelques différences de syntaxe. Schema est une extension de DTD. Il prend également en charge la définition d'éléments et d'attributs, et la syntaxe de définition est similaire. Cependant, Schema peut ajouter des types de données correspondants aux éléments et attributs. addition, selon les éléments et attributs Le contenu des données introduit des types simples et des types complexes.
Les types dits simples (SimpleType) et les types complexes (ComplexType) ne sont pas eux-mêmes des types de données spécifiques. Ce sont simplement des descriptions abstraites des types de nœuds ou des types personnalisés.

En d'autres termes, l'introduction de Schema rend la déclaration des modèles plus similaire au langage de programmation que nous utilisons.

2. Explication détaillée des exemples

2.1 Exemples de schéma

Listing 1 : Structure du document User.xml

XML/HTML Code复制内容到剪贴板
<?xml version="1.0"?>
<用户列表>
    <用户>
         <用户名>xx</用户名>
         <密码>123456</密码>
         <用户类型>1</用户类型>
   </用户>
</用户列表>
Copier après la connexion


Listing 2 : Utiliser global formulaire de composant Pour définir le schéma, utilisateur 🎜>

Listing 3 : Définir le schéma en utilisant la forme partielle, User.xsd
XML/HTML Code复制内容到剪贴板
<!-- 使用全局组件形式定义 -->
<?xml version=&#39;1.0&#39; encoding=&#39;utf-8&#39;?>
<xs:schema xmlns:xs=&#39;http://www.w3.org/2001/XMLSchema&#39; elementFormDefault=&#39;qualified&#39; attributeFormDefualt=&#39;unqualified&#39;>
 <xs:element name=&#39;用户列表&#39; type=&#39;userlist&#39;/>
 <xs:complexType name=&#39;userlist&#39;><!-- 使用complexType声明该类型为复合类型的元素 -->
  <xs:sequence><!-- 使用sequence说明下面的元素必须按顺序在XML文档中显示 -->
   <xs:element name=&#39;用户&#39; type=&#39;user&#39;/>
  </xs:sequence>
 </xs:complexType>
 <xs:complexType name=&#39;user&#39;>
  <xs:sequence>
   <xs:element name=&#39;用户名&#39; type=&#39;user&#39;/>
   <xs:element name=&#39;密码&#39; type=&#39;user&#39;/>
   <xs:element name=&#39;用户类型&#39; type=&#39;user&#39;/>
  </xs:sequence>
 </xs:complexType>
</xs:schema>
Copier après la connexion


Le listing 2 et le listing 3 définissent l'utilisateur, le listing 2 utilise la définition formelle des composants globaux, tandis que le listing 3 utilise la définition locale. définition formelle. Veuillez voir ci-dessous pour les différences spécifiques.
XML/HTML Code复制内容到剪贴板
<!-- 使用局部形式定义 -->
<?xml version=&#39;1.0&#39; encoding=&#39;utf-8&#39;?>
<xs:schema xmlns:xs=&#39;http://www.nishishui.org/2000/XML Schema&#39; elementFormDefault=&#39;qualified&#39; attributeFormDefualt=&#39;unqualified&#39;>
 <xs:element name=&#39;用户列表&#39;>
  <xs:complexType>
   <xs:sequence>
    <xs:element name=&#39;用户&#39;>
     <xs:complexType>
      <xs:sequence>
       <xs:element name=&#39;用户名&#39; type=&#39;xs:string&#39;/>
       <xs:element name=&#39;密码&#39; type=&#39;xs:string&#39;/>
       <xs:element name=&#39;用户类型&#39; type=&#39;xs:integer&#39;/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>
Copier après la connexion

  • 2.2 Utilisation de base

    Dans ce qui précède, nous avons effectué une analyse comparative de Schema et DTD en termes de fonction et d'utilisation. La plus grande différence entre Schema et DTD. La DTD signifie que les types de données de schéma sont introduits, et d'autres éléments, tels que la déclaration des éléments et des attributs, sont similaires à la DTD et ne seront pas discutés en détail ci-dessous.

  • Carte du contenu de base du schéma :

2.2.1 Syntaxe de référence

Une fois qu'un fichier de schéma est créé, vous pouvez l'utiliser pour vérifier la validité d'un document XML, c'est-à-dire vérifier si un document XML suit la définition du fichier schéma. Alors, comment un document XML fait-il référence à un document de schéma ?

La référence du modèle Schema est plus similaire à la méthode d'application de l'espace de noms mentionnée ci-dessus. Les exemples spécifiques sont les suivants :

.
Introduction détaillée au code Schema en XML (image)



XML/HTML Code复制内容到剪贴板
<?xml version=&#39;1.0&#39; encoding=&#39;utf-8&#39;?>
<用户列表 xmlns:xsi=http://www.nishishui.org/2000/XMLSchema xsi:noNamespaceSchemaLocation=&#39;user.xsd&#39;><!-- 引用user.xsd -->
 <用户>
  <用户名>我是谁</用户名>
  <密码>123456</密码>
  <用户类型>1</用户类型>
 </用户>
</用户列表>
Copier après la connexion
2.2.2 Type d'élément

    (1) Divisé en éléments simples et complexes selon différents contenus, utilisez respectivement les marqueurs simpleType et complexType.
  • Élément simple : le contenu de l'élément ne peut être que du texte et ne contient pas d'autres éléments et attributs.




Éléments complexes : L'élément contient d'autres éléments et attributs. Il existe quatre types, à savoir les éléments vides, contenant uniquement d'autres éléments, contenant uniquement du texte et contenant du texte et d'autres éléments.
XML/HTML Code复制内容到剪贴板
<?xml version=&#39;1.0&#39; encoding=&#39;utf-8&#39;?>
<xs:schema xmlns:xs=&#39;http://www.nishishui.org/2000/XML Schema&#39; elementFormDefault=&#39;qualified&#39; attributeFormDefualt=&#39;unqualified&#39;>
    <xs:element name=&#39;age&#39;>
        <xs:simpleType><!-- 使用关键字simpleType声明简单元素 -->
            <!--restriction关键字结合minInclusive和maxInclusive控制了XML中元素可接受的值范围为0~100-->
            <xs:restriction base="xs:integer">
                <xs:minInclusive value=&#39;0&#39;/>
                <xs:maxInclusive value=&#39;100&#39;/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
</xs:schema>
Copier après la connexion


(2)按照定义位置可分为局部和全局元素。
全局元素:元素的父元素必须是
局部元素:局部元素声明只能出现在复杂类型(元素)定义内部。即元素的父元素只能是元素。

XML/HTML Code复制内容到剪贴板
<?xml version=&#39;1.0&#39; encoding=&#39;utf-8&#39;?>
<xs:schema xmlns:xs=&#39;http://www.nishishui.org/2000/XML Schema&#39; elementFormDefault=&#39;qualified&#39; attributeFormDefualt=&#39;unqualified&#39;>
    <xs:element name=&#39;用户&#39; type=&#39;user&#39;/><!-- 全局元素 -->
    <xs:element name=&#39;用户名&#39; type=&#39;xs:string&#39;/><!-- 全局元素 -->
    <xs:element name=&#39;密码&#39; type=&#39;xs:string&#39;><!-- 全局元素 -->
        <xs:complexType name=&#39;user&#39;>
            <!--sequence控制XML内容中元素出现的顺序-->
            <xs:sequence>
                <!-- 定义具体的元素,这些都是简单元素-->
                <!-- 定义局部元素,使用ref关键字引用,并使用minOccurs和maxOccurs制定元素出现的最少和最多的次数-->
                <xs:element ref=&#39;用户名&#39; minOccurs=&#39;0&#39; maxOccurs=&#39;1&#39;/><!-- 局部元素-->
                <xs:element ref=&#39;密码&#39; minOccurs=&#39;0&#39; maxOccurs=&#39;1&#39;/><!-- 局部元素-->
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
Copier après la connexion


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!

Étiquettes associées:
xml
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal