Jaxb эквивалент в С#

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

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

Ответ 1

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

Ответ 2

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

Также см. вопрос SO: XSDObjectGen vs Xsd.exe

Ответ 3

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

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