DatacontractSerializer
domainModel を xml ファイルにシリアル化するために使用しています。以下のような出力が得られます。
<z:anyType xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="1" xmlns:d1p1="DCSerialization_IGITApproach" i:type="d1p1:X" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<d1p1:Name z:Id="2">Ankit</d1p1:Name>
<d1p1:PointsDictionary xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" z:Id="3" z:Size="1">
<d2p1:KeyValueOfstringPointsArrayq9VX7VJJ>
<d2p1:Key z:Id="4">key1</d2p1:Key>
<d2p1:Value xmlns:d4p1="http://schemas.datacontract.org/2004/07/SerializationApproach" z:Id="5">
<d4p1:points z:Id="6" z:Size="2">
<d2p1:double>45.5</d2p1:double>
<d2p1:double>546.45</d2p1:double>
</d4p1:points>
</d2p1:Value>
</d2p1:KeyValueOfstringPointsArrayq9VX7VJJ>
</d1p1:PointsDictionary>
</z:anyType>
そして、これらの「d1p1」名前空間プレフィックスを取り除き、の</PointDictionary>
代わりに like タグが必要です</d1p1:PointsDictionary>
。クラスのプロパティに DataMember 属性を配置しようとしましたが、問題の多くは解決しません。出力 XML ファイルはエンド ユーザーが編集できるため、上記の XML ファイルよりも見栄えの良い XML ファイルが必要です。
最優先事項は、コードのみで制御することです。それが不可能な場合は、XSLT またはその他のスキーマを使用します。