it-swarm.it

Qualche strumento per generare uno schema XSD da un documento di istanza XML?

Sto cercando uno strumento che prenderà un documento di istanza XML e produca uno schema XSD corrispondente.

Riconosco certamente che lo schema XSD generato sarà limitato rispetto alla creazione manuale di uno schema (probabilmente non gestirà elementi facoltativi o ripetitivi o vincoli di dati), ma potrebbe almeno servire da punto di partenza rapido.

146
Matt Dillard

Microsoft XSD inference tool è una buona soluzione gratuita. Molti strumenti di modifica XML, come XmlSpy (menzionato da @Garth Gilmour) o OxygenXML Editor hanno anche quella funzione. Sono piuttosto costosi, però. BizTalk Server ha anche uno strumento di inferenza XSD.

modifica: ho appena scoperto la classe .net XmlSchemaInference , quindi se stai usando .net dovresti considerare che

65
Danimal

Puoi utilizzare un'opzione open source e multipiattaforma: inst2xsd da XMLBeans di Apache . Lo trovo molto utile e facile.

Basta scaricare, decomprimere e giocare (richiede Java).

54
Dario

Trang è l'opzione migliore qui. Open source e multipiattaforma (sebbene Java)

Dal sito Web di Trang:

Trang converte tra diversi linguaggi di schema per XML. Supporta le seguenti lingue

  • RELAX NG (sintassi XML)
  • RELAX NG sintassi compatta
  • DTD XML 1.0
  • Schema XML del W3C

Uno schema scritto in una qualsiasi delle lingue dello schema supportate può essere convertito in una qualsiasi delle altre lingue dello schema supportate, tranne per il fatto che lo schema XML W3C è supportato solo per l'output, non per l'input.

Trang può anche dedurre uno schema da uno o più documenti XML di esempio.

Link per il download

51
Derferman

In VS2010 se si carica un file XML nell'editor, fare clic sul menu XML >> Crea schema.

16
Nathan Donnellan

C'è anche XML schema learner che è disponibile su Github .

Può richiedere più file xml e estrarre un XSD comune da tutti quei file .

11
edorian

Se hai installato .Net, uno strumento per generare schemi e classi XSD è già incluso per impostazione predefinita.
Per me, lo strumento XSD è installato con la seguente struttura. Ciò può variare in base alla directory di installazione.

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:]

Normalmente le classi e gli schemi generati da questo strumento funzionano piuttosto bene, specialmente se li consumerai in un linguaggio .Net

In genere prendo il documento XML che sto cercando, lo spingo attraverso lo strumento XSD con il flag /o:<your path> Per generare uno schema (xsd) e quindi rimetto il file xsd indietro attraverso lo strumento usando la funzione /classes /L:VB (or CS) /o:<your path> flags per ottenere classi che posso importare e utilizzare nei miei progetti .Net quotidiani

10
Pat Hermens

Se tutto ciò che desideri è XSD, LiquidXML ha una versione gratuita che esegue gli XSD e ha una GUI per consentirti di modificare l'XSD se vuoi. Ad ogni modo al giorno d'oggi scrivo i miei XSD a mano, ma è tutto grazie a questa app.

http://www.liquid-technologies.com/

6
Robert Gould

se stai lavorando nel Java - intelliJ idea ha anche un ampio supporto xml, inclusa la generazione xsd e samle xml dalla generazione xsd, e con i plugin puoi ottenere xslt debugger - specialmente se hai intenzione di usare strumenti come jaxb in seguito.

4

Altova XmlSpy lo fa bene: puoi trovare una panoramica qui

3
Garth Gilmour

Questo è un vecchio thread ma ho pensato che potesse essere utile pubblicare questo link: ho appena trovato questo strumento: xsd-gen Genera schema XML da XML

e ha fatto proprio quello di cui avevo bisogno.

3
v_e