[英]Generate C# class from XML
我可以从 XML 文件生成 C# class 吗?
如果您正在VS 2012(或更高版本)中的.NET 4.5项目,则可以仅将XML文件作为类特殊粘贴 。
EDIT > Paste Special > Paste XML As Classes
是的,通过使用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:\\ temp可能会有用。
起初我以为选择性粘贴是圣杯! 但是后来我尝试了一下,就像印第安纳·琼斯的电影一样,我的头发变白了。
但是现在我使用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; }
我意识到这是一篇比较老的文章,您可能已经继续前进。
但是我和您有同样的问题,所以我决定编写自己的程序。
对我来说,“ xml-> xsd->类”路由的问题在于它只是生成了完全无法维护的大量代码,最终我把它弄乱了。
它绝非优雅,但却为我完成了工作。
您可以在这里获得:如果喜欢,请提出建议。
您应该考虑svcutil( svcutil问题 )
xsd.exe和svcutil都在XML模式文件(.xsd)上运行。 您的XML必须符合要由这两个工具之一使用的架构文件。
请注意,为此也存在各种第三方工具。
您可以按照Darin的建议使用xsd。
除此之外,建议编辑test.xsd文件以创建更合理的架构。
对于整数值,可以将type="xs:string"
更改为type="xs:int"
minOccurs="0"
可以更改为minOccurs="1"
,其中该字段是必填字段
可以将maxOccurs="unbounded"
更改为maxOccurs="1"
,其中只允许一项
如果您想进一步验证数据,则可以创建更高级的xsd -s,但这至少会在生成的c#中为您提供合理的数据类型。
使用以下语法从XSD文件创建架构类。
C:\xsd C:\Test\test-Schema.xsd /classes /language:cs /out:C:\Test\
要将XML转换为C#类:
注意:在整个时间段内,可能会替换此应用程序,但有可能会有另一个工具执行相同的操作。
不久前发现了这个网站。 它将 XML 和 JSON 转换为 C# 和 ZD52387880E1EA22817A72D37592 类1。 有几个选项可以根据需要进行调整。 我经常使用它。 https://json2csharp.com/xml-to-csharp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.