Streaming large xml files using LibExpat package downloaded from GitHub

Hi, I was trying to figure out the source code of the LibExpat package. The following is the part which confuses me.

mutable struct XPCallbacks
        start_cdata::Function
        end_cdata::Function

        comment::Function
        character_data::Function

        default::Function
        default_expand::Function

        start_element::Function
        end_element::Function
end

mutable struct XPStreamHandler{D}
        cbs::XPCallbacks
        parser::XML_Parser
        data::D   
end

What confuses me is, what is exactly XML_Parser ? I can not find it anywhere. The other question is, it is really not easy to find any documentation about the LibExpat package, especially the part to stream large xml files. I was wondering, could anyone help me with any related info? Many thanks.