The query generates a sequence of nodes and other values.
How the sequence is serialized into real XML is a matter for the specific processor to decide.
Saxon gives slightly prettier output if you use the -wrap option:
% java -classpath saxon8.jar net.sf.saxon.Query -wrap query1
<?xml version="1.0" encoding="UTF-8"?>
<result:sequence xmlns:result="http://saxon.sf.net/xquery-results">
<result:element>
<title>TCP/IP Illustrated</title>
</result:element>
<result:element>
<title>Advanced Programming in the Unix Environment</title>
</result:element>
<result:element>
<title>Data on the Web</title>
</result:element>
<result:element>
<title>The Economics of Technology and Content for Digital TV</title>
</result:element>
</result:sequence>