[RESOLVIDO]Erro ao exibir XML: target matching "[xX][mM][lL]" is not allowed

Bom dia,

estou fazendo o exemplo do livro do Edson Gonçalves, e tenho o XML abaixo:

<linha1>
<?xml version="1.0" encoding="ISO-8859-1"?>
<modalidadesrateio>
  <modalidaderateio>
    <id>1</id>
    <nome>Overhead</nome>
  </modalidaderateio>
  <modalidaderateio>
    <id>2</id>
    <nome>Pro-rata</nome>
  </modalidaderateio>
</modalidadesrateio>

E o JSP abaixo:

<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Manipulando arquivos XML</title>
    </head>
    <body>
      <c:import url="modrateio.xml" var="url" />
      <x:parse xml="${url}" var="doc" scope="application" />

      <table border="1" align="center">
        <tr>
          <td align="center">ID</td>
          <td align="left">Nome</td>
        </tr>
        <x:forEach select="$doc/modalidadesrateio/modalidaderateio" var="mod">
          <tr>
            <td><x:out select="$mod/id" /></td>
            <td><x:out select="$mod/nome" /></td>
          </tr>
        </x:forEach>
      </table>
    </body>
</html>

Daí quando vou executar surge o erro

exception 
javax.servlet.ServletException: org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
root cause 
org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.

Alguém já viu este erro?

 <linha1>  
 <?xml version="1.0" encoding="ISO-8859-1"?>  

O arquivo que você passou não é um XML válido.
a) A tag não está fechada
b) A instrução de pré-processamento <?xml> deve aparecer na primeira linha.

O XML não pode ter o [linha1] conforme está no livro. Aliás este livro confunde a gente !

Obrigado entanglement.

Sei lá, eu to achando muito bom o livro.