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.
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</用户类型> </用户> </用户列表>
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.xsdXML/HTML Code复制内容到剪贴板 <!-- 使用全局组件形式定义 --> <?xml version='1.0' encoding='utf-8'?> <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' elementFormDefault='qualified' attributeFormDefualt='unqualified'> <xs:element name='用户列表' type='userlist'/> <xs:complexType name='userlist'><!-- 使用complexType声明该类型为复合类型的元素 --> <xs:sequence><!-- 使用sequence说明下面的元素必须按顺序在XML文档中显示 --> <xs:element name='用户' type='user'/> </xs:sequence> </xs:complexType> <xs:complexType name='user'> <xs:sequence> <xs:element name='用户名' type='user'/> <xs:element name='密码' type='user'/> <xs:element name='用户类型' type='user'/> </xs:sequence> </xs:complexType> </xs:schema>
XML/HTML Code复制内容到剪贴板 <!-- 使用局部形式定义 --> <?xml version='1.0' encoding='utf-8'?> <xs:schema xmlns:xs='http://www.nishishui.org/2000/XML Schema' elementFormDefault='qualified' attributeFormDefualt='unqualified'> <xs:element name='用户列表'> <xs:complexType> <xs:sequence> <xs:element name='用户'> <xs:complexType> <xs:sequence> <xs:element name='用户名' type='xs:string'/> <xs:element name='密码' type='xs:string'/> <xs:element name='用户类型' type='xs:integer'/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
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.
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 :
.
XML/HTML Code复制内容到剪贴板 <?xml version='1.0' encoding='utf-8'?> <用户列表 xmlns:xsi=http://www.nishishui.org/2000/XMLSchema xsi:noNamespaceSchemaLocation='user.xsd'><!-- 引用user.xsd --> <用户> <用户名>我是谁</用户名> <密码>123456</密码> <用户类型>1</用户类型> </用户> </用户列表>
XML/HTML Code复制内容到剪贴板 <?xml version='1.0' encoding='utf-8'?> <xs:schema xmlns:xs='http://www.nishishui.org/2000/XML Schema' elementFormDefault='qualified' attributeFormDefualt='unqualified'> <xs:element name='age'> <xs:simpleType><!-- 使用关键字simpleType声明简单元素 --> <!--restriction关键字结合minInclusive和maxInclusive控制了XML中元素可接受的值范围为0~100--> <xs:restriction base="xs:integer"> <xs:minInclusive value='0'/> <xs:maxInclusive value='100'/> </xs:restriction> </xs:simpleType> </xs:element> </xs:schema>
(2)按照定义位置可分为局部和全局元素。
全局元素:
局部元素:局部元素声明只能出现在复杂类型(
XML/HTML Code复制内容到剪贴板 <?xml version='1.0' encoding='utf-8'?> <xs:schema xmlns:xs='http://www.nishishui.org/2000/XML Schema' elementFormDefault='qualified' attributeFormDefualt='unqualified'> <xs:element name='用户' type='user'/><!-- 全局元素 --> <xs:element name='用户名' type='xs:string'/><!-- 全局元素 --> <xs:element name='密码' type='xs:string'><!-- 全局元素 --> <xs:complexType name='user'> <!--sequence控制XML内容中元素出现的顺序--> <xs:sequence> <!-- 定义具体的元素,这些都是简单元素--> <!-- 定义局部元素,使用ref关键字引用,并使用minOccurs和maxOccurs制定元素出现的最少和最多的次数--> <xs:element ref='用户名' minOccurs='0' maxOccurs='1'/><!-- 局部元素--> <xs:element ref='密码' minOccurs='0' maxOccurs='1'/><!-- 局部元素--> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
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!