Shredding Nested XML from SQL Server Table

use sqlteam
go

declare @xml xml = 
'<Msg>
<sMain>
  <ID>1234</ID>
</sMain>
<rOut xmlns:xsi="http://www.w6.org/xe/XMLdata-load"
      xmlns:xsd="http://www.foobar.org/my/schema"
      xmlns="http://www.w3.org/2001/results">
  <Header>
    <Flag>Y</Flag>
  </Header>
  <Body>
    <RequestedBy>John Doe</RequestedBy>
    <Feed>
      <Xaxis>
        <Val1>120</Val1>
        <BigValues>
          <Val2>230</Val2>
          <Val3>250</Val3>
        </BigValues>
        <SmallValues>158</SmallValues>
       </Xaxis>
      </Feed>
    </Body>
 </rOut>
</Msg>'

select @xml.value('(//*[local-name()="ID"])[1]', 'int') ID,
       @xml.value('(//*[local-name()="Flag"])[1]', 'nvarchar(max)') Flag,
       @xml.value('(//*[local-name()="RequestedBy"])[1]', 'nvarchar(max)') as RequestedBy,
	   @xml.value('(//*[local-name()="Val1"])[1]', 'nvarchar(max)') as Val1,
	   @xml.value('(//*[local-name()="Val2"])[1]', 'nvarchar(max)') as Val2,
	   @xml.value('(//*[local-name()="Val3"])[1]', 'nvarchar(max)') as Val3,
	   @xml.value('(//*[local-name()="SmallValues"])[1]', 'nvarchar(max)') as SmallValues