Maison  >  Article  >  développement back-end  >  Explication détaillée du code graphique et texte complet du schéma XML

Explication détaillée du code graphique et texte complet du schéma XML

黄舟
黄舟original
2017-03-28 16:55:332364parcourir

Résumé du contenu : XML Schema, comme DTD, est chargé de définir et de décrire la structure et le schéma de contenu des documents XML. Il peut définir quels éléments et relations entre les éléments existent dans le document XML, et peut définir le type de données des éléments et les attributs.

Qu'est-ce que le schéma XML

Le schéma XML, comme la DTD, est chargé de définir et de décrire la structure et le schéma de contenu des documents XML. Il peut définir quels éléments et relations entre les éléments existent dans le document XML, ainsi que les types de données des éléments et des attributs.

Le schéma XML lui-même est un document XML conforme à la structure syntaxique XML. Il peut être analysé avec un analyseur XML commun.

Pourquoi utiliser Schema

Nous avons déjà utilisé DTD pour définir une structure XML et un type de données, alors pourquoi avons-nous besoin de Schema ?

Parce que DTD présente de nombreux défauts :

1) La DTD est basée sur une expression régulière et a une capacité de description limitée

2) La DTD ne prend pas en charge les types de données et est insuffisante dans la plupart des environnements d'application

3) La capacité de définition des contraintes de la DTD est insuffisante pour effectuer des restrictions sémantiques plus détaillées sur les documents d'instance XML

4) La structure de la DTD n'est pas suffisamment structurée et ne peut pas être réutilisée. Le coût ; est relativement élevé ;

5) La DTD n'utilise pas XML comme méthode de description, et il n'existe pas de programmation interface standard pour la construction et l'accès à la DTD, et les normes ne peuvent pas être utilisées Effectuer la maintenance DTD par programmation.

XML Schema est conçu pour combler les lacunes de ces DTD. Les avantages de XML Schema sont :

1) XML Schema est basé sur XML et n'a pas de syntaxe particulière

2) XML peut être analysé et traité comme les autres fichiers XML

3) XML Schema prend en charge une série de types de données (int, float, boolean, date, etc.)

4) XML Schema fournit un modèle de données extensible.

5) XML Schema prend en charge un espace de noms complet

6) XML Schema prend en charge les groupes d'attributs.

Un simple document de schéma XML

Explication détaillée du code graphique et texte complet du schéma XML

Un élément est défini dans ce schéma : quantité, son type est nonNegativeInteger (entier non négatif), xmlns C'est l'espace de noms de Schema, qui a été décrit dans la partie 3 ci-dessus.

Le fragment XML suivant est légal :

<quantity>5</quantity>

Le fragment XML suivant est illégal :

<quantity>-4</quantiy>

Les types dans le schéma

Le schéma comprend principalement trois composants : élément, attribut et notation.

Ces trois composants de base peuvent également être combinés dans les composants suivants :

a) Composants de définition de type : types simples et types composites

b) Composants d'assemblage

c) Composant d'attribut

Type simple

Explication détaillée du code graphique et texte complet du schéma XML

Le schéma XML définit certains types de données intégrés qui peuvent être utilisés pour décrire le contenu des éléments et les valeurs d'attribut.

Si un élément ne contient que des nombres, des chaînes ou d'autres données, mais n'inclut pas de sous-éléments, on l'appelle un type simple.

Comme le montre la figure, la quantité d'éléments est un type simple. Le contenu de son élément doit être un entier non négatif, excluant tout attribut et sous-élément.

<quantity>some</quantity>

Tous les types simples intégrés

Types primitifs

string,boolean,decimal,float,double,duration
datetime,time,date,gYearMonth,gYear,gMonthDay,
dDay,gMonth,hexBinary,base64Binary,any URI,QName
NOTATION

Types dérivés (types de base entre parenthèses)

normalizedString(string),language(tonken),token(normalizedString)
NMTOKEN(token),Name(token),NCName(Name),ID(NCName),IDREF(NCName)
IDREFS(list of IDREF),ENTITY(NCName),ENTITIES(list of ENTITY)
integer(decimal),nonPositiveInteger(integer),
negativeInteger(noPositiveInteger),long(integer),int(long),
short(int),byte(short),nonNegativeInteger(integer)
unsignedLong(nonNegativeInteger),unsignedInt(unsignedLong),
unsignedShort(unsignedInt),unsignedByte(unsignedShort),
positiveInteger(nonNegativeInteger)

Créer un type simple

Explication détaillée du code graphique et texte complet du schéma XML

Dans la figure, on crée d'abord un type simple :QuantityType, qui hérite de integer, et minInclusive et maxInclusive le définissent Le minimum la valeur est 2 et la valeur maximale est 5. Enfin, nous définissons le type de quantité d’élément commeQuantityType.

正确:  <quantity>3</quantity>
错误:  <quantity>10</quantity>
<qauntity>aaa</quantity>

Grâce à la restriction, nous pouvons limiter l'acceptation de certaines valeurs ou textes,

基本方面:equal,ordered,bounded,cardinality,numeric
限制方面:length,minLength,maxLength
pattern,enumeration
whiteSpace
maxInclusive,maxExclusive,minInclusive,minExclusive
totalDigits,fractionDigits

Exemple de type simple 1

Explication détaillée du code graphique et texte complet du schéma XML

La valeur de ce type de SKU : 3 chiffres suivis d'un trait d'union puis suivis de deux lettres anglaises majuscules.

le motif est suivi d'une expression régulière. Voir d'autres livres pour la syntaxe des expressions régulières.

正确:  <ourSKU>123-AB</ourSKU>
错误:  <ourSKU>abc-AB</ourSKU>
<ourSKU>123-ab</ourSKU>

Exemple de type simple 2

Explication détaillée du code graphique et texte complet du schéma XML

Il s'agit d'un type USState utilisé pour décrire les noms des États américains. Tous les noms d'État sont répertoriés par énumération. , lors de la prise de la valeur, seuls les noms d'état qui y sont répertoriés peuvent être pris.

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