Merge lp:~nbrinza/zorba/parse-fragment into lp:zorba

Proposed by Nicolae Brinza
Status: Merged
Approved by: Chris Hillery
Approved revision: 10547
Merged at revision: 11208
Proposed branch: lp:~nbrinza/zorba/parse-fragment
Merge into: lp:zorba
Diff against target: 459 lines (+362/-6)
6 files modified
ChangeLog (+8/-0)
src/store/naive/loader.h (+2/-1)
src/store/naive/loader_dtd.cpp (+22/-5)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-57.xml.res (+159/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/bad.xml (+158/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-57.xq (+13/-0)
To merge this branch: bzr merge lp:~nbrinza/zorba/parse-fragment
Reviewer Review Type Date Requested Status
Chris Hillery Approve
Nicolae Brinza Approve
Review via email: mp+144007@code.launchpad.net

This proposal supersedes a proposal from 2013-01-16.

Commit message

Fix for bugs #1099535 #1099648 and #1088886

Description of the change

Fix for bugs #1099535 #1099648 and #1088886

To post a comment you must log in.
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote : Posted in a previous version of this proposal
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote : Posted in a previous version of this proposal

Validation queue job parse-fragment-2013-01-16T14-41-25.479Z is finished. The final status was:

All tests succeeded!

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote : Posted in a previous version of this proposal

Voting does not meet specified criteria. Required: Approve > 1, Disapprove < 1, Needs Fixing < 1, Pending < 1. Got: 1 Pending.

Revision history for this message
Nicolae Brinza (nbrinza) : Posted in a previous version of this proposal
review: Approve
Revision history for this message
Nicolae Brinza (nbrinza) :
review: Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

The attempt to merge lp:~nbrinza/zorba/parse-fragment into lp:zorba failed. Below is the output from the failed tests.

CMake Error at /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake:275 (message):
  Validation queue job parse-fragment-2013-01-20T01-35-16.016Z is finished.
  The final status was:

  21 tests did not succeed - changes not commited.

Error in read script: /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

The attempt to merge lp:~nbrinza/zorba/parse-fragment into lp:zorba failed. Below is the output from the failed tests.

CMake Error at /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake:275 (message):
  Validation queue job parse-fragment-2013-01-20T02-23-09.94Z is finished.
  The final status was:

  22 tests did not succeed - changes not commited.

Error in read script: /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

The attempt to merge lp:~nbrinza/zorba/parse-fragment into lp:zorba failed. Below is the output from the failed tests.

CMake Error at /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake:275 (message):
  Validation queue job parse-fragment-2013-01-20T14-06-13.72Z is finished.
  The final status was:

  21 tests did not succeed - changes not commited.

Error in read script: /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake

Revision history for this message
Sorin Marian Nasoi (sorin.marian.nasoi) wrote :

I can confirm that all "parse" and "parse-xml-fragment" tests pass on my Fedora x64 bit machine.

Revision history for this message
Chris Hillery (ceejatec) wrote :

I've fixed the RQ problem that caused the JDBC and Oracle NoSQL failures. However, the 4 XQXQ failures I don't understand yet.

Revision history for this message
Chris Hillery (ceejatec) wrote :

Think I've fixed it; trying again.

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Nicolae Brinza (nbrinza) wrote :

Yeah, there were some weird failures in the RQ -- the JDBC ones and around 3 URI tests that did not fail on my machine.

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job parse-fragment-2013-01-21T08-58-10.778Z is finished. The final status was:

All tests succeeded!

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Voting does not meet specified criteria. Required: Approve > 1, Disapprove < 1, Needs Fixing < 1, Pending < 1. Got: 1 Approve, 1 Pending.

Revision history for this message
Chris Hillery (ceejatec) wrote :

Confirmed that this fixes both outstanding Fedora bugs (tested on Fedora) as well as the infinite-loop bug (tested on Ubuntu). Yay!

review: Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job parse-fragment-2013-01-30T01-53-04.029Z is finished. The final status was:

All tests succeeded!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'ChangeLog'
--- ChangeLog 2013-01-14 09:46:44 +0000
+++ ChangeLog 2013-01-20 00:28:21 +0000
@@ -1,6 +1,14 @@
1Zorba - The XQuery Processor1Zorba - The XQuery Processor
22
33
4version 2.9
5
6Bug Fixes/Other Changes:
7 * Fixed bug #1099648 and #1088886 (XML parsing failures on Red Hat)
8 * Fixed bug #1099535 (xml:parse endless loop)
9
10
11
4version 2.812version 2.8
513
6New Features:14New Features:
715
=== modified file 'src/store/naive/loader.h'
--- src/store/naive/loader.h 2012-09-19 21:16:15 +0000
+++ src/store/naive/loader.h 2013-01-20 00:28:21 +0000
@@ -261,7 +261,8 @@
261 const FragmentIStream* getFragmentStream() const { return theFragmentStream; };261 const FragmentIStream* getFragmentStream() const { return theFragmentStream; };
262 262
263protected:263protected:
264 bool fillBuffer(FragmentIStream* theFragmentStream);264 // returns true if the input buffer is not yet fully consumed
265 bool fillBuffer(FragmentIStream* theFragmentStream);
265266
266 unsigned long getCurrentInputOffset() const;267 unsigned long getCurrentInputOffset() const;
267268
268269
=== modified file 'src/store/naive/loader_dtd.cpp'
--- src/store/naive/loader_dtd.cpp 2012-09-19 21:16:15 +0000
+++ src/store/naive/loader_dtd.cpp 2013-01-20 00:28:21 +0000
@@ -149,6 +149,7 @@
149{149{
150}150}
151151
152// returns true if the input buffer is not yet fully consumed
152bool FragmentXmlLoader::fillBuffer(FragmentIStream* theFragmentStream)153bool FragmentXmlLoader::fillBuffer(FragmentIStream* theFragmentStream)
153{154{
154 if (theFragmentStream->ctxt->input->length > 0 && theFragmentStream->current_offset < theFragmentStream->bytes_in_buffer)155 if (theFragmentStream->ctxt->input->length > 0 && theFragmentStream->current_offset < theFragmentStream->bytes_in_buffer)
@@ -175,6 +176,7 @@
175 theFragmentStream->ctxt->input->length = (theFragmentStream->bytes_in_buffer < (theFragmentStream->theBuffer.size()-1) ? theFragmentStream->bytes_in_buffer : (theFragmentStream->theBuffer.size()-1));176 theFragmentStream->ctxt->input->length = (theFragmentStream->bytes_in_buffer < (theFragmentStream->theBuffer.size()-1) ? theFragmentStream->bytes_in_buffer : (theFragmentStream->theBuffer.size()-1));
176 theFragmentStream->ctxt->input->cur = theFragmentStream->ctxt->input->base;177 theFragmentStream->ctxt->input->cur = theFragmentStream->ctxt->input->base;
177 theFragmentStream->ctxt->input->end = theFragmentStream->ctxt->input->base + theFragmentStream->ctxt->input->length;178 theFragmentStream->ctxt->input->end = theFragmentStream->ctxt->input->base + theFragmentStream->ctxt->input->length;
179 theFragmentStream->ctxt->checkIndex = 0; // this needs to be reset to force LibXml2 to rescan the buffer. Otherwise it might fail to detect opening/closing tags in certain inputs
178 180
179 if (theFragmentStream->bytes_in_buffer < theFragmentStream->theBuffer.size()-1)181 if (theFragmentStream->bytes_in_buffer < theFragmentStream->theBuffer.size()-1)
180 theFragmentStream->theBuffer[theFragmentStream->bytes_in_buffer] = 0;182 theFragmentStream->theBuffer[theFragmentStream->bytes_in_buffer] = 0;
@@ -241,7 +243,9 @@
241243
242 // Initialize the parser input (only filename and the pointer to the current char)244 // Initialize the parser input (only filename and the pointer to the current char)
243 theFragmentStream->theBuffer[0] = ' '; // This assignment is needed for LibXml2-2.7.6, which tries to read the buffer when xmlPushInput() is called245 theFragmentStream->theBuffer[0] = ' '; // This assignment is needed for LibXml2-2.7.6, which tries to read the buffer when xmlPushInput() is called
244 input->cur = (xmlChar*)(&theFragmentStream->theBuffer[0]);246 input->base = (xmlChar*)(&theFragmentStream->theBuffer[0]);
247 input->cur = input->base;
248 // input->cur = (xmlChar*)(&theFragmentStream->theBuffer[0]);
245 input->filename = (const char*)(xmlCanonicPath((const xmlChar*)theDocUri.c_str()));249 input->filename = (const char*)(xmlCanonicPath((const xmlChar*)theDocUri.c_str()));
246 xmlPushInput(theFragmentStream->ctxt, input);250 xmlPushInput(theFragmentStream->ctxt, input);
247 }251 }
@@ -250,6 +254,8 @@
250 theFragmentStream->ctxt->disableSAX = false; // xmlStopParser() sets disableSAX to true254 theFragmentStream->ctxt->disableSAX = false; // xmlStopParser() sets disableSAX to true
251 theFragmentStream->parsed_nodes_count = 0;255 theFragmentStream->parsed_nodes_count = 0;
252 theFragmentStream->forced_parser_stop = false;256 theFragmentStream->forced_parser_stop = false;
257
258 // theFragmentStream->ctxt->progressive = 1;
253259
254 if (theFragmentStream->state != FragmentIStream::FRAGMENT_FIRST_START_DOC)260 if (theFragmentStream->state != FragmentIStream::FRAGMENT_FIRST_START_DOC)
255 {261 {
@@ -257,7 +263,8 @@
257 FragmentXmlLoader::startDocument(theFragmentStream->ctxt->userData);263 FragmentXmlLoader::startDocument(theFragmentStream->ctxt->userData);
258 }264 }
259265
260 while ( ! theFragmentStream->forced_parser_stop && fillBuffer(theFragmentStream))266 bool buffer_not_consumed;
267 while ( ! theFragmentStream->forced_parser_stop && (buffer_not_consumed = fillBuffer(theFragmentStream)))
261 {268 {
262 if (theFragmentStream->only_one_doc_node && theFragmentStream->state != FragmentIStream::FRAGMENT_FIRST_START_DOC)269 if (theFragmentStream->only_one_doc_node && theFragmentStream->state != FragmentIStream::FRAGMENT_FIRST_START_DOC)
263 {270 {
@@ -316,9 +323,17 @@
316 }323 }
317 324
318 /*325 /*
326 std::string buffer = (char*)theFragmentStream->ctxt->input->cur;
327 if (theFragmentStream->ctxt->input->length < buffer.size())
328 buffer = buffer.substr(0, theFragmentStream->ctxt->input->length);
319 std::cerr << "\n==================\n--> skip_root: " << theFragmentStream->root_elements_to_skip << " current_depth: " << theFragmentStream->current_element_depth 329 std::cerr << "\n==================\n--> skip_root: " << theFragmentStream->root_elements_to_skip << " current_depth: " << theFragmentStream->current_element_depth
320 << " state: " << theFragmentStream->ctxt->instate 330 << " state: " << theFragmentStream->ctxt->instate
321 << " about to parse: [" << theFragmentStream->ctxt->input->cur << "] " << std::endl;331 << " about to parse: [";
332 if (buffer.size() > 500)
333 std::cerr << buffer.substr(0, 160) << "\n...\n" << buffer.substr(buffer.size()-160);
334 else
335 std::cerr << theFragmentStream->ctxt->input->cur;
336 std::cerr << "] " << std::endl;
322 */337 */
323 338
324 xmlParseChunk(theFragmentStream->ctxt, (const char*)theFragmentStream->ctxt->input->cur,339 xmlParseChunk(theFragmentStream->ctxt, (const char*)theFragmentStream->ctxt->input->cur,
@@ -332,8 +347,10 @@
332 xmlParseCharData(theFragmentStream->ctxt, 0);347 xmlParseCharData(theFragmentStream->ctxt, 0);
333 theFragmentStream->current_offset = getCurrentInputOffset(); // update current offset348 theFragmentStream->current_offset = getCurrentInputOffset(); // update current offset
334 349
335 if (theXQueryDiagnostics->errors().empty() && theFragmentStream->current_offset == 0 && theFragmentStream->ctxt->checkIndex > 0)350 if (theXQueryDiagnostics->errors().empty() && theFragmentStream->current_offset == 0)
336 {351 {
352 assert(buffer_not_consumed == true);
353
337 // we still haven't moved, double the buffer size354 // we still haven't moved, double the buffer size
338 theFragmentStream->theBuffer.resize((theFragmentStream->theBuffer.size()-1) * 2 + 1);355 theFragmentStream->theBuffer.resize((theFragmentStream->theBuffer.size()-1) * 2 + 1);
339 theFragmentStream->ctxt->input->base = (xmlChar*)(&theFragmentStream->theBuffer[0]);356 theFragmentStream->ctxt->input->base = (xmlChar*)(&theFragmentStream->theBuffer[0]);
340357
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-57.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-57.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-57.xml.res 2013-01-20 00:28:21 +0000
@@ -0,0 +1,159 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3<record xmlns="http://www.loc.gov/MARC21/slim">
4 <leader>01428cam a2200313 a 4500</leader>
5 <controlfield tag="001">2</controlfield>
6 <controlfield tag="005">20060629073726.0</controlfield>
7 <controlfield tag="007">cr |||||||||||</controlfield>
8 <controlfield tag="008">990629s1900 maua 000 1 eng </controlfield>
9 <datafield tag="906" ind1=" " ind2=" ">
10 <subfield code="a">7</subfield>
11 <subfield code="b">ibc</subfield>
12 <subfield code="c">orignew</subfield>
13 <subfield code="d">u</subfield>
14 <subfield code="e">ocip</subfield>
15 <subfield code="f">19</subfield>
16 <subfield code="g">y-gencatlg</subfield>
17 </datafield>
18 <datafield tag="955" ind1=" " ind2=" ">
19 <subfield code="a">NEW INPUT vj36 06-29-99</subfield>
20 <subfield code="e">vj05 2002-04-03</subfield>
21 </datafield>
22 <datafield tag="035" ind1=" " ind2=" ">
23 <subfield code="9">(DLC) 00002266</subfield>
24 </datafield>
25 <datafield tag="010" ind1=" " ind2=" ">
26 <subfield code="a"> 00002266 </subfield>
27 </datafield>
28 <datafield tag="040" ind1=" " ind2=" ">
29 <subfield code="a">DLC</subfield>
30 <subfield code="c">DLC</subfield>
31 <subfield code="d">DLC</subfield>
32 </datafield>
33 <datafield tag="050" ind1="0" ind2="0">
34 <subfield code="a">PZ3.L846</subfield>
35 <subfield code="b">So</subfield>
36 </datafield>
37 <datafield tag="051" ind1=" " ind2=" ">
38 <subfield code="a">PS3523.O46</subfield>
39 <subfield code="b">S72 1900</subfield>
40 </datafield>
41 <datafield tag="100" ind1="1" ind2=" ">
42 <subfield code="a">London, Jack,</subfield>
43 <subfield code="d">1876-1916.</subfield>
44 </datafield>
45 <datafield tag="245" ind1="1" ind2="4">
46 <subfield code="a">The son of the wolf :</subfield>
47 <subfield code="b">tales of the far North /</subfield>
48 <subfield code="c">by Jack London.</subfield>
49 </datafield>
50 <datafield tag="246" ind1="3" ind2="0">
51 <subfield code="a">Tales of the far North</subfield>
52 </datafield>
53 <datafield tag="260" ind1=" " ind2=" ">
54 <subfield code="a">Boston :</subfield>
55 <subfield code="b">Houghton, Mifflin,</subfield>
56 <subfield code="c">1900.</subfield>
57 </datafield>
58 <datafield tag="300" ind1=" " ind2=" ">
59 <subfield code="a">251 p. :</subfield>
60 <subfield code="b">1 ill. ;</subfield>
61 <subfield code="c">20 cm.</subfield>
62 </datafield>
63 <datafield tag="500" ind1=" " ind2=" ">
64 <subfield code="a">These tales appeared previously in the Overland monthly, 1899, and the Atlantic monthly.</subfield>
65 </datafield>
66 <datafield tag="505" ind1="0" ind2=" ">
67 <subfield code="a">The white silence -- The son of the wolf -- The men of Forty-Mile -- In a far country -- To the man on trail -- The priestly prerogative -- The wisdom of the trail -- The wife of a king -- An odyssey of the North.</subfield>
68 </datafield>
69 <datafield tag="530" ind1=" " ind2=" ">
70 <subfield code="a">Also available in digital form on the Library of Congress Web site.</subfield>
71 </datafield>
72 <datafield tag="856" ind1="4" ind2="1">
73 <subfield code="d">mtfrb</subfield>
74 <subfield code="f">02266</subfield>
75 <subfield code="q">h</subfield>
76 <subfield code="u">http://hdl.loc.gov/loc.rbc/mtfrb.02266</subfield>
77 </datafield>
78 <datafield tag="859" ind1="4" ind2="2">
79 <subfield code="3">Meeting of Frontiers: Siberia, Alaska, and the American West - "Rare Book Collections" Collection Description</subfield>
80 <subfield code="u">http://hdl.loc.gov/loc.eur/mtfhtml.0054</subfield>
81 </datafield>
82 <datafield tag="984" ind1=" " ind2=" ">
83 <subfield code="a">gsl</subfield>
84 </datafield>
85 <datafield tag="985" ind1=" " ind2=" ">
86 <subfield code="a">mtfront/mtfrb/tx</subfield>
87 <subfield code="e">intldl</subfield>
88 </datafield>
89 <datafield tag="985" ind1=" " ind2=" ">
90 <subfield code="a">pmpull</subfield>
91 <subfield code="e">intldl</subfield>
92 </datafield>
93</record>
94<record xmlns="http://www.loc.gov/MARC21/slim">
95 <leader>00757cam a22002171 4500</leader>
96 <controlfield tag="001">3</controlfield>
97 <controlfield tag="005">20080606094929.0</controlfield>
98 <controlfield tag="008">980227s1900 iluc 000 0 eng </controlfield>
99 <datafield tag="035" ind1=" " ind2=" ">
100 <subfield code="9">(DLC) 00004790</subfield>
101 </datafield>
102 <datafield tag="906" ind1=" " ind2=" ">
103 <subfield code="a">0</subfield>
104 <subfield code="b">ibc</subfield>
105 <subfield code="c">orignew</subfield>
106 <subfield code="d">3</subfield>
107 <subfield code="e">ocip</subfield>
108 <subfield code="f">19</subfield>
109 <subfield code="g">y-gencatlg</subfield>
110 </datafield>
111 <datafield tag="955" ind1=" " ind2=" ">
112 <subfield code="a">jd99 02-27-98</subfield>
113 </datafield>
114 <datafield tag="010" ind1=" " ind2=" ">
115 <subfield code="a"> 00004790 </subfield>
116 </datafield>
117 <datafield tag="040" ind1=" " ind2=" ">
118 <subfield code="a">DLC</subfield>
119 <subfield code="c">DLC</subfield>
120 </datafield>
121 <datafield tag="050" ind1="0" ind2="0">
122 <subfield code="a">PG3385</subfield>
123 <subfield code="b">.S85</subfield>
124 </datafield>
125 <datafield tag="100" ind1="1" ind2=" ">
126 <subfield code="a">Stockham, Alice B.</subfield>
127 <subfield code="q">(Alice Bunker),</subfield>
128 <subfield code="d">1833-1912.</subfield>
129 </datafield>
130 <datafield tag="245" ind1="1" ind2="0">
131 <subfield code="a">Tolstoi, a man of peace,</subfield>
132 <subfield code="c">by Alice B. Stockham. The new spirit by H. Havelock Ellis.</subfield>
133 </datafield>
134 <datafield tag="260" ind1=" " ind2=" ">
135 <subfield code="a">Chicago,</subfield>
136 <subfield code="b">A.B. Stockham,</subfield>
137 <subfield code="c">[1900]</subfield>
138 </datafield>
139 <datafield tag="300" ind1=" " ind2=" ">
140 <subfield code="a">140 p.</subfield>
141 <subfield code="b">ports.</subfield>
142 <subfield code="c">18 cm.</subfield>
143 </datafield>
144 <datafield tag="500" ind1=" " ind2=" ">
145 <subfield code="a">"The new spirit" (p. [85]-140) has special t.-p.</subfield>
146 </datafield>
147 <datafield tag="600" ind1="1" ind2="0">
148 <subfield code="a">Tolstoy, Leo,</subfield>
149 <subfield code="c">graf,</subfield>
150 <subfield code="d">1828-1910.</subfield>
151 </datafield>
152 <datafield tag="700" ind1="1" ind2="2">
153 <subfield code="a">Ellis, Havelock,</subfield>
154 <subfield code="d">1859-1939.</subfield>
155 <subfield code="t">New spirit.</subfield>
156 <subfield code="f">1900.</subfield>
157 </datafield>
158</record>
159
0160
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/bad.xml'
--- test/rbkt/Queries/zorba/parsing_and_serializing/bad.xml 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/bad.xml 2013-01-20 00:28:21 +0000
@@ -0,0 +1,158 @@
1<collection xmlns="http://www.loc.gov/MARC21/slim">
2<record>
3 <leader>01428cam a2200313 a 4500</leader>
4 <controlfield tag="001">2</controlfield>
5 <controlfield tag="005">20060629073726.0</controlfield>
6 <controlfield tag="007">cr |||||||||||</controlfield>
7 <controlfield tag="008">990629s1900 maua 000 1 eng </controlfield>
8 <datafield tag="906" ind1=" " ind2=" ">
9 <subfield code="a">7</subfield>
10 <subfield code="b">ibc</subfield>
11 <subfield code="c">orignew</subfield>
12 <subfield code="d">u</subfield>
13 <subfield code="e">ocip</subfield>
14 <subfield code="f">19</subfield>
15 <subfield code="g">y-gencatlg</subfield>
16 </datafield>
17 <datafield tag="955" ind1=" " ind2=" ">
18 <subfield code="a">NEW INPUT vj36 06-29-99</subfield>
19 <subfield code="e">vj05 2002-04-03</subfield>
20 </datafield>
21 <datafield tag="035" ind1=" " ind2=" ">
22 <subfield code="9">(DLC) 00002266</subfield>
23 </datafield>
24 <datafield tag="010" ind1=" " ind2=" ">
25 <subfield code="a"> 00002266 </subfield>
26 </datafield>
27 <datafield tag="040" ind1=" " ind2=" ">
28 <subfield code="a">DLC</subfield>
29 <subfield code="c">DLC</subfield>
30 <subfield code="d">DLC</subfield>
31 </datafield>
32 <datafield tag="050" ind1="0" ind2="0">
33 <subfield code="a">PZ3.L846</subfield>
34 <subfield code="b">So</subfield>
35 </datafield>
36 <datafield tag="051" ind1=" " ind2=" ">
37 <subfield code="a">PS3523.O46</subfield>
38 <subfield code="b">S72 1900</subfield>
39 </datafield>
40 <datafield tag="100" ind1="1" ind2=" ">
41 <subfield code="a">London, Jack,</subfield>
42 <subfield code="d">1876-1916.</subfield>
43 </datafield>
44 <datafield tag="245" ind1="1" ind2="4">
45 <subfield code="a">The son of the wolf :</subfield>
46 <subfield code="b">tales of the far North /</subfield>
47 <subfield code="c">by Jack London.</subfield>
48 </datafield>
49 <datafield tag="246" ind1="3" ind2="0">
50 <subfield code="a">Tales of the far North</subfield>
51 </datafield>
52 <datafield tag="260" ind1=" " ind2=" ">
53 <subfield code="a">Boston :</subfield>
54 <subfield code="b">Houghton, Mifflin,</subfield>
55 <subfield code="c">1900.</subfield>
56 </datafield>
57 <datafield tag="300" ind1=" " ind2=" ">
58 <subfield code="a">251 p. :</subfield>
59 <subfield code="b">1 ill. ;</subfield>
60 <subfield code="c">20 cm.</subfield>
61 </datafield>
62 <datafield tag="500" ind1=" " ind2=" ">
63 <subfield code="a">These tales appeared previously in the Overland monthly, 1899, and the Atlantic monthly.</subfield>
64 </datafield>
65 <datafield tag="505" ind1="0" ind2=" ">
66 <subfield code="a">The white silence -- The son of the wolf -- The men of Forty-Mile -- In a far country -- To the man on trail -- The priestly prerogative -- The wisdom of the trail -- The wife of a king -- An odyssey of the North.</subfield>
67 </datafield>
68 <datafield tag="530" ind1=" " ind2=" ">
69 <subfield code="a">Also available in digital form on the Library of Congress Web site.</subfield>
70 </datafield>
71 <datafield tag="856" ind1="4" ind2="1">
72 <subfield code="d">mtfrb</subfield>
73 <subfield code="f">02266</subfield>
74 <subfield code="q">h</subfield>
75 <subfield code="u">http://hdl.loc.gov/loc.rbc/mtfrb.02266</subfield>
76 </datafield>
77 <datafield tag="859" ind1="4" ind2="2">
78 <subfield code="3">Meeting of Frontiers: Siberia, Alaska, and the American West - &quot;Rare Book Collections&quot; Collection Description</subfield>
79 <subfield code="u">http://hdl.loc.gov/loc.eur/mtfhtml.0054</subfield>
80 </datafield>
81 <datafield tag="984" ind1=" " ind2=" ">
82 <subfield code="a">gsl</subfield>
83 </datafield>
84 <datafield tag="985" ind1=" " ind2=" ">
85 <subfield code="a">mtfront/mtfrb/tx</subfield>
86 <subfield code="e">intldl</subfield>
87 </datafield>
88 <datafield tag="985" ind1=" " ind2=" ">
89 <subfield code="a">pmpull</subfield>
90 <subfield code="e">intldl</subfield>
91 </datafield>
92</record>
93<record>
94 <leader>00757cam a22002171 4500</leader>
95 <controlfield tag="001">3</controlfield>
96 <controlfield tag="005">20080606094929.0</controlfield>
97 <controlfield tag="008">980227s1900 iluc 000 0 eng </controlfield>
98 <datafield tag="035" ind1=" " ind2=" ">
99 <subfield code="9">(DLC) 00004790</subfield>
100 </datafield>
101 <datafield tag="906" ind1=" " ind2=" ">
102 <subfield code="a">0</subfield>
103 <subfield code="b">ibc</subfield>
104 <subfield code="c">orignew</subfield>
105 <subfield code="d">3</subfield>
106 <subfield code="e">ocip</subfield>
107 <subfield code="f">19</subfield>
108 <subfield code="g">y-gencatlg</subfield>
109 </datafield>
110 <datafield tag="955" ind1=" " ind2=" ">
111 <subfield code="a">jd99 02-27-98</subfield>
112 </datafield>
113 <datafield tag="010" ind1=" " ind2=" ">
114 <subfield code="a"> 00004790 </subfield>
115 </datafield>
116 <datafield tag="040" ind1=" " ind2=" ">
117 <subfield code="a">DLC</subfield>
118 <subfield code="c">DLC</subfield>
119 </datafield>
120 <datafield tag="050" ind1="0" ind2="0">
121 <subfield code="a">PG3385</subfield>
122 <subfield code="b">.S85</subfield>
123 </datafield>
124 <datafield tag="100" ind1="1" ind2=" ">
125 <subfield code="a">Stockham, Alice B.</subfield>
126 <subfield code="q">(Alice Bunker),</subfield>
127 <subfield code="d">1833-1912.</subfield>
128 </datafield>
129 <datafield tag="245" ind1="1" ind2="0">
130 <subfield code="a">Tolstoi, a man of peace,</subfield>
131 <subfield code="c">by Alice B. Stockham. The new spirit by H. Havelock Ellis.</subfield>
132 </datafield>
133 <datafield tag="260" ind1=" " ind2=" ">
134 <subfield code="a">Chicago,</subfield>
135 <subfield code="b">A.B. Stockham,</subfield>
136 <subfield code="c">[1900]</subfield>
137 </datafield>
138 <datafield tag="300" ind1=" " ind2=" ">
139 <subfield code="a">140 p.</subfield>
140 <subfield code="b">ports.</subfield>
141 <subfield code="c">18 cm.</subfield>
142 </datafield>
143 <datafield tag="500" ind1=" " ind2=" ">
144 <subfield code="a">&quot;The new spirit&quot; (p. [85]-140) has special t.-p.</subfield>
145 </datafield>
146 <datafield tag="600" ind1="1" ind2="0">
147 <subfield code="a">Tolstoy, Leo,</subfield>
148 <subfield code="c">graf,</subfield>
149 <subfield code="d">1828-1910.</subfield>
150 </datafield>
151 <datafield tag="700" ind1="1" ind2="2">
152 <subfield code="a">Ellis, Havelock,</subfield>
153 <subfield code="d">1859-1939.</subfield>
154 <subfield code="t">New spirit.</subfield>
155 <subfield code="f">1900.</subfield>
156 </datafield>
157</record>
158</collection>
0159
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-57.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-57.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-57.xq 2013-01-20 00:28:21 +0000
@@ -0,0 +1,13 @@
1import module namespace parse-xml = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3import module namespace fetch = "http://www.zorba-xquery.com/modules/fetch";
4
5variable $xmlcontents := fetch:content(resolve-uri("bad.xml"));
6
7let $contents := parse-xml:parse(
8 $xmlcontents,
9 <opt:options>
10 <opt:parse-external-parsed-entity opt:skip-root-nodes="1"/>
11 </opt:options>)
12
13return $contents

Subscribers

People subscribed via source and target branches