I don't actually know how to start this because I haven't touched the .NET for quite some time, usually this isn't an issue for me, but for the life of me I can't remember.

2 files. 1 form and 1 XML

XML:

Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Device>
    <Recipe>Axe</Recipe>
    <Rarity>Basic</Rarity>
    <Author>testuser</Author>
    <Information>Information here123</Information>
  </Device>
  <Device>
    <Recipe>Axe</Recipe>
    <Rarity>Basic</Rarity>
    <Author>testuser</Author>
    <Information>Information here123</Information>
  </Device>
  	</Table>
When I only have one lot of information E.G.:

Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Device>
    <Recipe>Axe</Recipe>
    <Rarity>Basic</Rarity>
    <Author>testuser</Author>
    <Information>Information here123</Information>
  </Device>
</Table>

And I run the application, it runs fine displaying the contents in the Datagrid. When I add a second set of information I get the error:

Code:
Could not find schema information for the element
This is my form

Code:
Imports System.Xml
Imports System.Data
Public Class Form1
    Private WithEvents pd As New Printing.PrintDocument
    Private WithEvents ppd As New PrintPreviewDialog
    Private Property iChildFormNumber As Integer
    Dim ds As New DataSet
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim tr As New System.IO.StringReader(My.Resources.Recipes)
        ds.ReadXml(tr)
        DataGridView1.DataSource = ds.Tables(0)
    End Sub
    Private Sub btnRecipesFilter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRecipesFilter.Click
        ds.Tables(0).DefaultView.RowFilter = "[Recipe] like '%" & tbRecipes.Text & "%'"
        DataGridView1.DataSource = ds.Tables(0)
    End Sub
    Private Sub btnRarity_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRarity.Click
        ds.Tables(0).DefaultView.RowFilter = "[Rarity] like '%" & tbRarity.Text & "%'"
        DataGridView1.DataSource = ds.Tables(0)
    End Sub
    Private Sub btnAuthorFilter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAuthorFilter.Click
        ds.Tables(0).DefaultView.RowFilter = "[Author] like '%" & tbAuthor.Text & "%'"
        DataGridView1.DataSource = ds.Tables(0)
    End Sub
    Private Sub btnInformationFilter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInformationFilter.Click
        ds.Tables(0).DefaultView.RowFilter = "[Information] like '%" & tbInformation.Text & "%'"
        DataGridView1.DataSource = ds.Tables(0)
    End Sub
    Private Sub tbRecipes_TextChanged(sender As Object, e As EventArgs) Handles tbRecipes.TextChanged
        ds.Tables(0).DefaultView.RowFilter = "[Recipes] like '%" & tbRecipes.Text & "%'"
        DataGridView1.DataSource = ds.Tables(0)
    End Sub
    Private Sub tbRarity_TextChanged(sender As Object, e As EventArgs) Handles tbRarity.TextChanged
        ds.Tables(0).DefaultView.RowFilter = "[Rarity] like '%" & tbRarity.Text & "%'"
        DataGridView1.DataSource = ds.Tables(0)
    End Sub
    Private Sub tbAuthor_TextChanged(sender As Object, e As EventArgs) Handles tbAuthor.TextChanged
        ds.Tables(0).DefaultView.RowFilter = "[Author] like '%" & tbAuthor.Text & "%'"
        DataGridView1.DataSource = ds.Tables(0)
    End Sub
    Private Sub tbInformation_TextChanged(sender As Object, e As EventArgs) Handles tbInformation.TextChanged
        ds.Tables(0).DefaultView.RowFilter = "[Information] like '%" & tbInformation.Text & "%'"
        DataGridView1.DataSource = ds.Tables(0)
    End Sub

    Private Sub PrintToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PrintToolStripMenuItem.Click
        ppd.Document = pd
        ppd.WindowState = FormWindowState.Maximized
        ppd.ShowDialog()
    End Sub
    Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs)
        ' this assumes that the selection will fit on a single page
        ' it gets rather more complicated if you want multipage
        e.Graphics.DrawString(My.Computer.Clipboard.GetDataObject.GetData("Text", True).ToString, DataGridView1.Font, Brushes.Black, New Point(0, 0))
    End Sub
    Private Sub pd_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles pd.PrintPage
        Dim startX As Integer = 50
        Dim startY As Integer = 50

        Dim sf As New StringFormat
        sf.Alignment = StringAlignment.Near
        sf.LineAlignment = StringAlignment.Center

        Dim cells() As DataGridViewCell = DataGridView1.SelectedCells.Cast(Of DataGridViewCell).OrderBy(Function(c) c.OwningRow.Index).ThenBy(Function(c) c.OwningColumn.Index).ToArray

        For x As Integer = 0 To cells.Count - 1
            Dim cell As DataGridViewCell = cells(x)
            e.Graphics.DrawRectangle(Pens.Black, New Rectangle(startX, startY, cell.Size.Width, cell.Size.Height))
            e.Graphics.DrawString(cell.Value.ToString, DataGridView1.Font, Brushes.Black, New Rectangle(startX, startY, cell.Size.Width, cell.Size.Height), sf)
            If x < cells.Count - 1 AndAlso cells(x + 1).OwningRow Is cells(x).OwningRow Then
                startX += cell.Size.Width
            End If
            If x < cells.Count - 1 AndAlso cells(x + 1).OwningRow IsNot cells(x).OwningRow Then
                startX = 50
                startY += cell.Size.Height
            End If
        Next

    End Sub
End Class
I am in the process of adding the option so when I type into the search it scans through the text and starts displaying the results, hence why I have leave lines still in there e.g. :

Code:
ds.Tables(0).DefaultView.RowFilter = "[Recipe] like '%" & tbRecipes.Text & "%'"
        DataGridView1.DataSource = ds.Tables(0)
Any ideas please.

Thank you.