将 XSD 文件转换为 C# Serializable 类 [英] Convert XSD files to C# Serializable Class

查看:32
本文介绍了将 XSD 文件转换为 C# Serializable 类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试按照这个问题的答案,但无法让 xsd.exe 愉快地获取 XSD 文件并将它们变成一个类.

I tried following the answer to this question, but could not get xsd.exe to happily take the XSD files and turn them into a class.

在此处使用 XSD 文件:http://download.adamhaile.com/SO/XSD.zip
任何人都可以帮助我将这些转换为有效的 C# 类,然后可用于将 XML 文档序列化为?

Using the XSD files here: http://download.adamhaile.com/SO/XSD.zip
Can anyone help me convert these to a valid C# class that can then be used to serialize an XML document to?

注意:是的,这些来自我正在尝试使用的未记录的雅虎电影 API.看起来它使用的是基于 Microsoft 的标准架构模式,所以我认为这是很有可能的.

Note: Yes, these are from an undocumented Yahoo Movies API that I'm trying to use. It looks like it's using a standard Microsoft based schema pattern, so I would imagine this is quite possible.

以下是其中一个 API 调用的结果示例:http://new.api.movies.yahoo.com/v2/listTheatersByPostalCode?pcode=12345&count=30&yprop=msapi

Here is an example of the results from one of the API calls: http://new.api.movies.yahoo.com/v2/listTheatersByPostalCode?pcode=12345&count=30&yprop=msapi

http://download.adamhaile.com/SO/XSD.zip

推荐答案

请务必将所有引用的架构放在 cmd 行中.
当我这样做时,我会收到一堆警告.

Be sure to put all referenced schemas on the cmd line.
When I do this, I get a bunch of warnings.

$ 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,它就可以正常工作.

If I yank out yahooTheater.xsd from that list, it works fine.

我什至没有看 XSD,但在我看来 xsd.exe 认为某些元素已被双重定义.您可以通过将 yahooTheater.xsd 与 yahooTheaterAmenity.xsd 结合来手动协调该问题.或者,如果您不关心舒适性部分,请放弃它.

I didn't even look at the XSDs but it seems to me that xsd.exe thinks some elements have been doubly defined. you may be able to manually reconcile that problem by combining yahootheater.xsd with yahooTheaterAmenity.xsd. Or, if you don't care about the amenity part, drop it.

这篇关于将 XSD 文件转换为 C# Serializable 类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆