Я пробовал ответить на этот вопрос, но не смог заставить xsd.exe с радостью взять файлы XSD и превратить их в класс.
Использование XSD файлов здесь: http://download.adamhaile.com/SO/XSD.zip
Может ли кто-нибудь помочь мне преобразовать их в действительный класс С#, который затем можно использовать для сериализации XML-документа?
Примечание. Да, это из недокументированного API Yahoo Movies, который я пытаюсь использовать. Похоже, что он использует стандартный шаблон схемы Microsoft, поэтому я бы предположил, что это вполне возможно.
Ниже приведен пример результатов одного из вызовов API: http://new.api.movies.yahoo.com/v2/listTheatersByPostalCode?pcode=12345&count=30&yprop=msapi
Обязательно поместите все ссылочные схемы в строку 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. Или, если вы не заботитесь о части удобства, бросьте ее.
Попробуйте http://www.altova.com/download.html. Он имеет 30-дневную пробную версию, но он преобразует xml xsd в классы. он также обращает инженеров xml для создания xsd.
Используйте xsd.exe, который поставляется с визуальной студией. iirc xsd/classes theschema.xsd
Но как вы это пробовали, что пошло не так?
Как насчет предоставления CodeXS попробовать? Они нормально работают для меня.