Libxml declares a number of data types we
will encounter repeatedly, hiding the messy stuff so you do not have to deal
with it unless you have some specific need.
A basic replacement for char, a byte in a UTF-8 encoded
string. If your data uses another encoding, it must be converted to
UTF-8 for use with libxml's
functions. More information on encoding is available on the libxml encoding support web page.