Listing 1 (webserviceCalls.vb) Imports System Imports System.Data Imports System.Xml Imports System.IO.StringReader Imports System.Data.DataSet Public Class webServiceCalls Private oWS As New mySite.com.eventWS() Function getCategoryList() As String(,) Dim doc As XmlDataDocument = New XmlDataDocument() Dim reader As XmlTextReader = New XmlTextReader(New System.IO.StringReader(oWS.getCategoriesXML())) Dim oXFormat As New XMLData() Return oXFormat.createArrayFromXML(reader) End Function Public Function getEventsByDateAndCategory(ByVal dtEvent As Date, ByVal CategoryID As Integer) As String Return oWS.getEventsByDateAndCat(dtEvent, CategoryID) End Function Public Function getEventListByDate(ByVal dtEvent As Date) As String Return oWS.getEvents(dtEvent) End Function End Class Listing 2. xmlData.vb Imports System.Xml.XPath Public Class XMLData Public Function createArrayFromXML(ByVal reader As System.Xml.XmlTextReader) As String(,) Dim ds As New DataSet("xmlTable") ds.ReadXml(reader) Dim oDT As DataTable = ds.Tables(0) Dim oDR As DataRow Dim sARData(ds.Tables(0).Rows.Count, 2) As String Dim iCount As Integer For Each oDR In oDT.Rows sARData(iCount, 0) = oDR.Item(0) sARData(iCount, 1) = oDR.Item(1) iCount = iCount + 1 Next Return sARData End Function End Class Listing 3. (EventClientTest form1.vb) Public Class Form1 Inherits System.Windows.Forms.Form ... Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim oEClient As New EventClient.webServiceCalls() Dim arCategories As String(,) = oEClient.getCategoryList() MsgBox(oEClient.getEventListByDate(New Date().Parse("11/1/2001"))) MsgBox(oEClient.getEventsByDateAndCategory(New Date().Parse("11/1/2001"), 1)) MsgBox(arCategories(1, 1)) End Sub End Class Listing 4. (index.aspx and index.aspx.vb) index.aspx ... <%@ Page Language="vb" AutoEventWireup="false" Codebehind="index.aspx.vb" Inherits="CompanyEventsClient.WebForm1"%>