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


当前回答

你应该考虑一个问题

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#中为您提供合理的数据类型。

一开始我以为膏体特别版是圣杯!但后来我试了一下,我的头发变白了,就像印第安纳·琼斯电影里那样。

但现在我使用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

喜欢的话请提意见。

你应该考虑一个问题

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

请注意,各种第三方工具也存在于此。

使用下面的语法从XSD文件创建模式类。

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