151 votes

Existe-t-il des outils permettant de générer un schéma XSD à partir d'un document d'instance XML ?

Je recherche un outil qui prendra un document d'instance XML et produira un schéma XSD correspondant.

Je reconnais certes que le schéma XSD généré sera limité par rapport à la création d'un schéma à la main (il ne gérera probablement pas les éléments optionnels ou répétitifs, ni les contraintes de données), mais il pourrait au moins servir de point de départ rapide.

68voto

Danimal Points 5721

Le site Outil d'inférence XSD de Microsoft est une bonne solution gratuite. De nombreux outils d'édition XML, tels que XmlSpy (mentionné par @Garth Gilmour) ou OxygenXML Editor ont également cette fonctionnalité. Ils sont cependant assez chers. BizTalk Server dispose également d'un outil d'inférence XSD.

edit : Je viens de découvrir le .net XmlSchemaInference donc si vous utilisez .net, vous devez prendre en compte cette classe.

1 votes

Ouah, des mois plus tard, vous m'avez indiqué une excellente solution pour effectuer une conversion rapide de XDR en XSD ! Merci !

6 votes

J'ai eu du mal à trouver un téléchargement pour cet outil (xsd.exe), mais il se trouvait déjà sur mon système en C:\Program Fichiers \Microsoft Visual Studio 8 \SDK\v2.0\Bin. J'ai juste pensé que je partagerais au cas où cela aiderait quelqu'un.

2 votes

Au cas où quelqu'un n'aurait pas Visual Studio installé, voici un lien alternatif pour télécharger xsd : juliankay.com/development/download-xsd-exe

60voto

Dario Points 565

Vous pouvez utiliser une option open source et multiplateforme : inst2xsd de XMLBeans d'Apache . Je le trouve très utile et facile.

Il suffit de le télécharger, de le dézipper et de jouer (il nécessite Java).

0 votes

Excellent conseil, cela m'a beaucoup aidé, merci !

3 votes

OMG C'est tellement mieux que toutes ces conneries de Powershell ! Surtout que je n'avais pas de fichier XSD !

0 votes

La version communautaire gratuite d'IntelliJ dispose également de cette fonctionnalité : jetbrains.com/idea/webhelp/

56voto

Derferman Points 504

Trang est la meilleure option ici. Source ouverte et multiplateforme (bien que Java soit requis).

Du site web de Trang :

Trang convertit entre différents langages de schéma pour XML. Il prend en charge les langages suivants

  • RELAX NG (syntaxe XML)
  • Syntaxe compacte RELAX NG
  • DTDs XML 1.0
  • Schéma XML du W3C

Un schéma écrit dans l'un des langages de schéma pris en charge peut être converti dans l'un des autres langages de schéma pris en charge, sauf que le schéma W3C XML n'est pris en charge que pour la sortie, et non pour l'entrée.

Trang peut également déduire un schéma à partir d'un ou plusieurs exemples de documents XML.

Lien de téléchargement

1 votes

Trang est aussi l'outil intégré à OxygenXML pour faire son inférence XSD à partir d'une ou plusieurs docs XMl. Au premier essai ici, cela semble bien fonctionner.

5 votes

Si tout ce dont vous avez besoin est de générer du xsd à partir d'un fichier xml, trang est le meilleur, le plus rapide et le plus facile IMHO.

3 votes

La documentation de trang est un peu mince. Pour générer un schéma, exécutez $ trang file.xml schema.xsd .

11voto

Dave Jarvis Points 12598

Des outils en ligne permettant de générer des schémas à partir de documents XML ont été développés, notamment :

Le générateur de schéma XML crée un schéma assez basique, bien organisé et facilement adaptable. Le site Flame-Ware génère un schéma encombré d'espaces de noms Microsoft. Les deux premiers n'ont pas été validés par l'outil de validation de schéma suivant :

Je n'ai pas essayé le dernier outil.

Et voici un outil permettant de vérifier si les fichiers XML sont conformes à un schéma :

Note : Le Microsoft .NET Framework v4.5, qui inclut XSD.exe s'installe sous Windows XP. Aussi, XSD.exe n'est pas indépendant de la plate-forme ; il peut ne pas fonctionner sous WINE.

11voto

Pat Points 653

Si vous avez installé .Net, un outil permettant de générer des schémas et des classes XSD est déjà inclus par défaut.
Pour moi, l'outil XSD est installé sous la structure suivante. Cela peut différer en fonction de votre répertoire d'installation.

C:\Program Files\Microsoft Visual Studio 8\VC>xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.

xsd.exe -
   Utility to generate schema or class files from given source.

xsd.exe <schema>.xsd /classes|dataset [/e:] [/l:] [/n:] [/o:] [/s] [/uri:]
xsd.exe <assembly>.dll|.exe [/outputdir:] [/type: [...]]
xsd.exe <instance>.xml [/outputdir:]
xsd.exe <schema>.xdr [/outputdir:]

Normalement, les classes et les schémas que cet outil génère fonctionnent plutôt bien, surtout si vous les utilisez dans un langage .Net.

En général, je prends le document XML que je cherche, je le passe dans l'outil XSD avec la fonction /o:<your path> pour générer un schéma (xsd) et ensuite repousser le fichier xsd dans l'outil en utilisant le drapeau /classes /L:VB (or CS) /o:<your path> drapeaux pour obtenir des classes que je peux importer et utiliser dans mes projets .Net quotidiens.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X