将XSD文件转换为C#可序列化类

将XSD文件转换为C#可序列化类,c#,xml,xsd,C#,Xml,Xsd,我尝试按照的答案进行操作,但无法让xsd.exe愉快地获取xsd文件并将其转换为类 在此处使用XSD文件: 有谁能帮我把这些转换成一个有效的C#类,然后用它将XML文档序列化为 注意:是的,这些是来自我正在尝试使用的一个未记录的Yahoo Movies API。看起来它使用的是标准的基于Microsoft的模式,所以我认为这是完全可能的 以下是其中一个API调用的结果示例: 使用visual studio附带的xsd.exe。 iirc xsd/classes theschema.xsd 但是

我尝试按照的答案进行操作,但无法让xsd.exe愉快地获取xsd文件并将其转换为类

在此处使用XSD文件:
有谁能帮我把这些转换成一个有效的C#类,然后用它将XML文档序列化为

注意:是的,这些是来自我正在尝试使用的一个未记录的Yahoo Movies API。看起来它使用的是标准的基于Microsoft的模式,所以我认为这是完全可能的

以下是其中一个API调用的结果示例:


使用visual studio附带的xsd.exe。 iirc xsd/classes theschema.xsd


但是既然您尝试了,那么哪里出了问题?

请确保将所有引用的模式都放在cmd行上。
当我这样做的时候,我会收到一大堆警告

$ xsd /c listTheatersByPostalCode.xsd yahooMovie.xsd yahooMovieCredit.xsd yahooMovieMedia.xsd yahooMoviePhoto.xsd yahooMovieTheater.xsd yahooMovieTheaterAmenity.xsd yahooMultimedia.xsd yahooUser.xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.
Schema validation warning: The global element 'urn:yahoo:movie:theater:TheaterList' has already been declared. Line 6, position 4.
Schema validation warning: The global attribute 'urn:yahoo:movie:theater:id' has already been declared. Line 7, position 4.
Schema validation warning: The complexType 'urn:yahoo:movie:theater:TheaterListType' has already been declared. Line 10, position 4.
Schema validation warning: The complexType 'urn:yahoo:movie:theater:TheaterType' has already been declared. Line 19, position 4.
Schema validation warning: The complexType 'urn:yahoo:movie:theater:PostalAddressType' has already been declared. Line 32, position 4.
Schema validation warning: The complexType 'urn:yahoo:movie:theater:AmenityListType' has already been declared. Line 55, position 4.
Schema validation warning: The complexType 'urn:yahoo:movie:theater:MovieListType' has already been declared. Line 65, position 4.
Schema validation warning: The complexType 'urn:yahoo:movie:theater:MovieType' has already been declared. Line 71, position 4.
Schema validation warning: The complexType 'urn:yahoo:movie:theater:ShowsType' has already been declared. Line 82, position 4.

Warning: Schema could not be validated. Class generation may fail or may produce incorrect results.
如果我从列表中拉出yahooTheater.xsd,它就可以正常工作


我甚至没有看xsd,但在我看来xsd.exe认为某些元素被双重定义了。通过将yahootheater.xsd与yahooTheaterAmenity.xsd相结合,您可以手动协调该问题。或者,如果你不在乎舒适的部分,就放弃它

试试看怎么样?它们通常对我很有效。

试试看。它有30天的试用期,但它会将XMLXSD转换为类。它还反向工程xml以生成xsd

它只吐出了一个不起作用的部分类,并表示模式无法验证。因此,取出该文件最终会给我相同的.cs文件,它只是没有抛出这些错误…奇怪。。。但是,所有的课程都是局部的,这是怎么回事?“取出文件结束”?至于分部类,如果您愿意,可以扩展它们。它们可能是局部的。我的意思是,删除yahoomoviethewer.xsd会产生相同的.cs文件,就像我离开itoh一样,是的,我现在明白了。你写的很清楚嗯,我想我的咖啡不够。正如我所说,我甚至没有查看那些xsd文件,但根据您告诉我的,可能yahooTheaterAmenities.xsd只是yahooTheater.xsd的超集,它们不打算一起使用。也许雅虎设计它们是为了让人们可以“选择退出”使用影院设施检索更详细的数据。如果模式中有doc,甚至可能在.xsd文件中,请查找对该问题的注释。否则看起来你的分类很好。听起来不错……谢谢。顺便说一句,在DotNetZip上做得很好。大约一个月前我遇到了这个问题,它为我节省了大量时间,让我的应用程序具有zip功能:)我应该为名称空间输入什么(我需要一些上下文)?在VisualStudio中查看Xsd时,在XMLSchemaExplorer中它显示为“空名称空间”。