2009-04-19 10 views
14

Использование JAXB в Java легко сгенерировать из файла схемы xml набор классов Java, к которым может быть десериализован xml, соответствующий этой схеме.Jaxb эквивалент в C#

Есть ли какой-то C# эквивалент JAXB? Я знаю, что Linq может сериализовать и десериализовать классы в/из xml-файлов. Но как я могу генерировать классы C# из файла схемы xml, а затем использовать эти классы с linq?

ответ

15

Если вы используете Visual Studio, попробуйте XML Schema Definition Tool. Он принимает ваши определения схем и создает классы C# - или он может идти другим путем и выводить определения схемы из классов. Он также имеет ряд других преобразований, связанных с XML.

+0

На самом деле XSD может генерировать классы в C#, VB.NET, JScript или C++. См. Переключатель/language. –

+0

Извините, я не хотел подразумевать, что это невозможно. Его вопрос касался только классов C#. Но да, переключатель/language удобен. –

+3

Вам не обязательно иметь Visual Studio. XSD.EXE является частью .NET SDK. –

4

Существует лучший инструмент от Microsoft под названием XsdObjectGen, генератор кода объекта XSD. Это похоже на xsd.exe, но лучше. Также бесплатный, он не является частью .NET SDK, а является отдельной загрузкой.

Также см Спешиал вопрос: XSDObjectGen vs Xsd.exe

1

Посмотрите в использовании набора данных. Это немного другая концепция использования «Java Beans». Весь XML-документ обрабатывается иерархическим набором таблиц в одном классе. Хорошо, что теория инкапсуляции для ООП фактически применяется. Ничего себе, Microsoft получила кое-что право, что Солнце окрестили.

В любом случае. Вы также можете посмотреть типизированные данные DataSet, если хотите сделать вещи более интересными. Я использовал это в крупных проектах с большим успехом.