Full text search in XML documents
If you don't want to write your own parser, the quick and dirty solution would be to replace &lt; and &gt; with some other punctuation, so that the existing parsers don't decide to discard them as html tags.

SELECT * 
FROM xmldocument 
WHERE to_tsvector(regexp_replace(content::text,'[&lt;&gt;]',' ','g')) @@ 'boo2';



  As to why I don't just use ILIKE % etc. the reason is that I need to optimize by using a GIN index and I don't think it is possible or meaningful to build an index on simple VARCHAR values.


If you use the pg_trgm extension, you can build a gin index on VARCHAR values which will optimize ILIKE queries.  How effective it is depends on the size of your indexed documents, and the size of your query.  I'd recommend trying it and seeing how it does for you.   

Version 1.2 of pg_trgm (to be included in PostgreSQL 9.6, but it is fairly easy to back-port into 9.4 and 9.5 if you are willing to compile some code) will be much more effective with large queries.