The attribute name is valid until the next attribute or next node.
This simplifies the code a bit: fewer error paths, and free() calls.
A few potential memory leaks were fixed too.
In my opinion, we do not want to encourage use of this.
On the one hand, our libxml2 catalog support has never been thread-safe
and this seems to have caused problems in the past (looking at the
skins2 comments). On the other hand, the xtag plugin never implemented
catalogs, so XML parsers have to handle unknown XML tags gracefully in
any case.
Also, shipping DTDs with VLC is awkward and arguably a waste of space.