pressione ⌘K para trocar de ferramenta
FORMAT & CONVERT

Gerador XML → XSD

Gera definições de esquema XSD a partir de XML.

local
xml-xsd

A best-effort schema inferred from one sample. Types default to xs:string.

§01 SOBRE ESTA FERRAMENTA

Visão geral

Cole um documento XML e receba um XSD (XML Schema Definition) como ponto de partida. O gerador percorre a árvore de elementos, cria um xs:complexType por nome de elemento, lista os elementos filhos em um xs:sequence, declara os atributos como xs:string e marca com maxOccurs="unbounded" os filhos que se repetem sob o mesmo pai. Serve para quando você herda um feed XML sem schema e precisa que a validação ou a geração de código comece de algum lugar.

Como usar

  1. Cole o seu documento na área XML.
  2. Leia o schema gerado na saída XSD (inferred) — ele é regerado a cada tecla pressionada.
  3. Se a entrada estiver malformada, um erro Invalid XML é mostrado em seu lugar.

Exemplos

  • <books><book id="1"><title>A</title></book></books> produz um schema com os complex types booksType e bookType, um elemento title tipado como xs:string e um atributo id declarado como xs:string.

Observações

Elementos que compartilham o mesmo nome de tag são tratados como se compartilhassem um único tipo, e namespaces não são analisados. Como a inferência vem de uma amostra só, nada garante que ela cubra as variações que o feed produz em outros documentos. Trate a saída como andaime: aperte os tipos de dados, as restrições de ocorrência e as enumerações contra o seu contrato real.

FAQ
Meu XML é enviado para um servidor?
Não. O documento é interpretado pelo DOMParser embutido no seu navegador e o schema é gerado localmente. Nada é enviado, então payloads proprietários podem ser colados sem risco.
Quão preciso é o schema inferido?
É uma estrutura de melhor esforço inferida de uma única amostra: nomes de elementos e de atributos são capturados, elementos filhos repetidos recebem maxOccurs="unbounded", mas todos os tipos de folha e de atributo caem no padrão xs:string. Refine tipos e restrições à mão.
O XSD gerado consegue detectar elementos opcionais?
Não. Com uma única amostra não há como distinguir obrigatório de opcional, então todo elemento observado aparece na sequência. Adicione minOccurs="0" você mesmo onde os elementos podem estar ausentes.