Answers:
是的,通过使用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
该工具,请在工具菜单下运行VS2013开发人员命令提示符。
xsd.exe
可以在以下位置找到:C:\Program Files (x86)\Microsoft SDKs\Windows
xsd.exe
位置找到了我: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
如果您正在VS 2012(或更高版本)中的.NET 4.5项目,则可以仅将XML文件作为类特殊粘贴。
EDIT > Paste Special > Paste XML As Classes
xsd
,但输出大致相同。
public (\w+) (\w+)\r\n +\{\r\n +get\r\n +\{\r\n +return this.*;\r\n +\}\r\n +set\r\n +\{\r\n +this.*;\r\n +\}\r\n +\}\r\n
=> public $1 $2 { get; set; }
和`private \ w + \ w + Field; \ r \ n \ r \ n`
起初我以为选择性粘贴是圣杯!但是后来我尝试了一下,就像印第安纳·琼斯的电影一样,我的头发变白了。
但是现在我使用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->类”路由的问题在于它只是生成了完全无法维护的大量代码,最终我把它弄乱了。
它绝非优雅,但却为我完成了工作。
您可以在此处获得:如果喜欢,请提出建议。
要将XML转换为C#类:
注意:在整个时间段内,可能会替换此应用程序,但有可能会有另一个工具执行相同的操作。