Although I didn't author that chapter I think you are right, the XML is incorrect. The second 'contacts' element needs removing altogether and the attributes moving to the root as you said:
Code:
<?xml version="1.0"?>
<contacts source="Beginning XML 5E" version="1.0"
xmlns="http://www.example.com/contacts"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.com/contacts contacts6.xsd">
<contact person="Joe_Fawcett" tags="author xml poetry">
<name>
<first>Joseph</first>
<first>John</first>
<last>Fawcett</last>
</name>
<location>
<address>Exeter, UK</address>
<latitude>50.7218</latitude>
<longitude>-3.533617</longitude>
</location>
<phone kind="Home">001-234-567-8910</phone>
<knows contacts="John_Doe Danny_Ayers"/>
<description>Joseph is a developer and author for Beginning XML <em>5th edition</em>.<br/>Joseph <strong>loves</strong> XML!</description>
</contact>
<contact person="Liam_Quin" tags="author consultant w3c">
<name>
<first>Liam</first>
<last>Quin</last>
</name>
<location>
<address>Ontario, Canada</address>
</location>
<phone>+1 613 476 8769</phone>
<knows/>
<description>XML Activity Lead at W3C</description>
</contact>
</contacts>