it-swarm-pt.tech

Quaisquer ferramentas para gerar um esquema XSD de um documento de instância XML?

Eu estou procurando uma ferramenta que terá um documento de instância XML e saída de um esquema XSD correspondente.

Eu certamente reconheço que o esquema XSD gerado será limitado quando comparado à criação manual de um esquema (provavelmente ele não manipulará elementos opcionais ou repetidos, ou restrições de dados), mas poderia pelo menos servir como um ponto de partida rápido.

145
Matt Dillard

o ferramenta de inferência Microsoft XSD é uma solução boa e gratuita. Muitas ferramentas de edição de XML, como o XmlSpy (mencionado por @Garth Gilmour) ou o OxygenXML Editor também possuem esse recurso. Eles são bastante caros, no entanto. O BizTalk Server também possui uma ferramenta de inferência XSD.

edit: Acabei de descobrir a classe .net XmlSchemaInference , então se você estiver usando .net você deve considerar

65
Danimal

Você pode usar uma opção de código aberto e plataforma cruzada: inst2xsd de XMLBeans do Apache . Eu acho muito útil e fácil.

Basta baixar, descompactar e reproduzir (requer Java).

54
Dario

Trang é a melhor opção aqui. Open source e cross platform (embora Java seja obrigatório)

Do site Trang:

Trang converte entre diferentes linguagens de esquema para XML. Suporta os seguintes idiomas

  • RELAX NG (sintaxe XML)
  • RELAX NG sintaxe compacta
  • DTDs XML 1.0
  • Esquema XML W3C

Um esquema escrito em qualquer uma das linguagens de esquema suportadas pode ser convertido em qualquer uma das outras linguagens de esquema suportadas, exceto que o Esquema XML do W3C é suportado somente para saída, não para entrada.

Trang também pode inferir um esquema de um ou mais documentos XML de exemplo

Link para Download

51
Derferman

No VS2010, se você carregar um arquivo XML no editor, clique no menu XML >> Criar Esquema.

15
Nathan Donnellan

Há também XML schema learner que está disponível em Github .

Ele pode pegar vários arquivos xml e extrair um XSD comum de todos esses arquivos .

11
edorian

Se você tiver o .Net instalado, uma ferramenta para gerar esquemas e classes XSD já estará incluída por padrão.
Para mim, a ferramenta XSD é instalada na estrutura a seguir. Isso pode diferir dependendo do seu diretório de instalação.

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, as classes e os esquemas gerados por essa ferramenta funcionam muito bem, especialmente se você estiver consumindo-os em uma linguagem .Net

Eu normalmente peguei o documento XML que estou procurando, passei pela ferramenta XSD com o sinalizador /o:<your path> para gerar um esquema (xsd) e depois empurrei o arquivo xsd de volta através da ferramenta usando os sinalizadores /classes /L:VB (or CS) /o:<your path> para obter classes que eu possa importar e uso no meu dia a dia .Projetos da Net

10
Pat Hermens

Se tudo que você quer é XSD, LiquidXML tem uma versão gratuita que faz XSDs, e tem uma interface gráfica para que você possa Tweak the XSD, se quiser. De qualquer forma hoje eu escrevo meus próprios XSDs manualmente, mas é tudo graças a este aplicativo.

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

6
Robert Gould

se você estiver trabalhando no Java world - intelliJ idea também tem extenso suporte xml, incluindo xsd generation e samle xml da geração xsd, e com plugins você pode obter depuradores xslt. - especialmente Nice, se você planeja usar ferramentas como jaxb depois.

4
Andreas Petersson

Altova XmlSpy faz isso bem - você pode encontrar uma visão geral aqui

3
Garth Gilmour

Este é um segmento antigo, mas eu pensei que poderia ser útil para postar este link: acabou de encontrar esta ferramenta: xsd-gen Gerar XML Schema de XML

e acabou de fazer o que eu precisava.

3
v_e