Alguma ferramenta para gerar um esquema XSD a partir de um documento de instância XML?[fechado]

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

  •  09-06-2019
  •  | 
  •  

Pergunta

Estou procurando uma ferramenta que pegue um documento de instância XML e produza um esquema XSD correspondente.

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

Foi útil?

Solução

o Ferramenta de inferência Microsoft XSD é uma solução boa e gratuita.Muitas ferramentas de edição de XML, como XmlSpy (mencionado por @Garth Gilmour) ou 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.

editar:Acabei de descobrir o .net XmlSchemaInferência class, então se você estiver usando .net você deve considerar isso

Outras dicas

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

Basta baixar, descompactar e jogar (requer Java).

Trang é a melhor opção aqui.Código aberto e plataforma cruzada (embora Java seja necessário)

Do site da Trang:

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

  • RELAX NG (sintaxe XML)
  • Sintaxe compacta RELAX NG
  • 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 W3C é suportado apenas para saída, não para entrada.

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

Link para Download

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

Também há XML schema learner que está disponível em GitHub.

Pode levar vários arquivos xml e extraia um XSD comum de todos esses arquivos.

Se você tiver o .Net instalado, uma ferramenta para gerar esquemas e classes XSD já está incluída por padrão.
Para mim, a ferramenta XSD está instalada na seguinte estrutura.Isso pode variar 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 esquemas que esta ferramenta gera funcionam muito bem, especialmente se você for consumi-los em uma linguagem .Net

Normalmente, pego o documento XML que procuro e o envio por meio da ferramenta XSD com o /o:<your path> sinalizador para gerar um esquema (xsd) e, em seguida, enviar o arquivo xsd de volta pela ferramenta usando o /classes /L:VB (or CS) /o:<your path> flags para obter classes que posso importar e usar em meus projetos .Net do dia a dia

Se tudo o que você deseja é XSD, o LiquidXML tem uma versão gratuita que faz XSDs e possui uma GUI para que você possa ajustar o XSD, se desejar.De qualquer forma, hoje em dia escrevo meus próprios XSDs à mão, mas tudo graças a este aplicativo.

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

se você estiver trabalhando no mundo java - ideia inteligente também possui amplo suporte a xml, incluindo geração xsd e samle xml da geração xsd, e com plug-ins você pode obter depuradores xslt.- especialmente interessante se você planeja usar ferramentas como o jaxb posteriormente.

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

Este é um tópico antigo, mas pensei que poderia ser útil postar este link:acabei de encontrar esta ferramenta:xsd-gen Gerar esquema XML a partir de XML

e simplesmente fez o que eu precisava.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top