Следующие вопросы касаются сериализации/десериализации XML и проверки схемы для библиотеки .net типов, которые должны использоваться для обмена данными.Xml Сериализация и схемы в .net (C#)
Первый вопрос, если у меня есть пользовательские XML-пространства сказать «http://mydomain/mynamespace» я должен добавить
[XmlRoot(Namespace = "http://mydomain/mynamespace")]
к каждому классу в моей библиотеке. Или есть способ определить это пространство имен по умолчанию для всей сборки?
Второй вопрос, есть ли причина всегда добавленных пространств имен
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
, даже если нет никакой фактической ссылки на какой-либо из пространств имен? Я просто чувствую, что они добавляют шум в полученный xml. Есть ли способ удалить их, у вас есть только собственное пространство имен в полученном xml?
Третий вопрос, есть инструменты для поддержки генерации определения схемы (например, для всех общественных [Serializable] классов сборки) и проверки XML против конкретных схем доступной?
Если есть, вы бы рекомендовали XML-схему от W3C или RELAX NG?