Eventuali strumenti per generare uno schema XSD da un documento di istanza XML?[Chiuso]

StackOverflow https://stackoverflow.com/questions/74879

  •  09-06-2019
  •  | 
  •  

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.

È stato utile?

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.

Link per scaricare

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.

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

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top