다들 아시다시피 마이크로소프트에서는 데이터세트로 전달되는 WebService의 각 노드에 스키마를 추가할 예정이어서 j2ee, flash와 호환되지 않기 때문에 일반 xml로 변환하는 방법을 찾았습니다. 코드는 다음과 같습니다:
방법 1:
공용 클래스 DataSetToXML: System.Web.UI.Page를 상속합니다.
개인 하위 페이지_Load(ByVal 보낸 사람은 System.Object로, ByVal e는 System.EventArgs로) MyBase.Load를 처리합니다.
Dim objConn As SqlConnection
Dim strSql As String
strSql = "SELECT TOP 10 * FROM Customers"
objConn = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
Dim sdaCust As New SqlDataAdapter(strSql, objConn)
새로운 DataSet()으로 dstCust를 희미하게 합니다.
sdaCust.Fill(dstCust, "Customers")
'XML 파일과 스키마 파일에 데이터를 저장합니다.
dstCust.WriteXML(Server.MapPath("Customers.xml"),XmlWriteMode.IgnoreSchema)
dstCust.WriteXMLSchema(Server.MapPath("Customers.xsd"))
End Sub
이 방법은 xml 파일을 작성하는 것입니다.
방법 2:
<WebMethod(Description:="모든 강의실 목록")> _
ListAllRooms
() As XmlDocument
m_CpCourseArrange.FillRoomId(m_DsCourseArrange)
'새로운 MemoryStream으로 희미한 독자
Dim 문서를 새 XmlDocument로 사용
doc.LoadXml(m_DsCourseArrange.GetXml.ToString)
문서
Catch ex를 Protocols.SoapException으로
반환합니다.
Throw SoapExceptionE.RaiseException("ListAllRooms", " http://tempuri.org/CourseArrange ", ex.Message, "4000", ex.Source, SoapExceptionE.FaultCode.Server)
시도 종료
기능 종료
GetXML--DataSet(MSDN)에 저장된 데이터의 XML 표현을 반환합니다.
개인 공유 서브 DemonstrateGetXml()
' 두 개의 열과 10개의 행을 포함하는 하나의 테이블로 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개의 행을 추가합니다.
Dim r As DataRow
Dim i를 정수로 표시
i = 0 ~ 9의 경우
r = t.NewRow()
r("id") = 나
r("항목")= "항목" & i
t.행.추가(r)
Next
' DataSet 내용을 XML로 표시합니다.
Console.WriteLine(ds.GetXml())
서브 끝
앞으로 데이터 세트와 함께 전달할 때 변환에 대해 걱정할 필요가 없을 것 같습니다.