Public Shared Function XMLToDataSet(ByVal xmlStr As String, ByVal schemaFile As String) As DataSet 'Convert the XML to a dataset Dim sr As New StringReader(xmlStr) 'Convert xmlData to a Dataset Dim ds As New DataSet If schemaFile = String.Empty Then ds.ReadXml(sr, XmlReadMode.InferSchema) Else ds.ReadXmlSchema(schemaFile) ds.ReadXml(sr, XmlReadMode.ReadSchema) End If For Each relation As DataRelation In ds.Relations For Each c As DataColumn In relation.ParentColumns If Not relation.ChildTable.Columns.Contains(c.ColumnName) Then relation.ChildTable.Columns.Add(c) End If For Each dr As DataRow In relation.ChildTable.Rows dr(c.ColumnName) = dr.GetParentRow(relation)(c.ColumnName) Next Next Next Return ds End Function