Eventuali strumenti per generare uno schema XSD da un documento di istanza XML?[Chiuso]
Domanda
Sto cercando uno strumento che prenda un documento di istanza XML e generi uno schema XSD corrispondente.
Riconosco certamente che lo schema XSD generato sarà limitato rispetto alla creazione manuale di uno schema (probabilmente non gestirà elementi opzionali o ripetuti o vincoli di dati), ma potrebbe almeno servire come punto di partenza rapido.
Soluzione
IL Strumento di inferenza XSD di Microsoft è una buona soluzione gratuita.Anche molti strumenti di modifica XML, come XmlSpy (menzionato da @Garth Gilmour) o OxygenXML Editor hanno questa funzionalità.Sono piuttosto costosi, però.BizTalk Server dispone anche di uno strumento di inferenza XSD.
modificare:Ho appena scoperto il dominio .net XmlSchemaInference class, quindi se stai usando .net dovresti considerarlo
Altri suggerimenti
Puoi utilizzare un'opzione open source e multipiattaforma:inst2xsd da XMLBean di Apache.Lo trovo molto utile e facile.
Basta scaricare, decomprimere e giocare (richiede Java).
Trang è l'opzione migliore qui.Open source e multipiattaforma (sebbene sia richiesto 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 uno qualsiasi dei linguaggi di schema supportati può essere convertito in uno qualsiasi degli altri linguaggi di schema supportati, ad eccezione dello schema XML W3C che è supportato solo per l'output, non per l'input.
Trang può anche dedurre uno schema da uno o più documenti XML di esempio.
In VS2010 se carichi un file XML nell'editor, fai clic sul menu XML >> Crea schema.
C'è anche XML schema learner
che è disponibile su Github.
Può durare più file xml E estrai un XSD comune da tutti quei file.
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ò potrebbe variare a seconda della 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, soprattutto se li utilizzerai in un linguaggio .Net
In genere prendo il documento XML che cerco e lo inserisco attraverso lo strumento XSD con il file /o:<your path>
flag per generare uno schema (xsd) e quindi reinserire il file xsd attraverso lo strumento utilizzando il file /classes /L:VB (or CS) /o:<your path>
flag per ottenere classi che posso importare e utilizzare nei miei progetti .Net quotidiani
Se tutto ciò che desideri è XSD, LiquidXML ha una versione gratuita che esegue XSD e ha una GUI in modo da poter modificare XSD se lo desideri.Comunque oggigiorno scrivo i miei XSD a mano, ma è tutto grazie a questa app.
se lavori nel mondo Java - idea intelligente ha anche un ampio supporto xml, inclusa la generazione xsd e un campione xml dalla generazione xsd, e con i plugin puoi ottenere debugger xslt.- particolarmente utile se prevedi di utilizzare successivamente strumenti come jaxb.
Altova XmlSpy lo fa bene: puoi trovare una panoramica Qui
Questa è una vecchia discussione ma ho pensato che potesse essere utile postare questo link:ho appena trovato questo strumento:xsd-gen Genera schema XML da XML
e ha fatto proprio quello di cui avevo bisogno.