From 00294041cd3c6f66598a50b57abf27e6a35e277f Mon Sep 17 00:00:00 2001 From: Lars Thorsen Date: Thu, 12 Jan 2017 16:49:40 +0100 Subject: [xmerl] Correct bug handling multiple documents on a stream Change how to interpret end of document to comply with Tim Brays comment on the standard. This makes it possible to handle more than one doc on a stream, the standard makes it impossible to know when the document is ended without waiting for the next document (and not always even that). Tim Brays comment about the trailing "Misc" rule: The fact that you're allowed some trailing junk after the root element, I decided (but unfortunately too late) is a real design error in XML. If I'm writing a network client, I'm probably going to close the link as soon as a I see the root element end-tag, and not depend on the other end closing it down properly. Furthermore, if I want to send a succession of XML documents over a network link, if I find a processing instruction after a root element, is it a trailer on the previous document, or part of the prolog of the next? --- .../xmerl_sax_stream_one.xml | 17 +++++++++++ .../xmerl_sax_stream_one_junk.xml | 18 ++++++++++++ .../xmerl_sax_stream_two.xml | 34 ++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 lib/xmerl/test/xmerl_sax_stream_SUITE_data/xmerl_sax_stream_one.xml create mode 100644 lib/xmerl/test/xmerl_sax_stream_SUITE_data/xmerl_sax_stream_one_junk.xml create mode 100644 lib/xmerl/test/xmerl_sax_stream_SUITE_data/xmerl_sax_stream_two.xml (limited to 'lib/xmerl/test/xmerl_sax_stream_SUITE_data') diff --git a/lib/xmerl/test/xmerl_sax_stream_SUITE_data/xmerl_sax_stream_one.xml b/lib/xmerl/test/xmerl_sax_stream_SUITE_data/xmerl_sax_stream_one.xml new file mode 100644 index 0000000000..30328bb188 --- /dev/null +++ b/lib/xmerl/test/xmerl_sax_stream_SUITE_data/xmerl_sax_stream_one.xml @@ -0,0 +1,17 @@ + + + +Arne Andersson + +
+ + Old Road 456 + + +12323 + + +Small City + +
+
diff --git a/lib/xmerl/test/xmerl_sax_stream_SUITE_data/xmerl_sax_stream_one_junk.xml b/lib/xmerl/test/xmerl_sax_stream_SUITE_data/xmerl_sax_stream_one_junk.xml new file mode 100644 index 0000000000..f730a95865 --- /dev/null +++ b/lib/xmerl/test/xmerl_sax_stream_SUITE_data/xmerl_sax_stream_one_junk.xml @@ -0,0 +1,18 @@ + + + +Arne Andersson + +
+ + Old Road 456 + + +12323 + + +Small City + +
+
+this is junk ...... diff --git a/lib/xmerl/test/xmerl_sax_stream_SUITE_data/xmerl_sax_stream_two.xml b/lib/xmerl/test/xmerl_sax_stream_SUITE_data/xmerl_sax_stream_two.xml new file mode 100644 index 0000000000..e241a02190 --- /dev/null +++ b/lib/xmerl/test/xmerl_sax_stream_SUITE_data/xmerl_sax_stream_two.xml @@ -0,0 +1,34 @@ + + + +Arne Andersson + +
+ + Old Road 456 + + +12323 + + +Small City + +
+
+ + + +Bertil Bengtson + +
+ + New Road 4 + + +12328 + + +Small City + +
+
-- cgit v1.2.3