Я создал класс из схемы через Xsd.exe инструментаДополнительное XMLNS в XML, полученное от XmlSerializer
Теперь, когда я сериализовать класс я получаю дополнительный xmlns=""
на всем ниже корне.
<myroot xmlns="blabla">
<tag1 xmlns="">
<tag2>
...
Схема выглядит следующим образом:
<xsd:schema xmlns="blabla" targetNamespace="blabla" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="MyRoot">
Я не вижу ничего в схеме, указывающего, что tag1 элемент и ниже, должны быть в другом пространстве имен, чем корень ,
код сериализации просто делает:
MyRoot doc = new MyRoot();
...
XmlSerializer xs = new XmlSerializer(typeof(MyRoot));
MemoryStream ms = new MemoryStream();
try {
xs.Serialize(ms, doc);
Класс генерируется из Xsd.exe содержит только атрибут пространства имен на корневой класс.
Итак, в схеме вы должны явно указать пространство имен для всех элементов (кроме корневого)? Не знаю, спасибо. – adrianm