C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: xsi:schemaLocationに関して


(過去ログ 54 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■29859 / inTopicNo.1)  xsi:schemaLocationに関して
  
□投稿者/ Chuki (6回)-(2008/12/15(Mon) 23:22:29)

分類:[.NET 全般] 

単に、XMLSerializerを使ってSerializeしていたところ、後ほどエンコーディングとNamespace、そしてxsi:schemaLocationを追加する必要が出てきました。
前者二つについては下記コードでなんか追加できたのですが、xsi:schemaLocationを追加する方法がわからずじまいでした。

xsi:schemaLocationを下記コードのどこかに何かを追加するだけで指定することは可能でしょうか。

Dim objXMLSettings As New System.Xml.XmlWriterSettings()
objXMLSettings.Encoding = System.Text.Encoding.UTF8
Dim objXMLRootAtrb As New XmlRootAttribute
objXMLRootAtrb.Namespace = "http://tempuri.org/test"

Dim objSel As New XmlSerializer(GetType(Person), objXMLRootAtrb)
Dim objFS As New System.IO.FileStream("C:\temp\test.xml", IO.FileMode.Create)
Using objWriter As System.Xml.XmlWriter = System.Xml.XmlWriter.Create(objFS, objXMLSettings)
objSel.Serialize(objWriter, objPerson)
End Using

以上、よろしくご教示お願いします。
引用返信 編集キー/
■30483 / inTopicNo.2)  Re[1]: xsi:schemaLocationに関して
□投稿者/ Chuki (8回)-(2008/12/24(Wed) 17:55:42)
超消極的(というか禁じ手)ですが、メモリに吐き出した上で文字列置換を行いました。

素直にシリアライザを実装するのが正しいと思われますが...orz

No29859 (Chuki さん) に返信
> 単に、XMLSerializerを使ってSerializeしていたところ、後ほどエンコーディングとNamespace、そしてxsi:schemaLocationを追加する必要が出てきました。
> 前者二つについては下記コードでなんか追加できたのですが、xsi:schemaLocationを追加する方法がわからずじまいでした。
>
> xsi:schemaLocationを下記コードのどこかに何かを追加するだけで指定することは可能でしょうか。

解決済み
引用返信 編集キー/
■30487 / inTopicNo.3)  Re[1]: xsi:schemaLocationに関して
□投稿者/ aetos (57回)-(2008/12/24(Wed) 19:27:03)
No29859 (Chuki さん) に返信
> 単に、XMLSerializerを使ってSerializeしていたところ、後ほどエンコーディングとNamespace、そしてxsi:schemaLocationを追加する必要が出てきました。
> 前者二つについては下記コードでなんか追加できたのですが、xsi:schemaLocationを追加する方法がわからずじまいでした。
>
> xsi:schemaLocationを下記コードのどこかに何かを追加するだけで指定することは可能でしょうか。

一応、調べてみたのですがわからなかったのでレスしませんでした。
憶測ですが、XmlSerializer はあくまでシリアライザであって、XML リーダ・ライタではありませんので、(デ)シリアライズに必要ない機能は持ってないんじゃないかと思います。
検証の必要があるなら、シリアライズの後、デシリアライズの前に行えばいいのであって、そのためには必ずしも xsi:schemaLocation を必要としませんから。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -