我可以从XML文件生成c#类吗?
当前回答
使用下面的语法从XSD文件创建模式类。
C:\xsd C:\Test\test-Schema.xsd /classes /language:cs /out:C:\Test\
其他回答
一开始我以为膏体特别版是圣杯!但后来我试了一下,我的头发变白了,就像印第安纳·琼斯电影里那样。
但现在我使用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转换为c#类:
导航到Microsoft Visual Studio市场: ——https://marketplace.visualstudio.com 在搜索栏中输入文本: XML到类的代码工具 下载、安装并使用该应用程序
注意:在适当的时候,这个应用程序可能会被取代,但有可能会有另一个工具做同样的事情。
是的,通过使用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生成器中有一个错误,但有变通方法。
你应该考虑一个问题
xsd.exe和svcutil都对XML模式文件(.xsd)进行操作。您的XML必须符合这两种工具使用的模式文件。
请注意,各种第三方工具也存在于此。
您可以按照Darin的建议使用xsd。
除此之外,建议编辑测试。xsd文件创建一个更合理的模式。
对于整数值,Type ="xs:string"可以更改为Type ="xs:int" minOccurs="0"可以更改为minOccurs="1",其中该字段是必需的 maxOccurs="unbounded"可以更改为maxOccurs="1",其中只允许一个项
如果希望进一步验证数据,可以创建更高级的xsd-s,但这至少会在生成的c#中为您提供合理的数据类型。
推荐文章
- 我如何使一个方法的返回类型泛型?
- 何时处理CancellationTokenSource?
- 如何获取正在执行的程序集版本?
- AutoMapper vs valueinjector
- 为什么控制台不。Writeline,控制台。在Visual Studio Express中编写工作?
- 什么是.NET程序集?
- 字符串不能识别为有效的日期时间“格式dd/MM/yyyy”
- XSD和WSDL之间的区别是什么?
- 函数应该返回空对象还是空对象?
- 如何转换日期时间?将日期时间
- 如何在c#中连接列表?
- 在c#中引用类型变量的“ref”的用途是什么?
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- 转换为值类型'Int32'失败,因为物化值为空
- 如何将XML转换成PHP数组?