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

わんくま同盟

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

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


(過去ログ 112 を表示中)
■66302 / )  Re[4]: シリアライズ 空要素タグ禁止
□投稿者/ 魔界の仮面弁士 (195回)-(2013/04/13(Sat) 16:49:17)
# タイトル編集「シリアラズ」(知り非ず?)→「シリアライズ」

■No66265 (fullhappy さん) に返信
> 今回、前提としてWebServiceで
> 自動でシリアライズされるので
> XMLの結果を変更するのは難しいと思います。

Webサービスというと、*.asmx を使う方法と、*.svc を使う方法がありますね。

私自身は未だに前者しか使用したことが無く、WCF については勉強不足なのですが、
少なくとも *.asmx の方については、SOAPExtension クラスと
SOAPExtensionAttribute 属性を使う事で、シリアライズの前後で
処理を割り込みさせることができるようになっています。
http://msdn.microsoft.com/ja-jp/library/esw638yk.aspxNo66297 (守山 さん) に返信
> <test/>がxml的に正しい構文のため、プロパティでどうこうできるものではないと思います。
同感です。手軽に変換できるような属性やプロパティは用意されていないと思います――多分。

読み込み側に渡す前に、シリアライズ結果を加工するための処理を入れるか、
シリアライザを自作するかといった話になってしまうのでは無いでしょうか。

たとえば XSLT 使って、空要素を <xsl:text disable-output-escaping="yes"> に
かけていき、開始タグ+属性と終了タグを出力させるとか。


> どうして読込側は<test/>の形式に対応していないのでしょうか?
解釈側の要件としては、よくある話かと思いますよ。
たとえば XHTML の世界では、下記のような出力が求められますし。

 ○ <script src="sample.js"></script>
 × <script src="sample.js"/>
 × <script src="sample.js" />

 × <hr></hr>
 △ <hr/>
 ○ <hr />

返信 編集キー/


管理者用

- Child Tree -