(See xmerl.hrl for the record definitions.)
Text in #xmlText{} elements can be deep lists of
characters and/or binaries.

RootAttributes is a list of
#xmlAttribute{} attributes for the #root#
element, which implicitly becomes the parent of the given
Content. The tag-handler function for
#root# is thus called with the complete exported data of
Content. Root attributes can be used to specify
e.g. encoding or other metadata of an XML or HTML document.

The Callback module should contain hook functions for
all tags present in the data structure. A hook function must have the
following format:

Tag(Data, Attributes, Parents, E)

where E is the corresponding #xmlElement{},
Data is the already-exported contents of E
and Attributes is the list of
#xmlAttribute{} records of E. Finally,
Parents is the list of parent nodes of E,
on the form [{ParentTag::atom(),
ParentPosition::integer()}].

The hook function should return either the data to be exported, or
a tuple {'#xml-alias#', NewTag::atom()}, or a tuple
{'#xml-redefine#', Content}, where Content
is a content list (which can be on simple-form; see
export_simple/2 for details).

A callback module can inherit definitions from other callback
modules, through the required function '#xml-interitance#() ->
[ModuleName::atom()].