Alguma ferramenta para gerar um esquema XSD a partir de um documento de instância XML? [fechado]
Estou à procura de uma ferramenta que irá pegar num documento de instância XML e enviar um esquema XSD correspondente.
Eu certamente reconheço que o esquema XSD gerado será limitado quando comparado com a criação de um esquema à mão (provavelmente não irá lidar com elementos opcionais ou repetitivos, ou restrições de dados), mas poderia pelo menos servir como um ponto de partida rápido.
10 answers
A Ferramenta de inferência XSD da Microsoft é uma boa solução livre. Muitas ferramentas de edição de XML, como o XmlSpy (mencionado por @Garth Gilmour) ou o editor Oxigenxml também têm esse recurso. Mas são bastante caros. O servidor BizTalk também tem uma ferramenta de inferring XSD.
Editar: acabei de descobrir a classe. net XmlSchemaInference , por isso, se estiver a usar a. net, deve considerar que
Poderá usar uma opção open source e cross-platform:inst2xsd de Apache XMLBeans . Acho-o muito útil e fácil.
Basta baixar, abrir e jogar (necessita de Java).
Trang é a melhor opção aqui. Open source and cross platform (although Java is required)
Do Sítio Web da Trang:
Trang converte entre diferentes linguagens de esquema para XML. Ele suporta as seguintes línguas
- relaxa NG (sintaxe XML)
- relaxa a sintaxe compacta
- XML 1. 0 DTDs
- W3C XML Schema
Um esquema escrito em qualquer um dos esquemas suportados pode ser convertido em qualquer uma das outras linguagens de esquema suportadas, exceto que W3C XML Schema é suportado apenas para saída, não para entrada.
Trang também pode inferir um esquema a partir de um ou mais documentos XML exemplo.
Em VS2010 se carregar um ficheiro XML no editor, carregue no menu XML >> criar um esquema.
Também há XML schema learner
que está disponível em Github .
Pode levar vários ficheiros xml e extrair um XSD comum de todos esses ficheiros .
Se tiver o. Net instalado, uma ferramenta para gerar esquemas e classes do XSD já está incluída por omissão.
Para mim, a ferramenta XSD está instalada sob a seguinte estrutura. Isso pode diferir dependendo do 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 bastante bem, especialmente se você vai consumi-los em uma linguagem. Net
Eu normalmente pego no documento XML que procuro, empurro-o através da ferramenta XSD com a opção/o:<your path>
para gerar um esquema (xsd) e, em seguida, empurrar o ficheiro xsd de volta através da ferramenta, usando as opções /classes /L:VB (or CS) /o:<your path>
para obter classes que posso importar e usar no meu dia-a-dia. Net projects
Se tudo o que você quer é XSD, o LiquidXML tem uma versão gratuita que faz XSDs, e tem uma interface gráfica para que você possa ajustar o XSD se quiser. De qualquer forma hoje em dia eu escrevo meu próprio XSDs à mão, mas é tudo graças a este aplicativo.
Se estiver a trabalhar no java world - o intelij idea também tem um suporte extensivo em xml, incluindo a geração xsd e o samle xml da geração xsd, e com os 'plugins' poderá obter os depuradores xslt. - especialmente bom se você planeja usar ferramentas como jaxb depois.
Altova XmlSpy Faz isto bem - você pode encontrar uma visão geral Aqui
Este é um tópico antigo, mas eu pensei que poderia ser útil para postar este link: apenas encontrei esta ferramenta: xsd-gen gerar esquema XML a partir de XML
E fez o que eu precisava.