I am parsing through a pretty large file with xmerl_sax_parser:file() and get an exception half-way through. \[code\]exception throw: {'EXIT',{undef,[{xmerl_sax_parser_utf8,cf, [<<"?">>, {xmerl_sax_parser_state}]}]}}\[/code\]I have looked at the data and it doesn't not contain any weird chars and if it did how can I handle it. The documentation does not tell me anything.Here is what the code looks like:\[code\]run(FileName) ->{ok, Xml, _Rest} = xmerl_sax_parser:file(FileName, [{event_fun, fun event/3}, {event_state, {[], ""}}, {encoding, utf8}, {file_type, normal}, skip_external_dtd]),Xml.event(_Ev = {startElement, _, "product", _, _}, _Loc, _State = {Xml, _}) ->{[[]|Xml], ""};event(_Event = {characters, Chars}, _Location, _State = {Quotes, _}) ->{Quotes, Chars};event(_Ev = {endElement,_,"stock",_},_L,_State = {[Data|Rest],Chars}) -> Element = list_to_atom("name"), Updated = [{Element, Chars}|Data], {[Updated|Rest], undefined};event(_Ev = {endElement,_,"date",_},_L,_State = {[Data|Rest],Chars}) -> Element = list_to_atom("brand"), Updated = [{Element, Chars}|Data], {[Updated|Rest], undefined};event(_Ev = {endElement,_,"open",_},_L,_State = {[Data|Rest],Chars}) -> Element = list_to_atom("price"), Updated = [{Element, Chars}|Data], {[Updated|Rest], undefined};event(_Ev = {endElement,_,"low",_},_L,_State = {[Data|Rest],Chars}) -> Element = list_to_atom("url"), Updated = [{Element, Chars}|Data], {[Updated|Rest], undefined};event(_Ev = {endElement,_,"stats",_},_L,_State = {[Data|Rest],Chars}) -> Element = list_to_atom("category"), Updated = [{Element, Chars}|Data], {[Updated|Rest], undefined};event(_Event, _Location, State) ->State.\[/code\]Any thoughts of how to fix or handle properly?