- 題名: xmlの表示について
- 日時: 2014/08/24 20:00:18
- ID: 32563
- この記事の返信元:
- (なし)
- この記事への返信:
- [32564] Re[1]: xmlの表示について2014/08/25 9:34:32
- [32565] Re[1]: xmlの表示について2014/08/25 10:33:58
- [32566] Re[1]: xmlの表示について2014/08/25 13:50:46
- ツリーを表示
> DataContractSerialize + XmlWriter ではencoding="UTF-8"はOmitXmlDeclaration = Trueで
> 表示させなくはできたのですが<?xml version="1.0"?>は残っております。
はて?
' ソース
<DataContract> Class Obj
<DataMember> Public Property Name As String
End Class
Dim serialzier As New DataContractSerializer(GetType(Obj))
Dim ms As New MemoryStream()
Dim settings As New XmlWriterSettings()
settings.OmitXmlDeclaration = True
settings.Encoding = New UTF8Encoding(False)
settings.Indent = True
Dim obj As New Obj() With {.Name = "aaa"}
Using writer As XmlWriter = XmlWriter.Create(ms, settings)
serialzier.WriteObject(writer, obj)
End Using
Debug.Print("{0}", Encoding.UTF8.GetString(ms.ToArray()))
' 出力結果
<Obj xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.datacontract.org/2004/07/vbtest">
<Name>aaa</Name>
</Obj>
分類:[.NET]
いつもありがとうございます。教えてください。
他人のDBに保存されたXml型ですがまれに
<?xml version="1.0" encoding="UTF-8"?>の表示がないデータがあります。
自分で検証したのですが
DataContractSerialize + XmlWriter ではencoding="UTF-8"はOmitXmlDeclaration = Trueで表示させなくはできたのですが<?xml version="1.0"?>hは残っております。
XmlSerializer + StreamWriter では何も変更できませんでした。
Version情報はシリアライズする際に省略できるものなのでしょうか?
できるのであれば方法等を教えてください。