プロが教えるわが家の防犯対策術!

VB2005の初心者です。

Aシステムの開発(VB2005)で、Bシステムとの通信部分の開発をしています。
Bシステムとの通信はTCP/IP通信にて、XMLデータでやりとりをします。
XMLデータは、タグなど形式が決まっています。

単純に、適当なXMLデータを通信でやりとりすることはできたのですが、
AシステムでDB(SQLServer)から取得したデータを、形式に沿ったタグを使用したXMLデータに変換してから通信したいのですが、その変換方法が分りません。

DBのデータをXML形式に変換すると、フィールド名のタグでできると思うのですが、そうではなく、指定したタグを使用してXMLデータを作成するにはどうすれば良いのでしょうか。

タグを指定、もしくは変換する方法などはあるのでしょうか。

何かヒントでも良いので、たくさんの方の知恵をお借りできれば幸いです。
よろしくお願い致します。

A 回答 (2件)

VB.NET ではオブジェクト通信でやり取りする方法として


シリアル化という方法を使います。
また XMLでのWEB のデータ通信としては Soap プロトコル
が用意されており HTTP では超えられないファイアーウオールも
SOAPでの通信なら簡単に実現できます。
私もまだ勉強中の技術ですが覚えていて損はなさそうです。
Soap は XMLでのシリアライズされたデータを扱います。
DBなどのデータも簡単にオブジェクトとして通信できます。
たとえば
DATATABLE 形式やDATASET などもです。

下記の参考URL を見てください。
_______________________________________________________
NETで簡単XML

第9回 オブジェクトをXMLでシリアライズ(1)
http://www.atmarkit.co.jp/fdotnet/easyxml/easyxm …
___________________________________________________

資料
Visual Studio 2005による XML Web サービス入門
http://download.microsoft.com/download/6/c/2/6c2 …

[HTMLバージョン]
http://72.14.235.104/search?q=cache:rDbPf_bDxLYJ …
    • good
    • 0
この回答へのお礼

シリアライズというのは初めて聞きましたが、おっしゃるとおり、階層構造のXMLデータを作成することができました。
本当に助かりました。
どうもありがとうございました。

お礼日時:2007/10/24 18:27

DB のVIEW もしくはストアドなどで SELECT 文で列名 を別名で出力すれば問題ないように思えますが。



参考URL
第1回:リレーショナルDBからXML文書を取り出す
http://www.atmarkit.co.jp/fxml/tanpatsu/15mssql/ …

【.NET 1.1/C#/SQLServer】DBとXML間でテーブルデータを受け渡しする方法(旧サイトからコピペ)
http://blogs.wankuma.com/mayurin/archive/2006/04 …
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

教えていただいたことを参考に、下記でテストをしてみました。

GcmdCommand = new SqlCommand _
("SELECT ID as ""ID"", " + _
"diagnosis as ""ID/diagnosis"", " + _
"startDate as ""ID/startDate"", " + _
"firstEncounterDate as ""ID/firstEncounterDate"" " + _
 "FROM KanjyaInfo WHERE ID = 12345 FOR XML PATH('Customer'), ROOT('doc')" , GconectOb)

出力結果の<doc>配下は下記のとおりで、階層になるはずですが、Webで表示すると階層になっておらず、タグをタグと認識していないようです。

<doc><Customer><ID>12345<diagnosis>diagnosis1</diagnosis><startDate>2002-01-25</startDate><firstEncounterDate>2002-01-26</firstEncounterDate></ID></Customer></doc>

as句のパス表記が誤っているのでしょうか。
もしくは、パスを認識するために、何か設定など必要なのでしょうか。
もしご存知でしたら、アドバイスいただけましたら幸いです。

お礼日時:2007/10/23 13:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!