Une première implémentation de XML Schema 1.1

Le , par Erwy, Rédacteur
XML Schema 1.1 , s'il n'est pas encore une recommandation du W3C, y est candidat depuis le 30 avril 2009.
Bien que non standardisé officiellement, cela n'a pas empêché SAXONICA dans sa dernière version, 9.2, de SAXON d'en implémenter une partie .
Le point positif est que XML Schema ne connaitra donc pas le destin de ces standarts quasiment passés dans l'oubli comme XML 1.1 faute d'implémentation.
On peut aussi espérer que certains des ajouts par rapport à la version 1.0 sauront lui apporter le succès.
En effet on notera dans les ajouts :
Une bien plus grande utilisation de Xpath (1.0 et 2.0) et de leur fonction
ASSERT qui permet de définir les valeurs d'élément ou d'attributs par rapport à d'autre
Code : Sélectionner tout
1
2
3
4
5
<xs:complexType name="intRange"> 
 <xs:attribute name="min" type="xs:int"/> 
 <xs:attribute name="max" type="xs:int"/> 
 <xs:assert test="@min le @max"/> 
</xs:complexType>
ALTERNATIVE qui permet de décider un type en fonction de la valeur d'un élément ou d'un attribut
Code : Sélectionner tout
1
2
3
4
<xs:element name="Publication" type="PublicationType"> 
     <xs:alternative test="@type eq 'book'" type="Livre" /> 
     <xs:alternative test="@type eq 'magazine'" type="Magazine" /> 
</xs:element>
Des ajouts qui résolvent bien des problèmes de validation posés sur les forums XML de developpez.com.

Lire aussi :

A quoi sert XML-Schema ?

La rubrique XML/XSL et SOAP (actu, forum, tutos) de Développez

Et vous ? :

Pensez-vous XML Schema 1.1 va s'imposer et remplacer 1.0 ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de souviron34 souviron34 - Expert éminent sénior https://www.developpez.com
le 09/10/2009 à 14:35
moi, tout ceci me fait plus penser à l'invention d'un nouveau langage (lourd et contraignant) qu'à autre chose.

C'est ce que je reproche le plus à XML...

Car maintenant il faut environ un bouquin de 500 pages pour s'y retrouver, alors que c'était censé faciliter les choses...
Avatar de mrjay42 mrjay42 - Membre habitué https://www.developpez.com
le 09/10/2009 à 15:34
Déjà on a XSL, un langage DE BALISES qui effectue des TRAITEMENTS, qui est basé sur un langage tiers pour les requêtes : à savoir xPath. Langage de requête qui ne ressemble à rien de connu...

Et puis y'a xQuery, un autre langage de requêtes qui s'appuie en partie sur xPath et en partie sur une structure type requête SQL

Et puis y'a XML Schéma, super dense, super précis, mais aussi super verbeux, a tel point qu'il est inutilisable/illisible sans un interpréteur qui permet un affichage sous forme de schéma graphique...genre celui dispo dans Visual Studio

En même temps y'a eu RelaxNG avec une syntaxe encore différente, qui propose notamment une écriture simplifiée, qui ne ressemble ni à une DTD ni à un XML Schema

J'avais oublié les DTD
Aaaah les DTD, une nouvelle syntaxe pour définir des structures de documents balisés...Une syntaxe qui ne ressemble à rien de connu, notez bien

Et maintenant on nous sort une nouvelle version de XML Schéma ?
Avec des structures conditionnelles ? Si machin = truc alors mon élément change de nature ? Oh bah bien sur que je vais l'utiliser
Ca va encore être super claire...Et puis, alors à représenter dans une version graphique du Schema, ça va être super beau.

Voila c'était mon coup de gueule du vendredi sur la "galaxie XML"
Avatar de Erwy Erwy - Rédacteur https://www.developpez.com
le 09/10/2009 à 15:40
Citation Envoyé par mrjay42  Voir le message
à savoir xPath. Langage de requête qui ne ressemble à rien de connu...

Je viens de prends un coup de vieux là

Parce si on prend les principaux axes de xpath.

c'est
/ je me mets sur la racine
/truc je descend sur le niveau truc
.. Je remonte d'un niveau

J'ai connu ça sous MS DOS et son système de répertoire

Ca doit être une question de generation
J'avais oublié les DTD

La par contre même moi je n'ai pas connu l'avénement des DTD vu que cela n'a pas été inventé pour le XML mais pour le SGML et l'informatique n'était pas ma priorité à cette époque
Avatar de mrjay42 mrjay42 - Membre habitué https://www.developpez.com
le 09/10/2009 à 16:07
Nonon ce n'est pas à cette partie "jolie" de xPath que je faisais allusion.

Mais plutôt à predeceding, predeceding-sibling etc...des commandes pour choper des frères, des neveux, des arrières grands oncles du noeuds sur lequel tu es positionné.

J'avais oublié un autre truc épique :
Les inégalités mathématiques "<" ">" en XSL...ce sont des caractère spéciaux
On se retrouve donc en train d'écrire des trucs du genre :
"count(bidule) < 5"
On est obligé d'écrire en "entitté HTML" le symbole "<" pour que la comparaison passe, sinon votre XSL bug salement ^^

Et puis ce n'est pas une question de génération...en tout cas pas entre nous deux, puisque moi aussi j'ai commencé avec le DOS ^^
Avatar de GrandFather GrandFather - Expert éminent https://www.developpez.com
le 12/10/2009 à 14:44
Je suis mitigé quant à la pertinence de ces ajouts, surtout sur celui concernant l'ajout d'un langage de prédicat (assertions et alternatives). Ce qu'on demande avant tout à WXS (W3C XML Schema) est une validation structurelle, le fait que « @min soit inférieur ou égal à @max » est une règle de gestion qui est plus du ressort de l'application consommatrice du document XML.

Du fait de sa complexité, la spécification WXS est implémentée dans assez peu de parseurs ; l'ajout de ce langage de contrainte ne va pas aider à les multiplier...

Citation Envoyé par mrjay42  Voir le message
Mais plutôt à predeceding, predeceding-sibling etc...des commandes pour choper des frères, des neveux, des arrières grands oncles du noeuds sur lequel tu es positionné.

Et bien il te suffit de voir une expression XPath comme un banquet de famille, et c'est tout de suite plus simple.

Personnellement, je comparerais XPath aux expressions régulières : déroutant au début, mais qui rembourse ensuite au centuple l'investissement consenti pour son apprentissage.

@souviron : le XML utilisé comme format d'échange reste simplissime ; rien ne t'oblige à utiliser les technologies connexes que sont XPath, XSLT, XML Schema, XQuery, etc. mais si tu as des traitements complexes à faire sur des documents XML, ils restent bien plus simples et léger à mettre en oeuvre que toute autre solution développée dans un langage « généraliste ».
Offres d'emploi IT
Business analyst / project manager / IT front office h/f
AMONTECH - Ile de France - LA DEFENSE
Program manager
Microsoft Engineering Center - Ile de France - Issy-les-Moulineaux (92130)
Concepteur / développeur projet .net
Arsenal - Nord Pas-de-Calais - Marcq-en-Baroeul (59700)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil