xsd.exe ツールを使用してスキーマからクラスを生成しました
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 から生成されたクラスには、ルート クラスの名前空間属性のみが含まれます。