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 -cp saxon7.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>