ご存知のとおり、Microsoft はデータセットで配信される WebService の各ノードにスキーマを追加するため、j2ee や flash と互換性がないため、通常の xml に変換する方法を見つけました。コードは次のとおりです。
方法 1:
Public Class DataSetToXML : System.Web.UI.Page を継承
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SqlConnection として objConn を暗くする
Dim strSql As String
strSql = "顧客からトップ 10 を選択"
objConn = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
Dim sdaCust As New SqlDataAdapter(strSql, objConn)
Dim dstCust As New DataSet()
sdaCust.Fill(dstCust, "Customers")
'データをxmlファイルとスキーマファイルに保存します
dstCust.WriteXML(Server.MapPath("Customers.xml"),XmlWriteMode.IgnoreSchema)
dstCust.WriteXMLSchema(Server.MapPath("Customers.xsd"))
End Sub
この方法は、xml ファイルを書き込むことです。
方法 2:
<WebMethod(説明:="全教室リスト")> _
Public Function ListAllRooms() As XmlDocument
試してみる
m_CpCourseArrange.FillRoomId(m_DsCourseArrange)
' 新しい MemoryStream としての Dim リーダー
新しい XmlDocument としての Dim ドキュメント
doc.LoadXml(m_DsCourseArrange.GetXml.ToString)
ドキュメントを
Protocols.SoapException としてキャッチし
て返します
Throw SoapExceptionE.RaiseException("ListAllRooms", " http://tempuri.org/CourseArrange ", ex.Message, "4000", ex.Source, SoapExceptionE.FaultCode.Server)
試行を終了する
終了機能
GetXML -- DataSet に保存されているデータの XML 表現を返します (MSDN)。
プライベート共有サブ DemonstrateGetXml()
' 2 つの列と 10 行を含む 1 つのテーブルを持つ DataSet を作成します。
Dim ds As DataSet = New DataSet("myDataSet")
Dim t As DataTable = ds.Tables.Add("Items")
t.Columns.Add("id", Type.GetType("System.Int32"))
t.Columns.Add("Item", Type.GetType("System.String"))
' 10 行を追加します。
DataRow としてのディム r
Dim i を整数として
i = 0 ~ 9 の場合
r = t.NewRow()
r("id") = i
r("アイテム")= "アイテム" & i
t.Rows.Add(r)
Next
' DataSet の内容を XML として表示します。
Console.WriteLine(ds.GetXml())
エンドサブ
今後データセットと一緒に渡す際には変換を気にする必要はなさそうです。