Did you try to find a solution in BOL (BooksOnLine, the SQL Server help system usually installed together with SQL Server)?
You might find a solution in section "XML Bulk Load [SQLXML], examples".
Another reason might be that you're using a XML document with namespace declaration in it (xmlns:ns0). You could try to remove that definition for testing purpose to see if that's the root cause for the empty table.
A totally different alternative could be calling a stored procedure with the xml data provided as a parameter and deal with the XML shredding using XQuery. But I'm not sure if that would cause a performance drop...