From 96a4a03f1d581810833d26aa9e7ff864ca8255f1 Mon Sep 17 00:00:00 2001 From: Lars Thorsen Date: Fri, 8 Jul 2011 10:56:10 +0200 Subject: Entity replacement in attributes doesn't work poperly. --- lib/xmerl/src/xmerl_scan.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/xmerl/src/xmerl_scan.erl b/lib/xmerl/src/xmerl_scan.erl index 059c8f21b6..e598c5f56d 100644 --- a/lib/xmerl/src/xmerl_scan.erl +++ b/lib/xmerl/src/xmerl_scan.erl @@ -2276,7 +2276,7 @@ scan_att_chars([H|T], S0, H, Acc, TmpAcc,AttType,IsNorm) -> % End quote true -> normalize(Acc,S,IsNorm) end, - {lists:reverse(Acc2), T, S2,IsNorm2}; + {lists:flatten(lists:reverse(Acc2)), T, S2,IsNorm2}; scan_att_chars("&" ++ T, S0, Delim, Acc, TmpAcc,AT,IsNorm) -> % Reference ?bump_col(1), {ExpRef, T1, S1} = scan_reference(T, S), -- cgit v1.2.3 From 5650ad3d33513dac84af045788628e06c1645aa4 Mon Sep 17 00:00:00 2001 From: Lars Thorsen Date: Tue, 9 Aug 2011 14:33:02 +0200 Subject: Added test case for ticket 9411. --- lib/xmerl/test/xmerl_SUITE.erl | 13 ++++++++++++- lib/xmerl/test/xmerl_SUITE_data/misc.tar.gz | Bin 47121 -> 47340 bytes 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/xmerl/test/xmerl_SUITE.erl b/lib/xmerl/test/xmerl_SUITE.erl index 392b2522e8..0c809dbcb6 100644 --- a/lib/xmerl/test/xmerl_SUITE.erl +++ b/lib/xmerl/test/xmerl_SUITE.erl @@ -57,7 +57,8 @@ groups() -> {eventp_tests, [], [sax_parse_and_export]}, {ticket_tests, [], [ticket_5998, ticket_7211, ticket_7214, ticket_7430, - ticket_6873, ticket_7496, ticket_8156, ticket_8697]}, + ticket_6873, ticket_7496, ticket_8156, ticket_8697, + ticket_9411]}, {app_test, [], [{xmerl_app_test, all}]}, {appup_test, [], [{xmerl_appup_test, all}]}]. @@ -575,7 +576,17 @@ ticket_8697(Config) -> ?line [16#545C] = HexEntityText, ok. +ticket_9411(suite) -> []; +ticket_9411(doc) -> + ["Test that xmerl_scan handles attribute that contains for example ""]; +ticket_9411(Config) -> + DataDir = ?config(data_dir,Config), + ?line {ok, Schema} = xmerl_xsd:process_schema(filename:join([DataDir,"misc/ticket_9411.xsd"])), + ?line {ok, Bin} = file:read_file(filename:join([DataDir,"misc/ticket_9411.xml"])), + ?line Xml = erlang:binary_to_list(Bin), + ?line {E, _} = xmerl_scan:string(Xml), + ?line {E, _} = xmerl_xsd:validate(E, Schema). diff --git a/lib/xmerl/test/xmerl_SUITE_data/misc.tar.gz b/lib/xmerl/test/xmerl_SUITE_data/misc.tar.gz index c48a6f897b..fef7431845 100644 Binary files a/lib/xmerl/test/xmerl_SUITE_data/misc.tar.gz and b/lib/xmerl/test/xmerl_SUITE_data/misc.tar.gz differ -- cgit v1.2.3