Gerar class C # do XML

Posso gerar uma class c # de um arquivo XML?

Sim, usando o xsd.exe

D:\temp>xsd test.xml Microsoft (R) Xml Schemas/DataTypes support utility [Microsoft (R) .NET Framework, Version 4.0.30319.1] Copyright (C) Microsoft Corporation. All rights reserved. Writing file 'D:\temp\test.xsd'. D:\temp>xsd test.xsd /classs Microsoft (R) Xml Schemas/DataTypes support utility [Microsoft (R) .NET Framework, Version 4.0.30319.1] Copyright (C) Microsoft Corporation. All rights reserved. Writing file 'D:\temp\test.cs'. 

Se você estiver trabalhando no projeto .NET 4.5 no VS 2012 (ou mais recente), você pode apenas Colar Especial seu arquivo XML como classs.

  1. Copie o conteúdo do seu arquivo XML para a área de transferência
  2. No editor, selecione o local onde você deseja que suas turmas sejam coladas
  3. No menu, selecione EDIT > Paste Special > Paste XML As Classes

No começo eu pensei que o Colar Especial era o Santo Graal! Mas então eu tentei e meu cabelo ficou branco como o filme de Indiana Jones.

Mas agora eu uso http://xmltocsharp.azurewebsites.net/ e agora sou mais jovem que nunca.

Aqui está um segmento do que gerou:

 namespace Xml2CSharp { [XmlRoot(ElementName="entry")] public class Entry { [XmlElement(ElementName="hybrisEntryID")] public string HybrisEntryID { get; set; } [XmlElement(ElementName="mapicsLineSequenceNumber")] public string MapicsLineSequenceNumber { get; set; } 

Eu percebo que este é um post bastante antigo e você provavelmente já seguiu em frente.

Mas eu tive o mesmo problema que você, então decidi escrever meu próprio programa.

O problema com a rota “xml -> xsd -> classs” para mim foi que ele apenas gerou um pedaço de código que era completamente inatingível e acabei passando por ele.

Não é de forma alguma elegante, mas fez o trabalho para mim.

Você pode obtê-lo aqui: Por favor, faça sugestões, se você gosta.

SimpleXmlToCode

Você deveria considerar svcutil ( questão svcutil )

Tanto o xsd.exe quanto o svcutil operam no arquivo de esquema XML (.xsd). Seu XML deve estar em conformidade com um arquivo de esquema a ser usado por uma dessas duas ferramentas.

Observe que várias ferramentas de terceiros também existem para isso.

Você pode usar o xsd como sugerido por Darin.

Além disso, recomenda-se editar o arquivo test.xsd para criar um esquema mais razoável.

type="xs:string" pode ser alterado para type="xs:int" para valores inteiros
minOccurs="0" pode ser alterado para minOccurs="1" onde o campo é obrigatório
maxOccurs="unbounded" pode ser alterado para maxOccurs="1" onde apenas um item é permitido

Você pode criar xsd-s mais avançados se quiser validar seus dados ainda mais, mas isso, pelo menos, fornecerá tipos de dados razoáveis ​​no c # gerado.

Use a syntax abaixo para criar uma class de esquema a partir do arquivo XSD.

 C:\xsd C:\Test\test-Schema.xsd /classs /language:cs /out:C:\Test\ 

Para converter XML em uma class C #:

  • Navegue até o Microsoft Visual Studio Marketplace: – https://marketplace.visualstudio.com
  • Na barra de pesquisa, insira o texto: – xml para a ferramenta de código de class
  • Baixe, instale e use o aplicativo

Nota: na plenitude do tempo, este aplicativo pode ser substituído, mas as chances são, haverá outra ferramenta que faz a mesma coisa.