Querying XML data in SQL – XML Raw

Below code shows 1.retrieving the data using XML raw and 2.querying the XML data using TSQL. I referred AdventureWorks database tables in the example,
--Generates XML data and inserts into the XML column.
Declare @a table(sno int,sname xml)
Insert into @a(sno,sname)
Select 1,(Select FirstName,LastName,PhoneNumber
from Person.Person Left Outer Join Person.PersonPhone
on Person.BusinessEntityID=PersonPhone.BusinessEntityID
where Person.BusinessEntityID<6 for XML RAW('PersonDetails'))

--Verify the data
Select * from @a

--TSQL Query to get the output from the XML column
Select Sno,Name.value('(@FirstName)[1]','varchar(20)') as [FirstName],
Name.value('(@LastName)[1]','varchar(20)') as [LastName],
Name.value('(@PhoneNumber)[1]','varchar(20)') as [PhoneNumber]
from @a cross apply sname.nodes('/PersonDetails') as Person(Name)

Output : ForXmlRAW