从 XML 生成 C# 类

问题描述 投票:0回答:10

我可以从 XML 文件生成 C# 类吗?

c# .net xml xsd
10个回答
483
投票

如果您正在 VS 2012(或更高版本)中处理 .NET 4.5 项目,您只需特殊粘贴您的 XML 文件作为类。

  1. 将 XML 文件的内容复制到剪贴板
  2. 在编辑器中,选择要粘贴课程的位置
  3. 从菜单中选择
    EDIT > Paste Special > Paste XML As Classes

373
投票

是的,通过使用 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'.

注释

回答如何将开发人员命令提示符中的目录更改为d:emp可能有用。

如果为多维数组生成类,XSD.exe 生成器中存在错误,但是

有解决方法


63
投票
起初我以为 Paste Special 是圣杯! 但后来我尝试了一下,我的头发变白了,就像印第安纳琼斯电影一样。

但现在我使用

http://xmltocsharp.azurewebsites.net/,现在我和以前一样年轻了。

这是它生成的一部分:

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

23
投票
我遇到了和你一样的问题,所以我决定编写自己的程序。

“xml -> xsd -> classes”路线对我来说的问题是它刚刚生成 一堆完全无法维护的代码,我最终放弃了它。

它一点也不优雅,但它为我完成了工作。 您可以在这里获取它:

SimpleXmlToCode

如果喜欢请提出建议。


6
投票
您应该考虑 svcutil (

svcutil 问题

xsd.exe 和 svcutil 都对 XML 架构文件 (.xsd) 进行操作。 您的 XML 必须符合这两个工具所使用的架构文件。

请注意,为此还存在各种第三方工具。


6
投票
您可以按照 Darin 的建议使用 xsd。

除此之外,建议编辑 test.xsd 文件以创建更合理的架构。

对于整数值,

type="xs:string"

 可以更改为 
type="xs:int"

需要填写的地方可以将
minOccurs="0"
改为
minOccurs="1"


maxOccurs="unbounded"
 可以更改为 
maxOccurs="1"
,仅允许一项

如果您想进一步验证数据,您可以创建更高级的 xsd-s,但这至少会在生成的 c# 中为您提供合理的数据类型。


2
投票
使用以下语法从 XSD 文件创建架构类。

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

1
投票
不久前发现了这个网站。 它将 XML 和 JSON 转换为 C# 和 Java 类。 有多种选项可根据您的需要进行调整。 我经常使用它。

https://json2csharp.com/xml-to-csharp


0
投票
将 XML 转换为 C# 类:

    导航到 Microsoft Visual Studio Marketplace: --
  • https://marketplace.visualstudio.com
  • 在搜索栏中输入文字: -- xml转类代码工具
  • 下载、安装和使用该应用程序
注意:随着时间的推移,这个应用程序可能会被替换,但很可能会有另一个工具可以做同样的事情。


0
投票
可以使用 xsd.exe 进行转换,为此我们必须在 cmd 中使用命令

C:\Program Files (x86)\Microsoft SDKs\Windows 10.0A in\NETFX 4.8 Tools>xsd C:\Test est-Schema.xsd /classes /language:cs /out:C:\Test\

© www.soinside.com 2019 - 2024. All rights reserved.