Note that this particular example will work with the program,
because the regex is anchored at the start of the line. However,
in general it is possible that a "fake" XML declaration will
appear at the beginning of a line, so it is a good point. For example:
<![CDATA[
<?xml version="1.0"?> ]]>
Also, while playing with the little program I wrote, I used the
cat command to concatenate a bunch of XML files I have, and
discovered that some of them did not have an end-of-line at
the end of the last line, so the result would be like this:
</ESP-Component><?xml version="1.0"?>
Where the start declaration of one file would end up on
the same line as the closing declaration of the previous
file. In this case, this simple mechanism for recognizing
when a file starts would not work, obviously.
Of course, I agree that some other packing method would be
much better. But people do weird things... :-)
--ZZamboni