繁体   English   中英

从 XML 生成 C# class

[英]Generate C# class from XML

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

如果您正在VS 2012(或更高版本)中的.NET 4.5项目,则可以仅将XML文件作为类特殊粘贴

  1. 将XML文件的内容复制到剪贴板
  2. 在编辑器中,选择要粘贴课程的位置
  3. 从菜单中,选择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可能会有用。

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

起初我以为选择性粘贴是圣杯! 但是后来我尝试了一下,就像印第安纳·琼斯的电影一样,我的头发变白了。

但是现在我使用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->类”路由的问题在于它只是生成了完全无法维护的大量代码,最终我把它弄乱了。

它绝非优雅,但却为我完成了工作。

您可以在这里获得:如果喜欢,请提出建议。

SimpleXmlToCode

您应该考虑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#类:

  • 导航到Microsoft Visual Studio市场:-https: //marketplace.visualstudio.com
  • 在搜索栏中输入文本:-xml转换为类代码工具
  • 下载,安装和使用该应用

注意:在整个时间段内,可能会替换此应用程序,但有可能会有另一个工具执行相同的操作。

不久前发现了这个网站。 它将 XML 和 JSON 转换为 C# 和 ZD52387880E1EA22817A72D37592 类1。 有几个选项可以根据需要进行调整。 我经常使用它。 https://json2csharp.com/xml-to-csharp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM