Gerar a Classe C# do XML
Posso gerar uma classe C# a partir de um ficheiro XML?
8 answers
Sim, usando 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 /classes
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 estiver a trabalhar no Projecto. Net 4. 5 em VS 2012 (ou mais recente), pode apenas Colar especial o seu ficheiro XML como classes.
- copiar o conteúdo do seu ficheiro XML para a área de transferência
- no editor, seleccione o local onde deseja que as suas aulas sejam coladas
- no menu, seleccione
EDIT > Paste Special > Paste XML As Classes
Mas agora uso http://xmltocsharp.azurewebsites.net e agora estou tão jovem como sempre.
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 velho e você provavelmente seguiu em frente.
Mas eu tinha o mesmo problema que tu, por isso decidi escrever o meu próprio programa.O problema com a rota" xml -> XSD - > " para mim foi que acabou de gerar um monte de código que era completamente inatingível e acabei por o descarregar.
Não é elegante, mas fez o trabalho por mim.Pode obtê-lo aqui: por favor, faça sugestões se quiser ele.
Pode usar xsd como sugerido pelo Darin.
Além disso, recomenda-se editar o teste.XSD-file para criar um esquema mais razoável.
type="xs:string"
pode ser alterada para type="xs:int"
para valores inteirosminOccurs="0"
pode ser alterada para minOccurs="1"
onde o campo é obrigatóriomaxOccurs="unbounded"
pode ser alterada para maxOccurs="1"
, onde apenas um item é permitido
Você pode criar xsd-s mais avançados se quiser validar mais os seus dados, mas isto irá, pelo menos, dar-lhe tipos de dados razoáveis em o c#gerado.
Usar a sintaxe abaixo para criar a classe schema a partir do ficheiro XSD.
C:\xsd C:\Test\test-Schema.xsd /classes /language:cs /out:C:\Test\
Para converter XML numa Classe C#:
- Navegue até ao Mercado Microsoft Visual Studio:
-- https://marketplace.visualstudio.com
- na barra de pesquisa indique o texto: -- ferramenta de código xml para classe
- transferir, instalar e usar o aplicativo