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

Proposed by Nicolae Brinza
Status: Superseded
Proposed branch: lp:~nbrinza/zorba/parse-fragment
Merge into: lp:zorba
Diff against target: 5713 lines (+2962/-639)
158 files modified
CMakeLists.txt (+15/-5)
ChangeLog (+2/-0)
modules/com/zorba-xquery/www/modules/CMakeLists.txt (+2/-0)
modules/com/zorba-xquery/www/modules/xml-options.xsd (+86/-0)
modules/com/zorba-xquery/www/modules/xml.xq (+238/-4)
src/api/xmldatamanagerimpl.cpp (+72/-38)
src/context/static_context.cpp (+74/-69)
src/context/static_context.h (+4/-3)
src/diagnostics/diagnostic_en.xml (+10/-6)
src/diagnostics/pregenerated/dict_en.cpp (+4/-3)
src/functions/pregenerated/func_parse_fragment.cpp (+7/-21)
src/functions/pregenerated/func_parse_fragment.h (+3/-3)
src/functions/pregenerated/function_enum.h (+1/-2)
src/runtime/parsing_and_serializing/fragment_istream.h (+54/-10)
src/runtime/parsing_and_serializing/parse_fragment_impl.cpp (+167/-168)
src/runtime/parsing_and_serializing/pregenerated/parse_fragment.h (+1/-1)
src/runtime/sequences/sequences_impl.cpp (+10/-10)
src/runtime/spec/parsing_and_serializing/parse_fragment.xml (+5/-12)
src/store/api/load_properties.h (+224/-38)
src/store/naive/loader.h (+23/-6)
src/store/naive/loader_dtd.cpp (+307/-165)
src/store/naive/loader_fast.cpp (+9/-1)
src/store/naive/simple_store.cpp (+14/-12)
src/types/typeimpl.cpp (+20/-4)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-01.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-02.xml.res (+6/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-03.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-04.xml.res (+12/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-05.xml.res (+12/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-06.xml.res (+8/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-07.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-08.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-09.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-10.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-11.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-12.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-13.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-14.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-15.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-16.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-17.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-18.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-19.xml.res (+8/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-20.xml.res (+8/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-21.xml.res (+6/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-22.xml.res (+4/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-23.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-24.xml.res (+5/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-25.xml.res (+14/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-26.xml.res (+14/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-27.xml.res (+10/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-28.xml.res (+6/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-29.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-30.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-31.xml.res (+59/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-32.xml.res (+50/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-33.xml.res (+34/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-34.xml.res (+18/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-35.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-36.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-37.xml.res (+14/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-38.xml.res (+14/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-39.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-40.xml.res (+3/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-41.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-42.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-43.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-44.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-45.xml.res (+2/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-46.xml.res (+31/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-53.xml.res (+8/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-54.xml.res (+7/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-55.xml.res (+8/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-56.xml.res (+7/-0)
test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-12.xml.res (+1/-1)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-01.xq (+8/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-02.xq (+13/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-03.xq (+13/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-04.xq (+19/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-05.xq (+19/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-06.xq (+19/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-07.xq (+19/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-08.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-09.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-10.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-11.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-12.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-13.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-14.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-15.xq (+8/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-16.xq (+8/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-17.xq (+8/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-18.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-19.xq (+15/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-20.xq (+15/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-21.xq (+15/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-22.xq (+15/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-23.xq (+15/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-24.xq (+16/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-25.xq (+21/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-26.xq (+21/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-27.xq (+21/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-28.xq (+21/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-29.xq (+21/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-30.xq (+21/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-31.xq (+65/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-32.xq (+65/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-33.xq (+65/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-34.xq (+65/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-35.xq (+65/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-36.xq (+65/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-37.xq (+20/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-38.xq (+20/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-39.xq (+20/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-40.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-41.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-42.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-43.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-44.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-45.xq (+9/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-46.xq (+37/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-47.spec (+1/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-47.xq (+13/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-48.spec (+1/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-48.xq (+13/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-49.spec (+1/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-49.xq (+13/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-50.spec (+1/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-50.xq (+13/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-51.spec (+1/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-51.xq (+11/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-52.spec (+1/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-52.xq (+11/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-53.xq (+13/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-54.xq (+14/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-55.xq (+14/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-56.xq (+14/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-01.xq (+6/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-02.xq (+6/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-03.xq (+6/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-04.xq (+6/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-05.xq (+8/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-06.xq (+6/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-07.xq (+6/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-08.xq (+7/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-09.xq (+6/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-10.xq (+2/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-11.xq (+7/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-12.xq (+6/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-13.xq (+7/-1)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-14.xq (+6/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-15.xq (+8/-2)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-16.spec (+0/-1)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-16.xq (+0/-8)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-17.spec (+0/-1)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-17.xq (+0/-8)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-18.spec (+1/-0)
test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-18.xq (+0/-10)
To merge this branch: bzr merge lp:~nbrinza/zorba/parse-fragment
Reviewer Review Type Date Requested Status
William Candillon Approve
David Graf Pending
Matthias Brantner Pending
Review via email: mp+97136@code.launchpad.net

This proposal supersedes a proposal from 2012-03-07.

This proposal has been superseded by a proposal from 2012-03-13.

Description of the change

Fully streaming parse-xml module.

To post a comment you must log in.
Revision history for this message
William Candillon (wcandillon) wrote : Posted in a previous version of this proposal

The branch doesn't compile on my machine:
[ 0%] Building CXX object src/CMakeFiles/zorba_simplestore.dir/functions/func_nodes.cpp.o
In file included from /Users/wcandillon/tmp/parse-fragment/build/src/functions/func_nodes.cpp:26:
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:211: error: stray '#' in program
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:212: error: stray '#' in program
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:212: error: stray '#' in program
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:211: error: expected ',' or '...' before numeric constant
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:211: error: expected `)' before ';' token
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:211: error: ISO C++ forbids declaration of 'aAttr' with no type
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:211: error: expected ';' before ')' token
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:212: error: expected ',' or '...' before numeric constant
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:212: error: expected `)' before ';' token
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:212: error: ISO C++ forbids declaration of 'aLangAttr' with no type
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:212: error: expected unqualified-id before 'const'
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:212: error: ISO C++ forbids declaration of 'aRequestLang' with no type
/Users/wcandillon/tmp/parse-fragment/build/src/runtime/nodes/nodes.h:212: error: expected ';' before ')' token

@Matthias, are you experiencing the same issue on mac?

Revision history for this message
William Candillon (wcandillon) wrote : Posted in a previous version of this proposal

It seems to be a problem with the diff:
- bool isLangAttr(const store::Item_t& aAttr) const;
- bool matchesReqLang(const store::Item_t& aLangAttr, const zstring& aRequestLang) const;
+ bool isLangAttr(const store::Item_t& aAttr) const;
+ bool matchesReqLang(const store::Item_t& aLangAttr, const zstring& aRequestLang) const;

review: Needs Fixing
Revision history for this message
Nicolae Brinza (nbrinza) wrote : Posted in a previous version of this proposal

Yes, indeed, this is a strange corruption that I sometimes get after a merge. I've fixed the issue, resubmitting.

Revision history for this message
Matthias Brantner (matthias-brantner) wrote : Posted in a previous version of this proposal

WOW, that's really cool. I just tried parsing a huge file and memory consumption was constant at a low level. Also, skipping root nodes worked like a charm.

I have some question/remarks:
- In the schema, there is a typo skip-top-Level-text-nodes => skip-top-level-text-nodes
- If validation is enabled, will the validation copy or validate-in-place? I think it should validate-in-place for performance reasons.
- From the documentation, it's not clear on which nodes validation will happen if root nodes are skipped.
- Why does the schema have the following copyright notice "Copyright (c)2010 Elsevier, Inc."?
- The copyright should be 2006-2012
- Parsing the following document with <opt:parse-external-parsed-entity opt:skip-root-nodes="1"/> results in an infinite loop:
<root><a id='0'>
 0
 </b>
</a>
<a id='1'>
 1
</a>
<a id='2'>
 2
</a>
</root>
- The feature is not added to the ChangeLog

review: Needs Fixing
Revision history for this message
Matthias Brantner (matthias-brantner) wrote : Posted in a previous version of this proposal

Also, the branch doesn't build without schema support (i.e. ZORBA_NO_XMLSCHEMA:BOOL=ON)

[ 1%] Building CXX object src/CMakeFiles/zorba_simplestore.dir/runtime/parsing_and_serializing/parse_fragment_impl.cpp.o
/home/mbrantner/zorba/sandbox/src/runtime/parsing_and_serializing/parse_fragment_impl.cpp: In function ‘void zorba::processOptions(zorba::store::Item_t, zorba::store::LoadProperties&, zorba::static_context*, const zorba::QueryLoc&)’:
/home/mbrantner/zorba/sandbox/src/runtime/parsing_and_serializing/parse_fragment_impl.cpp:62:3: error: ‘Validator’ has not been declared
/home/mbrantner/zorba/sandbox/src/runtime/parsing_and_serializing/parse_fragment_impl.cpp:67:7: error: ‘ParseConstants’ has not been declared

review: Needs Information
Revision history for this message
William Candillon (wcandillon) wrote : Posted in a previous version of this proposal

Why is there an Elsevier copyright for modules/com/zorba-xquery/www/modules/xml-options.xsd ?

review: Needs Information
Revision history for this message
Nicolae Brinza (nbrinza) wrote : Posted in a previous version of this proposal

The Elsevier copyright came from the xqdoc.xsd, which I think I used as a base for the options file. I fixed it together with the other issues Matthias has raised. I've also fixed a couple of other cases where malformed XMLs where handled incorrectly. Resubmitting for merging.

Revision history for this message
William Candillon (wcandillon) wrote : Posted in a previous version of this proposal

I tried the forecast data with the parse function: very impressive!!

For documentation purposes, I would rename the parse-xml prefix to xml, this is more consistent right?

review: Needs Information
Revision history for this message
William Candillon (wcandillon) wrote : Posted in a previous version of this proposal

Would xmldoc be a good prefix?

Revision history for this message
Nicolae Brinza (nbrinza) wrote : Posted in a previous version of this proposal

It certainly is the closest allowed alternative...

Revision history for this message
Matthias Brantner (matthias-brantner) wrote : Posted in a previous version of this proposal

- The branch doesn't build without schema support (i.e. ZORBA_NO_XMLSCHEMA:BOOL=ON)

[ 1%] Building CXX object src/CMakeFiles/zorba_simplestore.dir/runtime/parsing_and_serializing/parse_fragment_impl.cpp.o
/home/mbrantner/zorba/sandbox/src/runtime/parsing_and_serializing/parse_fragment_impl.cpp: In function ‘void zorba::processOptions(zorba::store::Item_t, zorba::store::LoadProperties&, zorba::static_context*, const zorba::QueryLoc&)’:
/home/mbrantner/zorba/sandbox/src/runtime/parsing_and_serializing/parse_fragment_impl.cpp:62:3: error: ‘Validator’ has not been declared
/home/mbrantner/zorba/sandbox/src/runtime/parsing_and_serializing/parse_fragment_impl.cpp:67:7: error: ‘ParseConstants’ has not been declared
make[2]: *** [src/CMakeFiles/zorba_simplestore.dir/runtime/parsing_and_serializing/parse_fragment_impl.cpp.o] Error 1

- If validation is enabled, will the validation copy or validate-in-place? I think it should validate-in-place for performance reasons.

review: Needs Fixing
Revision history for this message
William Candillon (wcandillon) : Posted in a previous version of this proposal
review: Approve
Revision history for this message
Nicolae Brinza (nbrinza) wrote : Posted in a previous version of this proposal

All pending issues have been fixed. Resubmitting the proposal for merging.

Revision history for this message
William Candillon (wcandillon) wrote : Posted in a previous version of this proposal

I tried it and it looks like just the best.

review: Approve
Revision history for this message
William Candillon (wcandillon) wrote : Posted in a previous version of this proposal

Adding David to the review, I think he found a bug.

Revision history for this message
David Graf (davidagraf) : Posted in a previous version of this proposal
review: Approve
Revision history for this message
Nicolae Brinza (nbrinza) wrote : Posted in a previous version of this proposal

I've fixed the conflict in the Changelog. Resubmitting for merging into the trunk.

Revision history for this message
Matthias Brantner (matthias-brantner) : Posted in a previous version of this proposal
review: Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote : Posted in a previous version of this proposal
Revision history for this message
William Candillon (wcandillon) : Posted in a previous version of this proposal
review: Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote : Posted in a previous version of this proposal

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:274 (message):
  Validation queue job parse-fragment-2012-02-23T17-50-09.456Z is finished.
  The final status was:

  1136 tests did not succeed - changes not commited.

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

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

Attempt to merge into lp:zorba failed due to conflicts:

text conflict in ChangeLog

Revision history for this message
Nicolae Brinza (nbrinza) wrote : Posted in a previous version of this proposal

I have fixed the regressions and the conflicts. Resubmitting.

Revision history for this message
William Candillon (wcandillon) : Posted in a previous version of this proposal
review: Approve
Revision history for this message
William Candillon (wcandillon) : Posted in a previous version of this proposal
review: Approve
Revision history for this message
Matthias Brantner (matthias-brantner) : Posted in a previous version of this proposal
review: Approve
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

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:274 (message):
  Validation queue job parse-fragment-2012-02-29T15-41-14.921Z is finished.
  The final status was:

  1 tests did not succeed - changes not commited.

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

Revision history for this message
David Graf (davidagraf) : Posted in a previous version of this proposal
review: Approve
Revision history for this message
Nicolae Brinza (nbrinza) wrote : Posted in a previous version of this proposal

I have added the backwards-compatible parse-xml:parse-xml-fragment() function and now the link crawler test passes ok. Resubmitting for mergeing into the trunk.

Revision history for this message
Matthias Brantner (matthias-brantner) wrote : Posted in a previous version of this proposal

I won't pass the remote queue because not all of the parameters of the old functions are documented.

review: Needs Fixing
Revision history for this message
Nicolae Brinza (nbrinza) wrote : Posted in a previous version of this proposal

Which parameters of the old functions are not documented?

Revision history for this message
Matthias Brantner (matthias-brantner) wrote : Posted in a previous version of this proposal

> Which parameters of the old functions are not documented?
Sorry, I got confused by the diff. Everything seems to be fine.

review: Approve
Revision history for this message
William Candillon (wcandillon) wrote : Posted in a previous version of this proposal

The module works nicely but the documentation needs more example:
- In the introduction
- For each function

review: Needs Fixing
Revision history for this message
Nicolae Brinza (nbrinza) wrote : Posted in a previous version of this proposal

I have merged Matthias' example and added another one. Resubmitting.

Revision history for this message
William Candillon (wcandillon) wrote :

Looks good

review: Approve
lp:~nbrinza/zorba/parse-fragment updated
10514. By Nicolae Brinza

Removed the strip-boundary-whitespace option from the parse-fragment function

10515. By Nicolae Brinza

Fixed the formatting of the code examples in the documenation of the parse-fragment module

10516. By Nicolae Brinza

Merged with Zorba trunk

10517. By Nicolae Brinza

Fixed the failing link crawler test in the release build

10518. By Nicolae Brinza

Merged with Zorba trunk

10519. By Nicolae Brinza

Merged with Zorba trunk

10520. By Nicolae Brinza

Added a test for the backwards-compatible zorba:parse-xml-fragment() function

10521. By Nicolae Brinza

Small optimization in the serializer to avoid a repeated string comparison

10522. By Nicolae Brinza

Merged with Zorba trunk

10523. By Nicolae Brinza

Documentation fixes.

10524. By Nicolae Brinza

Reverted a change in the parse fragment module to fix the regressions

10525. By Nicolae Brinza

Improved documentation of the parse-fragment module

10526. By Nicolae Brinza

Merged with Zorba trunk

10527. By Nicolae Brinza

Fixed the type of options parameter to the parse-fragment() function.

10528. By Nicolae Brinza

Fixed the quantity of the options parameter from ONE to QUESTION.

10529. By Nicolae Brinza

Merged with Zorba trunk

10530. By Nicolae Brinza

The parse-fragment function now allows a DOCTYPE declaration in the input.

10531. By Nicolae Brinza

Merged with Zorba trunk

10532. By Nicolae Brinza

Updated the Changelog with the parse-fragment info

10533. By Nicolae Brinza

Updated Changelog with the resolution of bug #1016606

10534. By Nicolae Brinza

Merged with Zorba trunk

10535. By Nicolae Brinza

Fixed parse-fragment not handling correctly the streammable streams lifetime.

10536. By Nicolae Brinza

The input buffer of parse-fragment can grow if libxml is not able to parse the current chunk. Fixes bug #1027270

10537. By Nicolae Brinza

Merged with Zorba trunk

10538. By Nicolae Brinza

Merged with Zorba trunk

10539. By Nicolae Brinza

Updated the Changelog with fixes for bugs #1016606 and #1024033

10540. By Nicolae Brinza

Updated the Changelog with the fix for the bug #1023170

10541. By Nicolae Brinza

Merged with Zorba trunk

10542. By Nicolae Brinza

Fix for bug #1099535 endless loop in xml:parse()

10543. By Nicolae Brinza

Merged with Zorba trunk

10544. By Nicolae Brinza

Updated Changelog to mention fix for bug #1099535

10545. By Nicolae Brinza

Merged with Zorba trunk

10546. By Nicolae Brinza

Fixed bug #1099648 -- XML parsing failures on Red Hat

10547. By Nicolae Brinza

Updated Changelog to mention the fix for bug #1099648

10548. By Nicolae Brinza

Merged with Zorba trunk

Unmerged revisions

10548. By Nicolae Brinza

Merged with Zorba trunk

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2012-02-15 10:25:02 +0000
+++ CMakeLists.txt 2012-03-13 15:50:27 +0000
@@ -237,11 +237,21 @@
237MESSAGE(STATUS "Looking for LibXml2")237MESSAGE(STATUS "Looking for LibXml2")
238FIND_PACKAGE(LibXml2)238FIND_PACKAGE(LibXml2)
239IF(LIBXML2_FOUND)239IF(LIBXML2_FOUND)
240 MESSAGE(STATUS "Found LIBXML2 library -- " ${LIBXML2_LIBRARIES})240 # Now check LibXml2's version
241 241 FILE(STRINGS ${LIBXML2_INCLUDE_DIR}/libxml/xmlversion.h LIBXML2_VERSION_TMP REGEX
242 INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})242 "^#define[ \t]+LIBXML_DOTTED_VERSION[ \t]+\".*\"")
243 SET(requiredlibs-store ${requiredlibs-store} ${LIBXML2_LIBRARIES})243 STRING(REGEX REPLACE "^#define[ \t]+LIBXML_DOTTED_VERSION[ \t]+\"(.*)\"" "\\1"
244 SET(CXXFLAGS ${CXXFLAGS} ${LIBXML2_DEFINITONS})244 LIBXML2_VERSION ${LIBXML2_VERSION_TMP})
245
246 IF(LIBXML2_VERSION VERSION_EQUAL "2.7.0" OR LIBXML2_VERSION VERSION_GREATER "2.7.0")
247 MESSAGE(STATUS "Found LIBXML2 library -- " ${LIBXML2_LIBRARIES})
248 INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
249 SET(requiredlibs-store ${requiredlibs-store} ${LIBXML2_LIBRARIES})
250 SET(CXXFLAGS ${CXXFLAGS} ${LIBXML2_DEFINITONS})
251 ELSE(LIBXML2_VERSION VERSION_EQUAL "2.7.0" OR LIBXML2_VERSION VERSION_GREATER "2.7.0")
252 MESSAGE(FATAL_ERROR "The libxml2 library version 2.7.0 or higher is required in order to build Zorba.")
253 ENDIF(LIBXML2_VERSION VERSION_EQUAL "2.7.0" OR LIBXML2_VERSION VERSION_GREATER "2.7.0")
254
245ELSE(LIBXML2_FOUND)255ELSE(LIBXML2_FOUND)
246 MESSAGE(FATAL_ERROR "The libxml2 library and headers are required in order to build simple store.")256 MESSAGE(FATAL_ERROR "The libxml2 library and headers are required in order to build simple store.")
247ENDIF(LIBXML2_FOUND)257ENDIF(LIBXML2_FOUND)
248258
=== modified file 'ChangeLog'
--- ChangeLog 2012-03-12 17:11:35 +0000
+++ ChangeLog 2012-03-13 15:50:27 +0000
@@ -5,6 +5,8 @@
5 * Add --compile-plan (-c) and --execute-plan (-e) options to zorba command line.5 * Add --compile-plan (-c) and --execute-plan (-e) options to zorba command line.
6 * Add XQuery 3.0 concat operator (http://www.w3.org/TR/xquery-30/#id-string-concat-expr) 6 * Add XQuery 3.0 concat operator (http://www.w3.org/TR/xquery-30/#id-string-concat-expr)
7 * Fixed bug 923015 (clone() not implemented for full-text expressions)7 * Fixed bug 923015 (clone() not implemented for full-text expressions)
8 * The core parse-xml module is now able to parse input files in a streaming mode. A number of new options have also been added.
9 * LibXml2 version 2.7.0 or higher is now required in order to build Zorba.
8 * No-copy optimization: avoids copying nodes during node-constructor expressions.10 * No-copy optimization: avoids copying nodes during node-constructor expressions.
9 * Added external function annotations %ann:propagates-input-nodes and 11 * Added external function annotations %ann:propagates-input-nodes and
10 %ann:must-copy-input-nodes to be used by the no-copy optimization.12 %ann:must-copy-input-nodes to be used by the no-copy optimization.
1113
=== modified file 'modules/com/zorba-xquery/www/modules/CMakeLists.txt'
--- modules/com/zorba-xquery/www/modules/CMakeLists.txt 2012-03-07 15:49:25 +0000
+++ modules/com/zorba-xquery/www/modules/CMakeLists.txt 2012-03-13 15:50:27 +0000
@@ -63,6 +63,8 @@
63 URI "http://www.zorba-xquery.com/modules/schema")63 URI "http://www.zorba-xquery.com/modules/schema")
64DECLARE_ZORBA_MODULE(FILE string.xq VERSION 2.164DECLARE_ZORBA_MODULE(FILE string.xq VERSION 2.1
65 URI "http://www.zorba-xquery.com/modules/string")65 URI "http://www.zorba-xquery.com/modules/string")
66DECLARE_ZORBA_SCHEMA(FILE xml-options.xsd
67 URI "http://www.zorba-xquery.com/modules/xml-options")
66DECLARE_ZORBA_MODULE(FILE uri.xq VERSION 1.068DECLARE_ZORBA_MODULE(FILE uri.xq VERSION 1.0
67 URI "http://www.zorba-xquery.com/modules/uri")69 URI "http://www.zorba-xquery.com/modules/uri")
68DECLARE_ZORBA_MODULE(FILE xml.xq VERSION 2.070DECLARE_ZORBA_MODULE(FILE xml.xq VERSION 2.0
6971
=== added file 'modules/com/zorba-xquery/www/modules/xml-options.xsd'
--- modules/com/zorba-xquery/www/modules/xml-options.xsd 1970-01-01 00:00:00 +0000
+++ modules/com/zorba-xquery/www/modules/xml-options.xsd 2012-03-13 15:50:27 +0000
@@ -0,0 +1,86 @@
1<?xml version="1.0"?>
2<!--
3 - Copyright 2006-2012 The FLWOR Foundation.
4 -
5 - Licensed under the Apache License, Version 2.0 (the "License");
6 - you may not use this file except in compliance with the License.
7 - You may obtain a copy of the License at
8 -
9 - http://www.apache.org/licenses/LICENSE-2.0
10 -
11 - Unless required by applicable law or agreed to in writing, software
12 - distributed under the License is distributed on an "AS IS" BASIS,
13 - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 - See the License for the specific language governing permissions and
15 - limitations under the License.
16-->
17<schema xmlns="http://www.w3.org/2001/XMLSchema"
18 targetNamespace="http://www.zorba-xquery.com/modules/xml-options"
19 elementFormDefault="qualified" attributeFormDefault="qualified">
20
21 <element name="options">
22 <complexType>
23 <all>
24
25 <element name="base-uri" minOccurs="0" maxOccurs="1">
26 <complexType>
27 <attribute name="value" type="anyURI" use="required"/>
28 </complexType>
29 </element>
30 <element name="no-error" minOccurs="0" maxOccurs="1">
31 <complexType/>
32 </element>
33 <element name="schema-validate" minOccurs="0" maxOccurs="1">
34 <complexType>
35 <attribute name="mode" default="strict">
36 <simpleType>
37 <restriction base="string">
38 <enumeration value="strict"/>
39 <enumeration value="lax"/>
40 </restriction>
41 </simpleType>
42 </attribute>
43 </complexType>
44 </element>
45 <element name="DTD-validate" minOccurs="0" maxOccurs="1">
46 <complexType/>
47 </element>
48 <element name="DTD-load" minOccurs="0" maxOccurs="1">
49 <complexType/>
50 </element>
51 <element name="default-DTD-attributes" minOccurs="0" maxOccurs="1">
52 <complexType/>
53 </element>
54 <element name="parse-external-parsed-entity" minOccurs="0" maxOccurs="1">
55 <complexType>
56 <attribute name="skip-root-nodes" use="optional">
57 <simpleType>
58 <restriction base="int">
59 <minInclusive value="0"/>
60 </restriction>
61 </simpleType>
62 </attribute>
63 <attribute name="skip-top-level-text-nodes" type="boolean" use="optional"/>
64 </complexType>
65 </element>
66 <element name="substitute-entities" minOccurs="0" maxOccurs="1">
67 <complexType/>
68 </element>
69 <element name="xinclude-substitutions" minOccurs="0" maxOccurs="1">
70 <complexType/>
71 </element>
72 <element name="remove-redundant-ns" minOccurs="0" maxOccurs="1">
73 <complexType/>
74 </element>
75 <element name="no-CDATA" minOccurs="0" maxOccurs="1">
76 <complexType/>
77 </element>
78 <element name="no-xinclude-nodes" minOccurs="0" maxOccurs="1">
79 <complexType/>
80 </element>
81
82 </all>
83 </complexType>
84 </element>
85
86</schema>
087
=== modified file 'modules/com/zorba-xquery/www/modules/xml.xq' (properties changed: +x to -x)
--- modules/com/zorba-xquery/www/modules/xml.xq 2011-08-10 02:50:23 +0000
+++ modules/com/zorba-xquery/www/modules/xml.xq 2012-03-13 15:50:27 +0000
@@ -1,4 +1,4 @@
1xquery version "1.0";1xquery version "3.0";
22
3(:3(:
4 : Copyright 2006-2010 The FLWOR Foundation.4 : Copyright 2006-2010 The FLWOR Foundation.
@@ -23,13 +23,46 @@
23 : external parsed entities, described by 23 : external parsed entities, described by
24 : <a href="http://www.w3.org/TR/xml/#wf-entities">XML 1.0 Well-Formed 24 : <a href="http://www.w3.org/TR/xml/#wf-entities">XML 1.0 Well-Formed
25 : Parsed Entities</a>. The functions can also perform Schema and DTD 25 : Parsed Entities</a>. The functions can also perform Schema and DTD
26 : validation of the input documents.26 : validation of the input documents.
27 : </p>27 : </p>
28 :28 :
29 : <p>The following example parses a sequence of XML elements and returns
30 : them in a streaming fashion - each at a time:</p>
31 :
32 : <code>
33 : import module namespace parse-xml = "http://www.zorba-xquery.com/modules/xml";
34 : import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
35 : parse-xml:parse(
36 : "&lt;from1>Jani&lt;/from1>&lt;from2>Jani&lt;/from2>&lt;from3>Jani&lt;/from3>",
37 : &lt;opt:options>
38 : &lt;opt:parse-external-parsed-entity/>
39 : &lt;/opt:options>
40 : )
41 : </code>
42 :
43 : <p>Another useful option allows to skip an arbitrary number of levels
44 : before returning a sequence of nodes as shown in the following example:</p>
45 :
46 : <code>
47 : import module namespace parse-xml = "http://www.zorba-xquery.com/modules/xml";
48 : import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
49 : parse-xml:parse(
50 : "&lt;root>
51 : &lt;from1>Jani1&lt;/from1>
52 : &lt;from2>Jani2&lt;/from2>
53 : &lt;from3>Jani3&lt;/from3>
54 : &lt;/root>",
55 : &lt;opt:options>
56 : &lt;opt:parse-external-parsed-entity opt:skip-root-nodes="1"/>
57 : &lt;/opt:options>
58 : )
59 : </code>
60 :
29 : @see <a href="http://www.w3.org/TR/xml/#wf-entities">XML 1.0 Well-Formed 61 : @see <a href="http://www.w3.org/TR/xml/#wf-entities">XML 1.0 Well-Formed
30 : Parsed Entities</a>62 : Parsed Entities</a>
31 : @see <a href="http://www.w3.org/TR/xpath-functions-30/#func-parse-xml">63 : @see <a href="http://www.w3.org/TR/xpath-functions-30/#func-parse-xml">
32 : fn:parse-xml() function in XPath and XQuery Functions and Operators 3.0</a>64 : fn:parse-xml() function in XPath and XQuery Functions and Operators 3.0</a>
65 : @see <a href="http://xmlsoft.org/html/libxml-parser.html">LibXml2 parser</a>
33 :66 :
34 : @author Nicolae Brinza67 : @author Nicolae Brinza
35 : @project data processing/data converters68 : @project data processing/data converters
@@ -37,6 +70,8 @@
37 :)70 :)
38module namespace parse-xml = "http://www.zorba-xquery.com/modules/xml";71module namespace parse-xml = "http://www.zorba-xquery.com/modules/xml";
3972
73import schema namespace parse-xml-options = "http://www.zorba-xquery.com/modules/xml-options";
74
40declare namespace zerr = "http://www.zorba-xquery.com/errors";75declare namespace zerr = "http://www.zorba-xquery.com/errors";
41declare namespace err = "http://www.w3.org/xqt-errors";76declare namespace err = "http://www.w3.org/xqt-errors";
4277
@@ -48,6 +83,157 @@
48 : A function to parse XML files and fragments (i.e. 83 : A function to parse XML files and fragments (i.e.
49 : <a href="http://www.w3.org/TR/xml/#wf-entities">external general parsed 84 : <a href="http://www.w3.org/TR/xml/#wf-entities">external general parsed
50 : entities</a>). The functions takes two arguments: the first one is the 85 : entities</a>). The functions takes two arguments: the first one is the
86 : string to be parsed and the second argument is an &lt;options/&gt; element that
87 : passes a list of options to the parsing function. They are described below.
88 : The options element must conform to the xml-options.xsd schema. Some of these
89 : will be passed to the underlying library (LibXml2) and further documentation
90 : for them can be found at <a href="http://xmlsoft.org/html/libxml-parser.html">
91 : LibXml2 parser</a>.
92 :
93 : The list of available options:
94 :
95 : <ul>
96 : <li>
97 : &lt;base-uri/&gt; - the element must have a "value" attribute, which will provide
98 : the baseURI that will be used as the baseURI for every node returned by this
99 : function.
100 : </li>
101 :
102 : <li>
103 : &lt;no-error/&gt; - if present, the option will disable fatal error processing. Any
104 : failure to parse or validate the input in the requested manner will result
105 : in the function returning an empty sequence and no error will raised.
106 : </li>
107 :
108 : <li>
109 : &lt;schema-validate/&gt; - if present, it will request that the input string be Schema
110 : validated. The element accepts an attribute named "mode" which can have two
111 : values: "strict and "lax". Enabling the option will produce a result that is
112 : equivalent to processing the input with the option disabled, and then copying
113 : the result using the XQuery "validate strict|lax" expression. This option can not
114 : be used together with either the &lt;DTD-validate/&gt; or the &lt;parse-external-parsed-entity/&gt;
115 : option. Doing so will raise a zerr:ZXQD0003 error.
116 : </li>
117 :
118 : <li>
119 : &lt;DTD-validate/&gt; - the option will enable the DTD-based validation. If this
120 : option is enabled and the input references a DTD, then the input must be a
121 : well-formed and DTD-valid XML document. The &lt;DTD-load/&gt; option must be used for
122 : external DTD files to be loaded. If the option is enabled and the input does
123 : not reference a DTD then the option is ignored. If the option is disabled, the
124 : input is not required to reference a DTD and if it does reference a DTD then
125 : the DTD is ignored for validation purposes. This option can not
126 : be used together with either the &lt;schema-validate/&gt; or the &lt;parse-external-parsed-entity&gt;
127 : option. Doing so will raise a zerr:ZXQD0003 error.
128 : </li>
129 :
130 : <li>
131 : &lt;DTD-load/&gt; - if present, it will enable loading of external DTD files.
132 : </li>
133 :
134 : <li>
135 : &lt;default-DTD-attributes/&gt; - if present, it will enable the default DTD attributes.
136 : </li>
137 :
138 : <li>
139 : &lt;parse-external-parsed-entity/&gt; - if present, it will enable the processing of XML
140 : external entities. If the option
141 : is enabled, the input must conform to the syntax extParsedEnt (production
142 : [78] in XML 1.0, see <a href="http://www.w3.org/TR/xml/#wf-entities">
143 : Well-Formed Parsed Entities</a>). The result of the function call is a list
144 : of nodes corresponding to the top-level components of the content of the
145 : external entity: that is, elements, processing instructions, comments, and
146 : text nodes. CDATA sections and character references are expanded, and
147 : adjacent characters are merged so the result contains no adjacent text
148 : nodes. If the option is disabled, the input must be a well-formed XML
149 : document conforming to the Document production
150 : (<a href="http://www.w3.org/TR/xml/#sec-well-formed">production [1] in XML 1.0</a>).
151 : This option can not be used together with either the &lt;schema-validate/&gt; or the &lt;DTD-validate/&gt;
152 : option. Doing so will raise a zerr:ZXQD0003 error.
153 : The &lt;parse-external-parsed-entity/&gt; option has two parameters, given by attributes. The first
154 : attribute is "skip-root-nodes" and it can have a non-negative value. Specifying the paramter
155 : tells the parser to skip the given number of root nodes and return only their children. E.g.
156 : skip-root-nodes="1" is equivalent to parse-xml($xml-string)/node()/node() . skip-root-nodes="2" is equivalent
157 : to parse-xml($xml-string)/node()/node()/node() , etc. The second attribute is "skip-top-level-text-nodes" with a
158 : boolean value. Specifying "true" will tell the parser to skip top level text nodes, returning
159 : only the top level elements, comments, PIs, etc. This parameter works in combination with
160 : the "skip-root-nodes" paramter, thus top level text nodes are skipped after "skip-root-nodes" has
161 : been applied.
162 : </li>
163 :
164 : <li>
165 : &lt;substitute-entities/&gt; - if present, it will enable the XML entities substitutions.
166 : </li>
167 :
168 : <li>
169 : &lt;remove-redundant-ns/&gt; - if present, the parser will remove redundant namespaces declarations.
170 : </li>
171 :
172 : <li>
173 : &lt;no-CDATA/&gt; - if present, the parser will merge CDATA nodes as text nodes.
174 : </li>
175 :
176 : <li>
177 : &lt;xinclude-substitutions/&gt; - if present, it will enable the XInclude substitutions.
178 : </li>
179 :
180 : <li>
181 : &lt;no-xinclude-nodes/&gt; - if present, the parser will not generate XInclude START/END nodes.
182 : </li>
183 :
184 : </ul>
185 :
186 :
187 : @param $xml-string The string that holds the XML to be parsed. If empty,
188 : the function will return an empty sequence
189 : @param $options The options for the parsing
190 : @return The parsed XML as a document node or a list of nodes, or an empty
191 : sequence.
192 :
193 : @error zerr:ZXQD0003 The error will be raised if the options to the function
194 : are inconsistent.
195 :
196 : @error err:FODC0006 The error will be raised if the input string is not a
197 : valid XML document or fragment (external general parsed
198 : entity) or if DTD validation was enabled and the
199 : document has not passed it.
200 :
201 : @error err:XQDY0027 The error will be raised if schema validation was enabled
202 : and the input document has not passed it or if the parsing options are not
203 : conformant to the xml-options.xsd schema.
204 :
205 :
206 : An example that sets the base-uri of the parsed external entities:
207 : <code>
208 : import module namespace parse-xml = "http://www.zorba-xquery.com/modules/xml";
209 : import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
210 : parse-xml:parse("&lt;from1>Jani&lt;/from1>&lt;from2>Jani&lt;/from2>&lt;from3>Jani&lt;/from3>",
211 : &lt;opt:options>
212 : &lt;opt:base-uri opt:value="urn:test"/>
213 : &lt;opt:parse-external-parsed-entity/>
214 : &lt;/opt:options>
215 : )
216 : </code>
217 :
218 : @example test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-03.xq
219 : @example test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-01.xq
220 : @example test/rbkt/Queries/zorba/parsing_and_serializing/parse-xml-fragment-07.xq
221 :
222 :)
223declare function parse-xml:parse(
224 $xml-string as xs:string?,
225 $options as element()?) as node()* external;
226
227
228(:~
229 :
230 : Note: this function is included for backwards compatibility purposes. It
231 : is recommended that you use the parse-xml:parse() function instead.
232 :
233 :
234 : A function to parse XML files and fragments (i.e.
235 : <a href="http://www.w3.org/TR/xml/#wf-entities">external general parsed
236 : entities</a>). The functions takes two arguments: the first one is the
51 : string to be parsed and the second argument is a flags string 237 : string to be parsed and the second argument is a flags string
52 : (eEdDsSlLwWfF]*(;[\p{L}]*)?) selecting the options described below.238 : (eEdDsSlLwWfF]*(;[\p{L}]*)?) selecting the options described below.
53 : <br/>239 : <br/>
@@ -136,10 +322,35 @@
136 :)322 :)
137declare function parse-xml:parse-xml-fragment(323declare function parse-xml:parse-xml-fragment(
138 $xml-string as xs:string?,324 $xml-string as xs:string?,
139 $options as xs:string) as node()* external;325 $options as xs:string) as node()*
326{
327 let $new_options := <parse-xml-options:options>{
328 if (contains($options, "e"))
329 then <parse-xml-options:parse-external-parsed-entity/> else (),
330 if (contains($options, "d"))
331 then <parse-xml-options:DTD-validate/> else (),
332 if (contains($options, "s"))
333 then <parse-xml-options:schema-validate parse-xml-options:mode="strict"/>
334 else (),
335 if (contains($options, "l"))
336 then <parse-xml-options:schema-validate parse-xml-options:mode="lax"/>
337 else (),
338 if (contains($options, "w"))
339 then <parse-xml-options:strip-boundary-space/> else (),
340 if (contains($options, "f"))
341 then <parse-xml-options:no-error/> else ()
342 }</parse-xml-options:options>
343 return
344 parse-xml:parse($xml-string, $new_options)
345};
140346
141347
142(:~348(:~
349 :
350 : Note: this function is included for backwards compatibility purposes. It
351 : is recommended that you use the parse-xml:parse() function instead.
352 :
353 :
143 : A function to parse XML files and fragments. The behavior is the354 : A function to parse XML files and fragments. The behavior is the
144 : same as the parse-xml-fragment with two arguments.355 : same as the parse-xml-fragment with two arguments.
145 :356 :
@@ -169,4 +380,27 @@
169declare function parse-xml:parse-xml-fragment(380declare function parse-xml:parse-xml-fragment(
170 $xml-string as xs:string?,381 $xml-string as xs:string?,
171 $base-uri as xs:string,382 $base-uri as xs:string,
172 $options as xs:string) as node()* external;383 $options as xs:string) as node()*
384{
385 let $new_options := <parse-xml-options:options>{
386 if (contains($options, "e"))
387 then <parse-xml-options:parse-external-parsed-entity/> else (),
388 if (contains($options, "d"))
389 then <parse-xml-options:DTD-validate/> else (),
390 if (contains($options, "s"))
391 then <parse-xml-options:schema-validate parse-xml-options:mode="strict"/>
392 else (),
393 if (contains($options, "l"))
394 then <parse-xml-options:schema-validate parse-xml-options:mode="lax"/>
395 else (),
396 if (contains($options, "w"))
397 then <parse-xml-options:strip-boundary-space/> else (),
398 if (contains($options, "f"))
399 then <parse-xml-options:no-error/> else (),
400 <parse-xml-options:base-uri>{
401 attribute{xs:QName("parse-xml-options:value")}{$base-uri}}
402 </parse-xml-options:base-uri>
403 }</parse-xml-options:options>
404 return
405 parse-xml:parse($xml-string, $new_options)
406};
173407
=== modified file 'src/api/annotationimpl.cpp' (properties changed: +x to -x)
=== modified file 'src/api/xmldatamanagerimpl.cpp'
--- src/api/xmldatamanagerimpl.cpp 2012-01-23 10:06:24 +0000
+++ src/api/xmldatamanagerimpl.cpp 2012-03-13 15:50:27 +0000
@@ -75,7 +75,7 @@
7575
76********************************************************************************/76********************************************************************************/
77XmlDataManagerImpl::XmlDataManagerImpl()77XmlDataManagerImpl::XmlDataManagerImpl()
78 : 78 :
79 theDocManager(0),79 theDocManager(0),
80 theColManager(0),80 theColManager(0),
81 theW3CColManager(0)81 theW3CColManager(0)
@@ -126,7 +126,9 @@
126 std::ostringstream lProlog;126 std::ostringstream lProlog;
127 lProlog127 lProlog
128 << "import module namespace d = '" << static_context::ZORBA_FETCH_FN_NS << "';"128 << "import module namespace d = '" << static_context::ZORBA_FETCH_FN_NS << "';"
129 << "import module namespace x = '" << static_context::ZORBA_XML_FN_NS << "';";129 << "import module namespace x = '" << static_context::ZORBA_XML_FN_NS << "';"
130 << "import schema namespace opt = '" << static_context::ZORBA_XML_FN_OPTIONS_NS << "';";
131
130 theContext->loadProlog(lProlog.str(), lHints);132 theContext->loadProlog(lProlog.str(), lHints);
131}133}
132134
@@ -151,7 +153,7 @@
151DocumentManager*153DocumentManager*
152XmlDataManagerImpl::getDocumentManager() const154XmlDataManagerImpl::getDocumentManager() const
153{155{
154 if (!theDocManager) 156 if (!theDocManager)
155 {157 {
156 theDocManager = new DocumentManagerImpl(theContext, theFactory);158 theDocManager = new DocumentManagerImpl(theContext, theFactory);
157 theDocManager->registerDiagnosticHandler(theDiagnosticHandler);159 theDocManager->registerDiagnosticHandler(theDiagnosticHandler);
@@ -166,7 +168,7 @@
166CollectionManager*168CollectionManager*
167XmlDataManagerImpl::getCollectionManager() const169XmlDataManagerImpl::getCollectionManager() const
168{170{
169 if (!theColManager) 171 if (!theColManager)
170 {172 {
171 theColManager = new CollectionManagerImpl(173 theColManager = new CollectionManagerImpl(
172 theContext,174 theContext,
@@ -185,7 +187,7 @@
185CollectionManager*187CollectionManager*
186XmlDataManagerImpl::getW3CCollectionManager() const188XmlDataManagerImpl::getW3CCollectionManager() const
187{189{
188 if (!theW3CColManager) 190 if (!theW3CColManager)
189 {191 {
190 theW3CColManager = new CollectionManagerImpl(192 theW3CColManager = new CollectionManagerImpl(
191 theContext,193 theContext,
@@ -280,21 +282,34 @@
280 ZORBA_DM_TRY282 ZORBA_DM_TRY
281 {283 {
282 Item lQName = theFactory->createQName(static_context::ZORBA_XML_FN_NS,284 Item lQName = theFactory->createQName(static_context::ZORBA_XML_FN_NS,
283 "parse-xml-fragment");285 "parse");
284286
285 // create a streamable string item287 // create a streamable string item
286 std::vector<ItemSequence_t> lArgs;288 std::vector<ItemSequence_t> lArgs;
287 lArgs.push_back(289 lArgs.push_back(new SingletonItemSequence(
288 new SingletonItemSequence(theFactory->createStreamableString(aStream,290 theFactory->createStreamableString(aStream, &streamReleaser)));
289 &streamReleaser)));291
290292 Item empty_item;
291 std::ostringstream lOptions;293 Item validated_options;
292 lOptions << (aOptions.isDtdValidationEnabled()?"d":"D");294 NsBindings nsPairs;
293295 Item untyped_type = theFactory->createQName("http://www.w3.org/2001/XMLSchema", "xs", "untyped");
294 lOptions << (aOptions.isExternalEntityProcessingEnabled()?"e":"E");296 Item options_node = theFactory->createElementNode(empty_item,
295297 theFactory->createQName(static_context::ZORBA_XML_FN_OPTIONS_NS, "options"),
296 lArgs.push_back(298 untyped_type, false, false, nsPairs);
297 new SingletonItemSequence(theFactory->createString(lOptions.str())));299
300 if (aOptions.isDtdValidationEnabled())
301 theFactory->createElementNode(options_node,
302 theFactory->createQName(static_context::ZORBA_XML_FN_OPTIONS_NS, "DTD-validate"),
303 untyped_type, false, false, nsPairs);
304
305 if (aOptions.isExternalEntityProcessingEnabled())
306 theFactory->createElementNode(options_node,
307 theFactory->createQName(static_context::ZORBA_XML_FN_OPTIONS_NS, "parse-external-parsed-entity"),
308 untyped_type, false, false, nsPairs);
309
310 theContext->validate(options_node, validated_options, validate_strict);
311
312 lArgs.push_back(new SingletonItemSequence(validated_options));
298313
299 return theContext->invoke(lQName, lArgs);314 return theContext->invoke(lQName, lArgs);
300 }315 }
@@ -315,23 +330,42 @@
315 ZORBA_DM_TRY330 ZORBA_DM_TRY
316 {331 {
317 Item lQName = theFactory->createQName(static_context::ZORBA_XML_FN_NS,332 Item lQName = theFactory->createQName(static_context::ZORBA_XML_FN_NS,
318 "parse-xml-fragment");333 "parse");
319334
320 // create a streamable string item335 // create a streamable string item
321 std::vector<ItemSequence_t> lArgs;336 std::vector<ItemSequence_t> lArgs;
322 lArgs.push_back(337 lArgs.push_back(new SingletonItemSequence(
323 new SingletonItemSequence(theFactory->createStreamableString(aStream,338 theFactory->createStreamableString(aStream, &streamReleaser)));
324 &streamReleaser)));339
325 lArgs.push_back(340 Item empty_item;
326 new SingletonItemSequence(theFactory->createString(aBaseURI)));341 Item validated_options;
327342 NsBindings nsPairs;
328 std::ostringstream lOptions;343 Item untyped_type = theFactory->createQName("http://www.w3.org/2001/XMLSchema", "xs", "untyped");
329 lOptions << (aOptions.isDtdValidationEnabled()?"d":"D");344 Item options_node = theFactory->createElementNode(empty_item,
330345 theFactory->createQName(static_context::ZORBA_XML_FN_OPTIONS_NS, "options"),
331 lOptions << (aOptions.isExternalEntityProcessingEnabled()?"e":"E");346 untyped_type, false, false, nsPairs);
332347
333 lArgs.push_back(348 if (aOptions.isDtdValidationEnabled())
334 new SingletonItemSequence(theFactory->createString(lOptions.str())));349 theFactory->createElementNode(options_node,
350 theFactory->createQName(static_context::ZORBA_XML_FN_OPTIONS_NS, "DTD-validate"),
351 untyped_type, false, false, nsPairs);
352
353 if (aOptions.isExternalEntityProcessingEnabled())
354 theFactory->createElementNode(options_node,
355 theFactory->createQName(static_context::ZORBA_XML_FN_OPTIONS_NS, "parse-external-parsed-entity"),
356 untyped_type, false, false, nsPairs);
357
358 Item base_uri_node = theFactory->createElementNode(options_node,
359 theFactory->createQName(static_context::ZORBA_XML_FN_OPTIONS_NS, "base-uri"),
360 untyped_type, false, false, nsPairs);
361 theFactory->createAttributeNode(base_uri_node,
362 theFactory->createQName(static_context::ZORBA_XML_FN_OPTIONS_NS, "value"),
363 Item(),
364 theFactory->createString(aBaseURI));
365
366 theContext->validate(options_node, validated_options, validate_strict);
367
368 lArgs.push_back(new SingletonItemSequence(validated_options));
335369
336 return theContext->invoke(lQName, lArgs);370 return theContext->invoke(lQName, lArgs);
337 }371 }
@@ -382,15 +416,15 @@
382 theDiagnosticHandler = aDiagnosticHandler;416 theDiagnosticHandler = aDiagnosticHandler;
383 theUserDiagnosticHandler = true;417 theUserDiagnosticHandler = true;
384418
385 if (theColManager) 419 if (theColManager)
386 {420 {
387 theColManager->registerDiagnosticHandler(theDiagnosticHandler);421 theColManager->registerDiagnosticHandler(theDiagnosticHandler);
388 }422 }
389 if (theDocManager) 423 if (theDocManager)
390 {424 {
391 theDocManager->registerDiagnosticHandler(theDiagnosticHandler);425 theDocManager->registerDiagnosticHandler(theDiagnosticHandler);
392 }426 }
393 if (theW3CColManager) 427 if (theW3CColManager)
394 {428 {
395 theW3CColManager->registerDiagnosticHandler(theDiagnosticHandler);429 theW3CColManager->registerDiagnosticHandler(theDiagnosticHandler);
396 }430 }
@@ -400,17 +434,17 @@
400/*******************************************************************************434/*******************************************************************************
401435
402********************************************************************************/436********************************************************************************/
403void XmlDataManagerImpl::registerStemmerProvider(StemmerProvider const *p) 437void XmlDataManagerImpl::registerStemmerProvider(StemmerProvider const *p)
404{438{
405 SYNC_CODE(AutoLatch lock(theLatch, Latch::WRITE);)439 SYNC_CODE(AutoLatch lock(theLatch, Latch::WRITE);)
406 if ( theStemmerProviderWrapper ) 440 if ( theStemmerProviderWrapper )
407 {441 {
408 if ( theStemmerProviderWrapper->get_provider() == p )442 if ( theStemmerProviderWrapper->get_provider() == p )
409 return;443 return;
410 delete theStemmerProviderWrapper;444 delete theStemmerProviderWrapper;
411 theStemmerProviderWrapper = nullptr;445 theStemmerProviderWrapper = nullptr;
412 }446 }
413 if ( p ) 447 if ( p )
414 {448 {
415 theStemmerProviderWrapper = new internal::StemmerProviderWrapper( p );449 theStemmerProviderWrapper = new internal::StemmerProviderWrapper( p );
416 theStore->setStemmerProvider( theStemmerProviderWrapper );450 theStore->setStemmerProvider( theStemmerProviderWrapper );
@@ -421,7 +455,7 @@
421/*******************************************************************************455/*******************************************************************************
422456
423********************************************************************************/457********************************************************************************/
424void XmlDataManagerImpl::registerTokenizerProvider(TokenizerProvider const *p) 458void XmlDataManagerImpl::registerTokenizerProvider(TokenizerProvider const *p)
425{459{
426 SYNC_CODE(AutoLatch lock(theLatch, Latch::WRITE);)460 SYNC_CODE(AutoLatch lock(theLatch, Latch::WRITE);)
427 theStore->setTokenizerProvider( p );461 theStore->setTokenizerProvider( p );
428462
=== modified file 'src/context/static_context.cpp'
--- src/context/static_context.cpp 2012-03-07 15:49:25 +0000
+++ src/context/static_context.cpp 2012-03-13 15:50:27 +0000
@@ -273,11 +273,11 @@
273static_context::W3C_XML_NS = "http://www.w3.org/XML/1998/namespace";273static_context::W3C_XML_NS = "http://www.w3.org/XML/1998/namespace";
274274
275const char*275const char*
276static_context::ZORBA_MATH_FN_NS = 276static_context::ZORBA_MATH_FN_NS =
277"http://www.zorba-xquery.com/modules/math";277"http://www.zorba-xquery.com/modules/math";
278278
279const char*279const char*
280static_context::ZORBA_BASE64_FN_NS = 280static_context::ZORBA_BASE64_FN_NS =
281"http://www.zorba-xquery.com/modules/converters/base64";281"http://www.zorba-xquery.com/modules/converters/base64";
282282
283283
@@ -286,11 +286,11 @@
286"http://www.zorba-xquery.com/modules/converters/json";286"http://www.zorba-xquery.com/modules/converters/json";
287287
288const char*288const char*
289static_context::ZORBA_NODEREF_FN_NS = 289static_context::ZORBA_NODEREF_FN_NS =
290"http://www.zorba-xquery.com/modules/node-reference";290"http://www.zorba-xquery.com/modules/node-reference";
291291
292const char*292const char*
293static_context::ZORBA_NODEPOS_FN_NS = 293static_context::ZORBA_NODEPOS_FN_NS =
294"http://www.zorba-xquery.com/modules/node-position";294"http://www.zorba-xquery.com/modules/node-position";
295295
296const char*296const char*
@@ -298,71 +298,71 @@
298"http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl";298"http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl";
299299
300const char*300const char*
301static_context::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_FN_NS = 301static_context::ZORBA_STORE_DYNAMIC_COLLECTIONS_DML_FN_NS =
302"http://www.zorba-xquery.com/modules/store/dynamic/collections/dml";302"http://www.zorba-xquery.com/modules/store/dynamic/collections/dml";
303303
304const char*304const char*
305static_context::ZORBA_STORE_STATIC_COLLECTIONS_DDL_FN_NS = 305static_context::ZORBA_STORE_STATIC_COLLECTIONS_DDL_FN_NS =
306"http://www.zorba-xquery.com/modules/store/static/collections/ddl";306"http://www.zorba-xquery.com/modules/store/static/collections/ddl";
307307
308const char*308const char*
309static_context::ZORBA_STORE_STATIC_COLLECTIONS_DML_FN_NS = 309static_context::ZORBA_STORE_STATIC_COLLECTIONS_DML_FN_NS =
310"http://www.zorba-xquery.com/modules/store/static/collections/dml";310"http://www.zorba-xquery.com/modules/store/static/collections/dml";
311311
312const char*312const char*
313static_context::ZORBA_STORE_STATIC_INDEXES_DDL_FN_NS = 313static_context::ZORBA_STORE_STATIC_INDEXES_DDL_FN_NS =
314"http://www.zorba-xquery.com/modules/store/static/indexes/ddl";314"http://www.zorba-xquery.com/modules/store/static/indexes/ddl";
315315
316const char*316const char*
317static_context::ZORBA_STORE_STATIC_INDEXES_DML_FN_NS = 317static_context::ZORBA_STORE_STATIC_INDEXES_DML_FN_NS =
318"http://www.zorba-xquery.com/modules/store/static/indexes/dml";318"http://www.zorba-xquery.com/modules/store/static/indexes/dml";
319319
320const char*320const char*
321static_context::ZORBA_STORE_STATIC_INTEGRITY_CONSTRAINTS_DDL_FN_NS = 321static_context::ZORBA_STORE_STATIC_INTEGRITY_CONSTRAINTS_DDL_FN_NS =
322"http://www.zorba-xquery.com/modules/store/static/integrity_constraints/ddl";322"http://www.zorba-xquery.com/modules/store/static/integrity_constraints/ddl";
323323
324const char*324const char*
325static_context::ZORBA_STORE_STATIC_INTEGRITY_CONSTRAINTS_DML_FN_NS = 325static_context::ZORBA_STORE_STATIC_INTEGRITY_CONSTRAINTS_DML_FN_NS =
326"http://www.zorba-xquery.com/modules/store/static/integrity_constraints/dml";326"http://www.zorba-xquery.com/modules/store/static/integrity_constraints/dml";
327327
328const char*328const char*
329static_context::ZORBA_STORE_DYNAMIC_DOCUMENTS_FN_NS = 329static_context::ZORBA_STORE_DYNAMIC_DOCUMENTS_FN_NS =
330"http://www.zorba-xquery.com/modules/store/dynamic/documents";330"http://www.zorba-xquery.com/modules/store/dynamic/documents";
331331
332const char*332const char*
333static_context::ZORBA_STORE_DYNAMIC_UNORDERED_MAP_FN_NS = 333static_context::ZORBA_STORE_DYNAMIC_UNORDERED_MAP_FN_NS =
334"http://www.zorba-xquery.com/modules/store/data-structures/unordered-map";334"http://www.zorba-xquery.com/modules/store/data-structures/unordered-map";
335335
336const char*336const char*
337static_context::ZORBA_SCHEMA_FN_NS = 337static_context::ZORBA_SCHEMA_FN_NS =
338"http://www.zorba-xquery.com/modules/schema";338"http://www.zorba-xquery.com/modules/schema";
339339
340const char*340const char*
341static_context::ZORBA_XQDOC_FN_NS = 341static_context::ZORBA_XQDOC_FN_NS =
342"http://www.zorba-xquery.com/modules/xqdoc";342"http://www.zorba-xquery.com/modules/xqdoc";
343343
344const char*344const char*
345static_context::ZORBA_RANDOM_FN_NS = 345static_context::ZORBA_RANDOM_FN_NS =
346"http://www.zorba-xquery.com/modules/random";346"http://www.zorba-xquery.com/modules/random";
347347
348const char*348const char*
349static_context::ZORBA_INTROSP_SCTX_FN_NS = 349static_context::ZORBA_INTROSP_SCTX_FN_NS =
350"http://www.zorba-xquery.com/modules/introspection/sctx";350"http://www.zorba-xquery.com/modules/introspection/sctx";
351351
352const char*352const char*
353static_context::ZORBA_REFLECTION_FN_NS = 353static_context::ZORBA_REFLECTION_FN_NS =
354"http://www.zorba-xquery.com/modules/reflection";354"http://www.zorba-xquery.com/modules/reflection";
355355
356const char*356const char*
357static_context::ZORBA_UTIL_FN_NS = 357static_context::ZORBA_UTIL_FN_NS =
358"http://www.zorba-xquery.com/zorba/util-functions";358"http://www.zorba-xquery.com/zorba/util-functions";
359359
360const char*360const char*
361static_context::ZORBA_SCRIPTING_FN_NS = 361static_context::ZORBA_SCRIPTING_FN_NS =
362"http://www.zorba-xquery.com/zorba/scripting";362"http://www.zorba-xquery.com/zorba/scripting";
363363
364const char*364const char*
365static_context::ZORBA_STRING_FN_NS = 365static_context::ZORBA_STRING_FN_NS =
366"http://www.zorba-xquery.com/modules/string";366"http://www.zorba-xquery.com/modules/string";
367367
368const char*368const char*
@@ -374,45 +374,50 @@
374"http://www.zorba-xquery.com/modules/fetch";374"http://www.zorba-xquery.com/modules/fetch";
375375
376const char*376const char*
377static_context::ZORBA_NODE_FN_NS = 377static_context::ZORBA_NODE_FN_NS =
378"http://www.zorba-xquery.com/modules/node";378"http://www.zorba-xquery.com/modules/node";
379379
380const char*380const char*
381static_context::ZORBA_XML_FN_NS = 381static_context::ZORBA_XML_FN_NS =
382"http://www.zorba-xquery.com/modules/xml";382"http://www.zorba-xquery.com/modules/xml";
383383
384const char*
385static_context::ZORBA_XML_FN_OPTIONS_NS =
386"http://www.zorba-xquery.com/modules/xml-options";
387
388
384/***************************************************************************//**389/***************************************************************************//**
385 Target namespaces of zorba reserved modules390 Target namespaces of zorba reserved modules
386********************************************************************************/391********************************************************************************/
387const char*392const char*
388static_context::XQUERY_OP_NS = 393static_context::XQUERY_OP_NS =
389"http://www.zorba-xquery.com/internal/xquery-ops";394"http://www.zorba-xquery.com/internal/xquery-ops";
390395
391const char*396const char*
392static_context::ZORBA_OP_NS = 397static_context::ZORBA_OP_NS =
393"http://www.zorba-xquery.com/internal/zorba-ops";398"http://www.zorba-xquery.com/internal/zorba-ops";
394399
395/***************************************************************************//**400/***************************************************************************//**
396 Options-related namespaces401 Options-related namespaces
397********************************************************************************/402********************************************************************************/
398const char* 403const char*
399static_context::ZORBA_OPTIONS_NS = 404static_context::ZORBA_OPTIONS_NS =
400"http://www.zorba-xquery.com/options";405"http://www.zorba-xquery.com/options";
401406
402const char* 407const char*
403static_context::ZORBA_OPTION_WARN_NS = 408static_context::ZORBA_OPTION_WARN_NS =
404"http://www.zorba-xquery.com/options/warnings";409"http://www.zorba-xquery.com/options/warnings";
405410
406const char* 411const char*
407static_context::ZORBA_OPTION_FEATURE_NS = 412static_context::ZORBA_OPTION_FEATURE_NS =
408"http://www.zorba-xquery.com/options/features";413"http://www.zorba-xquery.com/options/features";
409414
410const char* 415const char*
411static_context::ZORBA_OPTION_OPTIM_NS = 416static_context::ZORBA_OPTION_OPTIM_NS =
412"http://www.zorba-xquery.com/options/optimizer";417"http://www.zorba-xquery.com/options/optimizer";
413418
414const char* 419const char*
415static_context::ZORBA_VERSIONING_NS = 420static_context::ZORBA_VERSIONING_NS =
416"http://www.zorba-xquery.com/options/versioning";421"http://www.zorba-xquery.com/options/versioning";
417422
418423
@@ -450,7 +455,7 @@
450 ns == ZORBA_FETCH_FN_NS ||455 ns == ZORBA_FETCH_FN_NS ||
451 ns == ZORBA_NODE_FN_NS ||456 ns == ZORBA_NODE_FN_NS ||
452 ns == ZORBA_XML_FN_NS);457 ns == ZORBA_XML_FN_NS);
453 } 458 }
454 else if (ns == W3C_FN_NS || ns == XQUERY_MATH_FN_NS)459 else if (ns == W3C_FN_NS || ns == XQUERY_MATH_FN_NS)
455 {460 {
456 return true;461 return true;
@@ -527,7 +532,7 @@
527 if (lVarName == static_context::DOT_POS_VAR_NAME)532 if (lVarName == static_context::DOT_POS_VAR_NAME)
528 {533 {
529 lVarName = "context position";534 lVarName = "context position";
530 } 535 }
531 else if (lVarName == static_context::DOT_SIZE_VAR_NAME)536 else if (lVarName == static_context::DOT_SIZE_VAR_NAME)
532 {537 {
533 lVarName = "context size";538 lVarName = "context size";
@@ -715,7 +720,7 @@
715720
716 if (theVariablesMap)721 if (theVariablesMap)
717 delete theVariablesMap;722 delete theVariablesMap;
718 723
719 if (theImportedPrivateVariablesMap)724 if (theImportedPrivateVariablesMap)
720 delete theImportedPrivateVariablesMap;725 delete theImportedPrivateVariablesMap;
721726
@@ -963,7 +968,7 @@
963 ar & theContextItemType;968 ar & theContextItemType;
964969
965 ar & theVariablesMap;970 ar & theVariablesMap;
966 ar & theImportedPrivateVariablesMap; 971 ar & theImportedPrivateVariablesMap;
967972
968 ar.set_serialize_only_for_eval(true);973 ar.set_serialize_only_for_eval(true);
969 ar & theFunctionMap;974 ar & theFunctionMap;
@@ -1464,7 +1469,7 @@
14641469
1465********************************************************************************/1470********************************************************************************/
1466std::auto_ptr<internal::Resource> static_context::resolve_uri(1471std::auto_ptr<internal::Resource> static_context::resolve_uri(
1467 zstring const& aUri, 1472 zstring const& aUri,
1468 internal::EntityData::Kind aEntityKind,1473 internal::EntityData::Kind aEntityKind,
1469 zstring& oErrorMessage) const1474 zstring& oErrorMessage) const
1470{1475{
@@ -1496,7 +1501,7 @@
1496 internal::EntityData const lData(aEntityKind);1501 internal::EntityData const lData(aEntityKind);
14971502
1498 apply_uri_mappers(aUri, &lData, internal::URIMapper::COMPONENT, oComponents);1503 apply_uri_mappers(aUri, &lData, internal::URIMapper::COMPONENT, oComponents);
1499 if (oComponents.size() == 0) 1504 if (oComponents.size() == 0)
1500 {1505 {
1501 oComponents.push_back(aUri);1506 oComponents.push_back(aUri);
1502 }1507 }
@@ -1507,9 +1512,9 @@
15071512
1508********************************************************************************/1513********************************************************************************/
1509void static_context::apply_uri_mappers(1514void static_context::apply_uri_mappers(
1510 zstring const& aUri, 1515 zstring const& aUri,
1511 internal::EntityData const* aEntityData,1516 internal::EntityData const* aEntityData,
1512 internal::URIMapper::Kind aMapperKind, 1517 internal::URIMapper::Kind aMapperKind,
1513 std::vector<zstring>& oUris) const1518 std::vector<zstring>& oUris) const
1514{1519{
1515 // Initialize list with the one input URI.1520 // Initialize list with the one input URI.
@@ -1525,7 +1530,7 @@
1525 mapper != sctx->theURIMappers.end(); mapper++)1530 mapper != sctx->theURIMappers.end(); mapper++)
1526 {1531 {
1527 // Only call mappers of the appropriate kind1532 // Only call mappers of the appropriate kind
1528 if ((*mapper)->mapperKind() != aMapperKind) 1533 if ((*mapper)->mapperKind() != aMapperKind)
1529 {1534 {
1530 continue;1535 continue;
1531 }1536 }
@@ -1541,16 +1546,16 @@
1541 size_t const lPreNumResultUris = lResultUris.size();1546 size_t const lPreNumResultUris = lResultUris.size();
1542 (*mapper)->mapURI(*uri, aEntityData, *this, lResultUris);1547 (*mapper)->mapURI(*uri, aEntityData, *this, lResultUris);
1543 size_t const lPostNumResultUris = lResultUris.size();1548 size_t const lPostNumResultUris = lResultUris.size();
1544 if (lPreNumResultUris == lPostNumResultUris) 1549 if (lPreNumResultUris == lPostNumResultUris)
1545 {1550 {
1546 // Mapper didn't map this URI to anything new, therefore add1551 // Mapper didn't map this URI to anything new, therefore add
1547 // the original URI to the result list1552 // the original URI to the result list
1548 lResultUris.push_back(*uri);1553 lResultUris.push_back(*uri);
1549 }1554 }
1550 else 1555 else
1551 {1556 {
1552 // Check the new entries for DENY_ACCESS.1557 // Check the new entries for DENY_ACCESS.
1553 for (size_t i = lPreNumResultUris; i < lPostNumResultUris; i++) 1558 for (size_t i = lPreNumResultUris; i < lPostNumResultUris; i++)
1554 {1559 {
1555 if (lResultUris.at(i) == internal::URIMapper::DENY_ACCESS) {1560 if (lResultUris.at(i) == internal::URIMapper::DENY_ACCESS) {
1556 throw XQUERY_EXCEPTION(zerr::ZXQP0029_URI_ACCESS_DENIED,1561 throw XQUERY_EXCEPTION(zerr::ZXQP0029_URI_ACCESS_DENIED,
@@ -1574,14 +1579,14 @@
1574void static_context::apply_url_resolvers(1579void static_context::apply_url_resolvers(
1575 std::vector<zstring>& aUrls,1580 std::vector<zstring>& aUrls,
1576 internal::EntityData const* aEntityData,1581 internal::EntityData const* aEntityData,
1577 std::auto_ptr<internal::Resource>& oResource, 1582 std::auto_ptr<internal::Resource>& oResource,
1578 zstring& oErrorMessage) const1583 zstring& oErrorMessage) const
1579{1584{
1580 oErrorMessage = "";1585 oErrorMessage = "";
15811586
1582 // Iterate through all candidate URLs...1587 // Iterate through all candidate URLs...
1583 for (std::vector<zstring>::iterator url = aUrls.begin();1588 for (std::vector<zstring>::iterator url = aUrls.begin();
1584 url != aUrls.end(); url++) 1589 url != aUrls.end(); url++)
1585 {1590 {
1586 // We should never try to load the http-client module using its original URI,1591 // We should never try to load the http-client module using its original URI,
1587 // because that URI starts with http:, so we'll try to load the http-client1592 // because that URI starts with http:, so we'll try to load the http-client
@@ -1600,7 +1605,7 @@
1600 sctx->theURLResolvers.begin();1605 sctx->theURLResolvers.begin();
1601 resolver != sctx->theURLResolvers.end(); resolver++)1606 resolver != sctx->theURLResolvers.end(); resolver++)
1602 {1607 {
1603 try 1608 try
1604 {1609 {
1605 // Take ownership of returned Resource (if any)1610 // Take ownership of returned Resource (if any)
1606 oResource.reset((*resolver)->resolveURL(*url, aEntityData));1611 oResource.reset((*resolver)->resolveURL(*url, aEntityData));
@@ -1611,15 +1616,15 @@
1611 return;1616 return;
1612 }1617 }
1613 }1618 }
1614 catch (const std::exception& e) 1619 catch (const std::exception& e)
1615 {1620 {
1616 if (oErrorMessage == "") 1621 if (oErrorMessage == "")
1617 {1622 {
1618 // Really no point in saving anything more than the first message1623 // Really no point in saving anything more than the first message
1619 oErrorMessage = e.what();1624 oErrorMessage = e.what();
1620 }1625 }
1621 }1626 }
1622 catch (...) 1627 catch (...)
1623 {1628 {
1624 // Not much we can do here except try the rest of the1629 // Not much we can do here except try the rest of the
1625 // candidate URIs1630 // candidate URIs
@@ -2169,7 +2174,7 @@
2169 {2174 {
2170 if (externalVarsOnly)2175 if (externalVarsOnly)
2171 {2176 {
2172 if((*ite).second->is_external()) 2177 if((*ite).second->is_external())
2173 vars.push_back((*ite).second);2178 vars.push_back((*ite).second);
2174 }2179 }
2175 else2180 else
@@ -2179,7 +2184,7 @@
2179 }2184 }
2180 }2185 }
2181 }2186 }
2182 2187
2183 if (returnPrivateVars && sctx->theImportedPrivateVariablesMap != NULL)2188 if (returnPrivateVars && sctx->theImportedPrivateVariablesMap != NULL)
2184 {2189 {
2185 VariableMap::iterator ite = sctx->theImportedPrivateVariablesMap->begin();2190 VariableMap::iterator ite = sctx->theImportedPrivateVariablesMap->begin();
@@ -2199,7 +2204,7 @@
2199 {2204 {
2200 if(externalVarsOnly)2205 if(externalVarsOnly)
2201 {2206 {
2202 if((*ite).second->is_external()) 2207 if((*ite).second->is_external())
2203 vars.push_back((*ite).second);2208 vars.push_back((*ite).second);
2204 }2209 }
2205 else2210 else
@@ -3220,11 +3225,11 @@
3220 PrologOption option(qname, value);3225 PrologOption option(qname, value);
32213226
3222 store::Item* qname2 = option.theName.getp();3227 store::Item* qname2 = option.theName.getp();
3223 3228
3224 zstring lNamespace = qname2->getNamespace();3229 zstring lNamespace = qname2->getNamespace();
32253230
3226 // If option namespace starts with zorba options namespace3231 // If option namespace starts with zorba options namespace
3227 if ( lNamespace.find(ZORBA_OPTIONS_NS) == 0 ) 3232 if ( lNamespace.find(ZORBA_OPTIONS_NS) == 0 )
3228 {3233 {
3229 zstring lLocalName = qname2->getLocalName();3234 zstring lLocalName = qname2->getLocalName();
32303235
@@ -3239,7 +3244,7 @@
3239 process_feature_option(lVal1, lLocalName == "enable", loc);3244 process_feature_option(lVal1, lLocalName == "enable", loc);
3240 lCommaFound = true;3245 lCommaFound = true;
3241 }3246 }
3242 process_feature_option(lCommaFound ? lVal2 : lVal1, 3247 process_feature_option(lCommaFound ? lVal2 : lVal1,
3243 lLocalName == "enable",3248 lLocalName == "enable",
3244 loc);3249 loc);
3245 }3250 }
@@ -3254,7 +3259,7 @@
3254 process_optim_option(lVal1, lLocalName == "enable", loc);3259 process_optim_option(lVal1, lLocalName == "enable", loc);
3255 lCommaFound = true;3260 lCommaFound = true;
3256 }3261 }
3257 process_optim_option(lCommaFound ? lVal2 : lVal1, 3262 process_optim_option(lCommaFound ? lVal2 : lVal1,
3258 lLocalName == "enable",3263 lLocalName == "enable",
3259 loc);3264 loc);
3260 }3265 }
@@ -3282,7 +3287,7 @@
3282 // Re-use "ModuleVersion" class since it does 98% of the work for us;3287 // Re-use "ModuleVersion" class since it does 98% of the work for us;
3283 // just use a fake URI3288 // just use a fake URI
3284 ModuleVersion lOptVersion(zstring(ZORBA_VERSIONING_NS) + "/corezorba", value);3289 ModuleVersion lOptVersion(zstring(ZORBA_VERSIONING_NS) + "/corezorba", value);
3285 if (! lOptVersion.is_valid_version()) 3290 if (! lOptVersion.is_valid_version())
3286 {3291 {
3287 RAISE_ERROR(zerr::ZXQP0039_INVALID_VERSION_SPECIFICATION, loc,3292 RAISE_ERROR(zerr::ZXQP0039_INVALID_VERSION_SPECIFICATION, loc,
3288 ERROR_PARAMS(value));3293 ERROR_PARAMS(value));
@@ -3291,7 +3296,7 @@
3291 ModuleVersion lZorbaVersion(zstring(ZORBA_VERSIONING_NS) + "/corezorba",3296 ModuleVersion lZorbaVersion(zstring(ZORBA_VERSIONING_NS) + "/corezorba",
3292 ZORBA_VERSION);3297 ZORBA_VERSION);
32933298
3294 if ( ! lZorbaVersion.satisfies(lOptVersion)) 3299 if ( ! lZorbaVersion.satisfies(lOptVersion))
3295 {3300 {
3296 RAISE_ERROR(zerr::ZXQP0038_INAPPROPRIATE_ZORBA_VERSION, loc,3301 RAISE_ERROR(zerr::ZXQP0038_INAPPROPRIATE_ZORBA_VERSION, loc,
3297 ERROR_PARAMS(value, ZORBA_VERSION));3302 ERROR_PARAMS(value, ZORBA_VERSION));
@@ -3301,7 +3306,7 @@
33013306
3302 // If the option is in (starts-with) Zorba's own namespace but not known,3307 // If the option is in (starts-with) Zorba's own namespace but not known,
3303 // we raise an error3308 // we raise an error
3304 else 3309 else
3305 {3310 {
3306 RAISE_ERROR(zerr::ZXQP0060_OPTION_NOT_KNOWN, loc,3311 RAISE_ERROR(zerr::ZXQP0060_OPTION_NOT_KNOWN, loc,
3307 ERROR_PARAMS(qname2->getNamespace() + ":" + qname2->getLocalName()));3312 ERROR_PARAMS(qname2->getNamespace() + ":" + qname2->getLocalName()));
@@ -3352,7 +3357,7 @@
3352 const zstring& name,3357 const zstring& name,
3353 const QueryLoc& loc)3358 const QueryLoc& loc)
3354{3359{
3355 store::Item_t lQName = parse_and_expand_qname( value, ZORBA_WARN_NS, loc ); 3360 store::Item_t lQName = parse_and_expand_qname( value, ZORBA_WARN_NS, loc );
33563361
3357 std::vector<store::Item_t>::iterator lIter;3362 std::vector<store::Item_t>::iterator lIter;
33583363
@@ -3418,7 +3423,7 @@
3418 RAISE_ERROR(zerr::ZDST0060_FEATURE_NOT_SUPPORTED, loc,3423 RAISE_ERROR(zerr::ZDST0060_FEATURE_NOT_SUPPORTED, loc,
3419 ERROR_PARAMS(featureName->getStringValue(),3424 ERROR_PARAMS(featureName->getStringValue(),
3420 ZED(ZDST0060_unknown_namespace),3425 ZED(ZDST0060_unknown_namespace),
3421 featureName->getNamespace())); 3426 featureName->getNamespace()));
3422 }3427 }
34233428
3424 feature::kind k;3429 feature::kind k;
@@ -3434,7 +3439,7 @@
3434 RAISE_ERROR(zerr::ZDST0060_FEATURE_NOT_SUPPORTED, loc,3439 RAISE_ERROR(zerr::ZDST0060_FEATURE_NOT_SUPPORTED, loc,
3435 ERROR_PARAMS(featureName->getStringValue(),3440 ERROR_PARAMS(featureName->getStringValue(),
3436 ZED(ZDST0060_unknown_localname),3441 ZED(ZDST0060_unknown_localname),
3437 featureName->getLocalName())); 3442 featureName->getLocalName()));
3438 }3443 }
3439}3444}
34403445
@@ -3450,7 +3455,7 @@
3450 if (value != "for-serialization-only")3455 if (value != "for-serialization-only")
3451 {3456 {
3452 RAISE_ERROR(zerr::ZDST0060_FEATURE_NOT_SUPPORTED, loc,3457 RAISE_ERROR(zerr::ZDST0060_FEATURE_NOT_SUPPORTED, loc,
3453 ERROR_PARAMS(value, ZED(ZDST0060_unknown_localname), value)); 3458 ERROR_PARAMS(value, ZED(ZDST0060_unknown_localname), value));
3454 }3459 }
3455}3460}
34563461
@@ -3974,11 +3979,11 @@
3974 {3979 {
3975 theImportedPrivateVariablesMap = new VariableMap(0, NULL, 8, false);3980 theImportedPrivateVariablesMap = new VariableMap(0, NULL, 8, false);
3976 }3981 }
3977 3982
3978 if (!theImportedPrivateVariablesMap->insert(ve->get_name(), ve))3983 if (!theImportedPrivateVariablesMap->insert(ve->get_name(), ve))
3979 {3984 {
3980 throw XQUERY_EXCEPTION_VAR(err::XQST0049, ERROR_PARAMS( ve->get_name()->getStringValue() ), ERROR_LOC( loc ));3985 throw XQUERY_EXCEPTION_VAR(err::XQST0049, ERROR_PARAMS( ve->get_name()->getStringValue() ), ERROR_LOC( loc ));
3981 } 3986 }
3982 }3987 }
3983 }3988 }
3984 }3989 }
39853990
=== modified file 'src/context/static_context.h'
--- src/context/static_context.h 2012-03-07 15:49:25 +0000
+++ src/context/static_context.h 2012-03-13 15:50:27 +0000
@@ -273,7 +273,7 @@
273 theExternalModulesMap :273 theExternalModulesMap :
274 -----------------------274 -----------------------
275275
276 theTypeMnager :276 theTypeManager :
277 ---------------277 ---------------
278 If non NULL, then "this" is the root sctx of a module, and theTypeManager stores278 If non NULL, then "this" is the root sctx of a module, and theTypeManager stores
279 the schemas that are imported by the associated module (in-scope element279 the schemas that are imported by the associated module (in-scope element
@@ -296,7 +296,7 @@
296296
297 theVariablesMap :297 theVariablesMap :
298 -----------------298 -----------------
299 299
300 theImportedPrivateVariablesMap :300 theImportedPrivateVariablesMap :
301 --------------------------------301 --------------------------------
302302
@@ -469,6 +469,7 @@
469 static const char* ZORBA_FETCH_FN_NS;469 static const char* ZORBA_FETCH_FN_NS;
470 static const char* ZORBA_NODE_FN_NS;470 static const char* ZORBA_NODE_FN_NS;
471 static const char* ZORBA_XML_FN_NS;471 static const char* ZORBA_XML_FN_NS;
472 static const char* ZORBA_XML_FN_OPTIONS_NS;
472473
473 // Namespaces of virtual modules declaring zorba builtin functions474 // Namespaces of virtual modules declaring zorba builtin functions
474 static const char* ZORBA_UTIL_FN_NS;475 static const char* ZORBA_UTIL_FN_NS;
@@ -522,7 +523,7 @@
522 xqtref_t theContextItemType;523 xqtref_t theContextItemType;
523524
524 VariableMap * theVariablesMap;525 VariableMap * theVariablesMap;
525 526
526 VariableMap * theImportedPrivateVariablesMap;527 VariableMap * theImportedPrivateVariablesMap;
527528
528 FunctionMap * theFunctionMap;529 FunctionMap * theFunctionMap;
529530
=== modified file 'src/diagnostics/diagnostic_en.xml'
--- src/diagnostics/diagnostic_en.xml 2012-03-12 23:43:56 +0000
+++ src/diagnostics/diagnostic_en.xml 2012-03-13 15:50:27 +0000
@@ -1753,7 +1753,7 @@
1753 </diagnostic>1753 </diagnostic>
17541754
1755 <diagnostic code="ZXQD0003" name="INCONSISTENT_PARSE_FRAGMENT_OPTIONS">1755 <diagnostic code="ZXQD0003" name="INCONSISTENT_PARSE_FRAGMENT_OPTIONS">
1756 <value>inconsistent options to the parse-xml-fragment() function: $1</value>1756 <value>inconsistent options to the parse-xml() function: $1</value>
1757 </diagnostic>1757 </diagnostic>
17581758
1759 <diagnostic code="ZXQD0004" name="INVALID_PARAMETER">1759 <diagnostic code="ZXQD0004" name="INVALID_PARAMETER">
@@ -2620,6 +2620,10 @@
2620 <entry key="BadXMLDocument_2o">2620 <entry key="BadXMLDocument_2o">
2621 <value>malformed XML document${ at "2"}</value>2621 <value>malformed XML document${ at "2"}</value>
2622 </entry>2622 </entry>
2623
2624 <entry key="BadXMLNoOpeningTag">
2625 <value>closing tag without matching opening tag</value>
2626 </entry>
26232627
2624 <entry key="BadXMLForXQDoc_3">2628 <entry key="BadXMLForXQDoc_3">
2625 <value>can not parse as XML for xqdoc: $3</value>2629 <value>can not parse as XML for xqdoc: $3</value>
@@ -3517,12 +3521,12 @@
3517 <value>xqueryx content is empty</value>3521 <value>xqueryx content is empty</value>
3518 </entry>3522 </entry>
35193523
3520 <entry key="ParseFragmentOptionDSLNotAllowed">
3521 <value>if the e option is specified, none of the options d, s, or l may be enabled</value>
3522 </entry>
3523
3524 <entry key="ParseFragmentOptionCombinationNotAllowed">3524 <entry key="ParseFragmentOptionCombinationNotAllowed">
3525 <value>specifying both $2 and $3 is an error</value>3525 <value>only one of the &lt;schema-validate/&gt;, &lt;DTD-validate/&gt; or &lt;parse-external-parsed-entity/&gt; options can be specified</value>
3526 </entry>
3527
3528 <entry key="ParseFragmentInvalidOptions">
3529 <value>invalid options passed to the parse-xml:parse() function, the element must in the schema target namespace</value>
3526 </entry>3530 </entry>
35273531
3528 </subvalues>3532 </subvalues>
35293533
=== modified file 'src/diagnostics/pregenerated/dict_en.cpp'
--- src/diagnostics/pregenerated/dict_en.cpp 2012-03-12 23:43:56 +0000
+++ src/diagnostics/pregenerated/dict_en.cpp 2012-03-13 15:50:27 +0000
@@ -386,7 +386,7 @@
386 { "ZWST0006", "\"$1\": function caching might not give the intended result because the function is declared as $2" },386 { "ZWST0006", "\"$1\": function caching might not give the intended result because the function is declared as $2" },
387 { "ZXQD0001", "\"$1\": prefix not declared when calling function \"$2\" from $3" },387 { "ZXQD0001", "\"$1\": prefix not declared when calling function \"$2\" from $3" },
388 { "ZXQD0002", "\"$1\": $2" },388 { "ZXQD0002", "\"$1\": $2" },
389 { "ZXQD0003", "inconsistent options to the parse-xml-fragment() function: $1" },389 { "ZXQD0003", "inconsistent options to the parse-xml() function: $1" },
390 { "ZXQD0004", "invalid parameter: $1" },390 { "ZXQD0004", "invalid parameter: $1" },
391 { "ZXQD0005", "key with type $1 not subtype or castable to target type $2 of map ($3)" },391 { "ZXQD0005", "key with type $1 not subtype or castable to target type $2 of map ($3)" },
392 { "ZXQD0006", "\"$1\": invalid UTF-8 byte sequence" },392 { "ZXQD0006", "\"$1\": invalid UTF-8 byte sequence" },
@@ -464,6 +464,7 @@
464 { "~BadWordNetPtr_2", "\"$2\": invalid pointer type" },464 { "~BadWordNetPtr_2", "\"$2\": invalid pointer type" },
465 { "~BadXMLDocument_2o", "malformed XML document${ at \"2\"}" },465 { "~BadXMLDocument_2o", "malformed XML document${ at \"2\"}" },
466 { "~BadXMLForXQDoc_3", "can not parse as XML for xqdoc: $3" },466 { "~BadXMLForXQDoc_3", "can not parse as XML for xqdoc: $3" },
467 { "~BadXMLNoOpeningTag", "closing tag without matching opening tag" },
467 { "~BadXQueryVersion", "unsupported XQuery version" },468 { "~BadXQueryVersion", "unsupported XQuery version" },
468 { "~Base64BadChar", "invalid Base64 character" },469 { "~Base64BadChar", "invalid Base64 character" },
469 { "~Base64Equals", "in Base64, '=' must be at the end and followed by one of [AEIMQUYcgkosw048]" },470 { "~Base64Equals", "in Base64, '=' must be at the end and followed by one of [AEIMQUYcgkosw048]" },
@@ -582,8 +583,8 @@
582 { "~OpNodeBeforeMustHaveNodes", "op:node-before() must have nodes as parameters" },583 { "~OpNodeBeforeMustHaveNodes", "op:node-before() must have nodes as parameters" },
583 { "~OperationNotDef_23", "$2 not defined for type \"$3\"" },584 { "~OperationNotDef_23", "$2 not defined for type \"$3\"" },
584 { "~OperationNotPossibleWithTypes_234", "\"$2\": operation not possible with parameters of type \"$3\" and \"$4\"" },585 { "~OperationNotPossibleWithTypes_234", "\"$2\": operation not possible with parameters of type \"$3\" and \"$4\"" },
585 { "~ParseFragmentOptionCombinationNotAllowed", "specifying both $2 and $3 is an error" },586 { "~ParseFragmentInvalidOptions", "invalid options passed to the parse-xml:parse() function, the element must in the schema target namespace" },
586 { "~ParseFragmentOptionDSLNotAllowed", "if the e option is specified, none of the options d, s, or l may be enabled" },587 { "~ParseFragmentOptionCombinationNotAllowed", "only one of the <schema-validate/>, <DTD-validate/> or <parse-external-parsed-entity/> options can be specified" },
587 { "~ParserInitFailed", "parser initialization failed" },588 { "~ParserInitFailed", "parser initialization failed" },
588 { "~ParserNoCreateTree", "XML tree creation failed" },589 { "~ParserNoCreateTree", "XML tree creation failed" },
589 { "~PromotionImpossible", "promotion not possible" },590 { "~PromotionImpossible", "promotion not possible" },
590591
=== modified file 'src/functions/pregenerated/func_parse_fragment.cpp'
--- src/functions/pregenerated/func_parse_fragment.cpp 2012-02-16 12:48:17 +0000
+++ src/functions/pregenerated/func_parse_fragment.cpp 2012-03-13 15:50:27 +0000
@@ -31,7 +31,7 @@
3131
3232
3333
34PlanIter_t fn_zorba_xml_parse_xml_fragment::codegen(34PlanIter_t fn_zorba_xml_parse::codegen(
35 CompilerCB*,35 CompilerCB*,
36 static_context* sctx,36 static_context* sctx,
37 const QueryLoc& loc,37 const QueryLoc& loc,
@@ -46,26 +46,12 @@
46 {46 {
47 47
4848
49 DECL_WITH_KIND(sctx, fn_zorba_xml_parse_xml_fragment,49 DECL_WITH_KIND(sctx, fn_zorba_xml_parse,
50 (createQName("http://www.zorba-xquery.com/modules/xml","","parse-xml-fragment"), 50 (createQName("http://www.zorba-xquery.com/modules/xml","","parse"),
51 GENV_TYPESYSTEM.STRING_TYPE_QUESTION, 51 GENV_TYPESYSTEM.STRING_TYPE_QUESTION,
52 GENV_TYPESYSTEM.STRING_TYPE_ONE, 52 GENV_TYPESYSTEM.ELEMENT_TYPE_QUESTION,
53 GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),53 GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
54 FunctionConsts::FN_ZORBA_XML_PARSE_XML_FRAGMENT_2);54 FunctionConsts::FN_ZORBA_XML_PARSE_2);
55
56 }
57
58
59 {
60
61
62 DECL_WITH_KIND(sctx, fn_zorba_xml_parse_xml_fragment,
63 (createQName("http://www.zorba-xquery.com/modules/xml","","parse-xml-fragment"),
64 GENV_TYPESYSTEM.STRING_TYPE_QUESTION,
65 GENV_TYPESYSTEM.STRING_TYPE_ONE,
66 GENV_TYPESYSTEM.STRING_TYPE_ONE,
67 GENV_TYPESYSTEM.ANY_NODE_TYPE_STAR),
68 FunctionConsts::FN_ZORBA_XML_PARSE_XML_FRAGMENT_3);
6955
70 }56 }
7157
7258
=== modified file 'src/functions/pregenerated/func_parse_fragment.h'
--- src/functions/pregenerated/func_parse_fragment.h 2012-01-11 17:30:25 +0000
+++ src/functions/pregenerated/func_parse_fragment.h 2012-03-13 15:50:27 +0000
@@ -38,11 +38,11 @@
3838
3939
4040
41//fn-zorba-xml:parse-xml-fragment41//fn-zorba-xml:parse
42class fn_zorba_xml_parse_xml_fragment : public function42class fn_zorba_xml_parse : public function
43{43{
44public:44public:
45 fn_zorba_xml_parse_xml_fragment(const signature& sig, FunctionConsts::FunctionKind kind)45 fn_zorba_xml_parse(const signature& sig, FunctionConsts::FunctionKind kind)
46 : 46 :
47 function(sig, kind)47 function(sig, kind)
48 {48 {
4949
=== modified file 'src/functions/pregenerated/function_enum.h'
--- src/functions/pregenerated/function_enum.h 2012-03-08 18:51:25 +0000
+++ src/functions/pregenerated/function_enum.h 2012-03-13 15:50:27 +0000
@@ -256,8 +256,7 @@
256 FN_FORMAT_NUMBER_3,256 FN_FORMAT_NUMBER_3,
257 FN_FORMAT_INTEGER_2,257 FN_FORMAT_INTEGER_2,
258 FN_FORMAT_INTEGER_3,258 FN_FORMAT_INTEGER_3,
259 FN_ZORBA_XML_PARSE_XML_FRAGMENT_2,259 FN_ZORBA_XML_PARSE_2,
260 FN_ZORBA_XML_PARSE_XML_FRAGMENT_3,
261 FN_PARSE_XML_1,260 FN_PARSE_XML_1,
262 FN_PARSE_XML_2,261 FN_PARSE_XML_2,
263 FN_SERIALIZE_1,262 FN_SERIALIZE_1,
264263
=== modified file 'src/runtime/parsing_and_serializing/fragment_istream.h' (properties changed: +x to -x)
--- src/runtime/parsing_and_serializing/fragment_istream.h 2011-07-16 13:33:13 +0000
+++ src/runtime/parsing_and_serializing/fragment_istream.h 2012-03-13 15:50:27 +0000
@@ -18,55 +18,99 @@
18#define ZORBA_RUNTIME_PARSING_AND_SERIALIZING_FRAGMENT_ISTREAM_H18#define ZORBA_RUNTIME_PARSING_AND_SERIALIZING_FRAGMENT_ISTREAM_H
1919
20#include <iostream>20#include <iostream>
21#include <libxml/parser.h>
22#include <store/api/iterator.h>
2123
22namespace zorba {24namespace zorba {
2325
24/**26/**
25 * A class to hold an input stream for the parse-xml-fragment function27 * A class to hold an input stream for the parse-xml:parse() function
26 * Author: Zorba Team28 * Author: Nicolae Brinza
27 */29 */
28class FragmentIStream : public std::istream30class FragmentIStream : public std::istream
29{31{
30public:32public:
33 static const unsigned int BUFFER_SIZE = 4096;
34 static const unsigned int LOOKAHEAD_BYTES = 3; // lookahead fetching is implemented, but currently not used
35 static const unsigned int PARSED_NODES_BATCH_SIZE = 1024;
36
37public:
31 FragmentIStream()38 FragmentIStream()
32 :39 :
33 std::istream(NULL),40 std::istream(NULL),
34 theIss(NULL),41 theIss(NULL),
35 theStream(NULL),42 theStream(NULL),
36 theBuffer(NULL),43 theBuffer(NULL),
37 buffer_size(0),44 bytes_in_buffer(0),
38 current_offset(0)45 current_offset(0),
46 current_element_depth(0),
47 root_elements_to_skip(0),
48 ctxt(NULL),
49 first_start_doc(true),
50 forced_parser_stop(false),
51 reached_eof(false),
52 parsed_nodes_count(0),
53 children(NULL)
39 {54 {
40 };55 };
4156
57 bool stream_is_consumed()
58 {
59 return reached_eof && current_offset >= bytes_in_buffer;
60 }
61
42 void reset()62 void reset()
43 {63 {
44 if (theBuffer)64 if (theBuffer)
65 {
45 delete[] theBuffer;66 delete[] theBuffer;
67 }
68
46 if (theIss)69 if (theIss)
70 {
47 delete theIss;71 delete theIss;
72 }
73
74 if (ctxt)
75 {
76 xmlCtxtReset(ctxt);
77 xmlFreeParserCtxt(ctxt);
78 }
4879
49 theIss = NULL;80 theIss = NULL;
50 theStream = NULL;81 theStream = NULL;
51 theBuffer = NULL;82 theBuffer = NULL;
52 buffer_size = 0;83 bytes_in_buffer = 0;
53 current_offset = 0;84 current_offset = 0;
85 current_element_depth = 0;
86 root_elements_to_skip = 0;
87 ctxt = NULL;
88 first_start_doc = true;
89 forced_parser_stop = false;
90 reached_eof = false;
91 parsed_nodes_count = 0;
92 children = NULL;
54 }93 }
5594
56 virtual ~FragmentIStream()95 virtual ~FragmentIStream()
57 {96 {
58 if (theBuffer)97 reset();
59 delete[] theBuffer;
60 if (theIss)
61 delete theIss;
62 }98 }
6399
64public:100public:
65 std::istringstream* theIss;101 std::istringstream* theIss;
66 std::istream* theStream;102 std::istream* theStream;
67 char* theBuffer;103 char* theBuffer;
68 unsigned long buffer_size;104 unsigned long bytes_in_buffer;
69 unsigned long current_offset;105 unsigned long current_offset;
106 int current_element_depth;
107 int root_elements_to_skip;
108 xmlParserCtxtPtr ctxt;
109 bool first_start_doc;
110 bool forced_parser_stop;
111 bool reached_eof;
112 unsigned int parsed_nodes_count;
113 store::Iterator_t children;
70};114};
71115
72}116}
73117
=== modified file 'src/runtime/parsing_and_serializing/parse_fragment_impl.cpp' (properties changed: +x to -x)
--- src/runtime/parsing_and_serializing/parse_fragment_impl.cpp 2011-08-10 02:50:23 +0000
+++ src/runtime/parsing_and_serializing/parse_fragment_impl.cpp 2012-03-13 15:50:27 +0000
@@ -25,117 +25,150 @@
25#include "store/api/store.h"25#include "store/api/store.h"
26#include "store/api/item.h"26#include "store/api/item.h"
27#include "store/api/item_factory.h"27#include "store/api/item_factory.h"
28#include "store/api/load_properties.h"
2829
29#include "system/globalenv.h"30#include "system/globalenv.h"
3031
31#include "types/schema/schema.h"32#include "types/schema/schema.h"
32#include "types/schema/validate.h"33#include "types/schema/validate.h"
3334
35
34namespace zorba36namespace zorba
35{37{
3638
37/*******************************************************************************39/*******************************************************************************
38 14.9.1 fn-zorba-xml:parse-xml-fragment40 14.9.1 fn-zorba-xml:parse
39********************************************************************************/41********************************************************************************/
4042
41class ParseXmlFragmentOptions43store::Item_t getFirstAttribute(store::Item_t node)
42{44{
43public:45 store::Item_t attr;
44 // all options are false by default, except for enableFatelErrorProcessing which is true46 store::Iterator_t attributes = node->getAttributes();
45 bool enableExternalEntitiesProcessing;47 attributes->open();
46 bool enableDTDValidation;48 attributes->next(attr);
47 bool enableStrictSchemaValidation;49 attributes->close();
48 bool enableLaxSchemaValidation;50 return attr;
49 bool enableWhitespaceStripping;51}
50 bool enableFatelErrorProcessing;52
5153void processOptions(store::Item_t item, store::LoadProperties& props, static_context* theSctx, const QueryLoc& loc)
52public:54{
53 ParseXmlFragmentOptions() :55 URI lValidatedBaseUri;
54 enableExternalEntitiesProcessing(false),56 store::Item_t child, tempItem;
55 enableDTDValidation(false),57
56 enableStrictSchemaValidation(false),58 if (item.getp() == NULL)
57 enableLaxSchemaValidation(false),59 return;
58 enableWhitespaceStripping(false),60
59 enableFatelErrorProcessing(true) // only enableFatelErrorProcessing is set to true61#ifndef ZORBA_NO_XMLSCHEMA
60 {62 if (item->isValidated())
61 }63 {
6264 if (item->getNodeName() == NULL
63 void reset()65 ||
64 {66 item->getNodeName()->getNamespace() != static_context::ZORBA_XML_FN_OPTIONS_NS)
65 enableExternalEntitiesProcessing = false;67 {
66 enableDTDValidation = false;68 throw XQUERY_EXCEPTION(zerr::ZXQD0003_INCONSISTENT_PARSE_FRAGMENT_OPTIONS,
67 enableStrictSchemaValidation = false;69 ERROR_PARAMS(ZED(ParseFragmentInvalidOptions)), ERROR_LOC( loc ));
68 enableLaxSchemaValidation = false;70 }
69 enableWhitespaceStripping = false;71 }
70 enableFatelErrorProcessing = true; // only enableFatelErrorProcessing is set to true72 else
71 }73 {
7274 tempItem = NULL; // used as the effectiveValidationValue()'s typeName
73 static ParseXmlFragmentOptions parseOptions(const zstring& options, const QueryLoc& loc)75 Validator::effectiveValidationValue(
74 {76 item,
75 ParseXmlFragmentOptions opt;77 item,
7678 tempItem,
77 if (options.find("e") != zstring::npos && options.find("E") != zstring::npos)79 theSctx->get_typemanager(),
78 throw XQUERY_EXCEPTION(zerr::ZXQD0003_INCONSISTENT_PARSE_FRAGMENT_OPTIONS,80 ParseConstants::val_strict,
79 ERROR_PARAMS(ZED(ParseFragmentOptionCombinationNotAllowed), "e", "E"), ERROR_LOC( loc ));81 theSctx,
8082 loc);
81 if (options.find("d") != zstring::npos && options.find("D") != zstring::npos)83 }
82 throw XQUERY_EXCEPTION(zerr::ZXQD0003_INCONSISTENT_PARSE_FRAGMENT_OPTIONS,84#endif
83 ERROR_PARAMS(ZED(ParseFragmentOptionCombinationNotAllowed), "d", "D"), ERROR_LOC( loc ));85
8486 store::Iterator_t children = item->getChildren();
85 if (options.find("s") != zstring::npos && options.find("S") != zstring::npos)87 children->open();
86 throw XQUERY_EXCEPTION(zerr::ZXQD0003_INCONSISTENT_PARSE_FRAGMENT_OPTIONS,88
87 ERROR_PARAMS(ZED(ParseFragmentOptionCombinationNotAllowed), "s", "S"), ERROR_LOC( loc ));89 while (children->next(child))
8890 {
89 if (options.find("l") != zstring::npos && options.find("L") != zstring::npos)91 if (child->getNodeKind() != store::StoreConsts::elementNode)
90 throw XQUERY_EXCEPTION(zerr::ZXQD0003_INCONSISTENT_PARSE_FRAGMENT_OPTIONS,92 continue;
91 ERROR_PARAMS(ZED(ParseFragmentOptionCombinationNotAllowed), "l", "L"), ERROR_LOC( loc ));93
9294 if (child->getNodeName()->getLocalName() == "base-uri")
93 if (options.find("w") != zstring::npos && options.find("W") != zstring::npos)95 {
94 throw XQUERY_EXCEPTION(zerr::ZXQD0003_INCONSISTENT_PARSE_FRAGMENT_OPTIONS,96 store::Item_t attr = getFirstAttribute(child);
95 ERROR_PARAMS(ZED(ParseFragmentOptionCombinationNotAllowed), "w", "W"), ERROR_LOC( loc ));97
9698 try {
97 if (options.find("f") != zstring::npos && options.find("F") != zstring::npos)99 lValidatedBaseUri = URI(attr->getStringValue());
98 throw XQUERY_EXCEPTION(zerr::ZXQD0003_INCONSISTENT_PARSE_FRAGMENT_OPTIONS,100 } catch (ZorbaException const& /* e */) {
99 ERROR_PARAMS(ZED(ParseFragmentOptionCombinationNotAllowed), "f", "F"), ERROR_LOC( loc ));101 throw XQUERY_EXCEPTION(
100102 err::FODC0007,
101 if (options.find("e") != zstring::npos)103 ERROR_PARAMS( attr->getStringValue() ),
102 opt.enableExternalEntitiesProcessing = true;104 ERROR_LOC( loc )
103 if (options.find("d") != zstring::npos)105 );
104 opt.enableDTDValidation = true;106 }
105 if (options.find("s") != zstring::npos)107
106 opt.enableStrictSchemaValidation = true;108 if (!lValidatedBaseUri.is_absolute()) {
107 if (options.find("l") != zstring::npos)109 throw XQUERY_EXCEPTION(
108 opt.enableLaxSchemaValidation = true;110 err::FODC0007,
109 if (options.find("w") != zstring::npos)111 ERROR_PARAMS( lValidatedBaseUri.toString() ),
110 opt.enableWhitespaceStripping = true;112 ERROR_LOC( loc )
111 if (options.find("f") != zstring::npos)113 );
112 opt.enableFatelErrorProcessing = true;114 }
113115
114 if (options.find("E") != zstring::npos)116 props.setBaseUri(attr->getStringValue());
115 opt.enableExternalEntitiesProcessing = false;117 }
116 if (options.find("D") != zstring::npos)118 else if (child->getNodeName()->getLocalName() == "no-error")
117 opt.enableDTDValidation = false;119 props.setNoError(true);
118 if (options.find("S") != zstring::npos)120 else if (child->getNodeName()->getLocalName() == "strip-boundary-space")
119 opt.enableStrictSchemaValidation = false;121 props.setStripWhitespace(true);
120 if (options.find("L") != zstring::npos)122 else if (child->getNodeName()->getLocalName() == "schema-validate")
121 opt.enableLaxSchemaValidation = false;123 {
122 if (options.find("W") != zstring::npos)124 store::Item_t attr = getFirstAttribute(child);
123 opt.enableWhitespaceStripping = false;125 if (attr->getStringValue() == "strict")
124 if (options.find("F") != zstring::npos)126 props.setSchemaStrictValidate(true);
125 opt.enableFatelErrorProcessing = false;127 else
126128 props.setSchemaLaxValidate(true);
127 if (opt.enableExternalEntitiesProcessing129 }
128 &&130 else if (child->getNodeName()->getLocalName() == "DTD-validate")
129 (opt.enableDTDValidation || opt.enableStrictSchemaValidation || opt.enableLaxSchemaValidation))131 props.setDTDValidate(true);
130 {132 else if (child->getNodeName()->getLocalName() == "DTD-load")
131 throw XQUERY_EXCEPTION(zerr::ZXQD0003_INCONSISTENT_PARSE_FRAGMENT_OPTIONS,133 props.setDTDLoad(true);
132 ERROR_PARAMS(ZED(ParseFragmentOptionDSLNotAllowed)), ERROR_LOC( loc ));134 else if (child->getNodeName()->getLocalName() == "default-DTD-attributes")
133 }135 props.setDefaultDTDAttributes(true);
134136 else if (child->getNodeName()->getLocalName() == "parse-external-parsed-entity")
135 return opt;137 {
136 }138 props.setParseExternalParsedEntity(true);
137};139 store::Item_t attr;
138140 store::Iterator_t attribs = child->getAttributes();
141 attribs->open();
142 while (attribs->next(attr))
143 {
144 if (attr->getNodeName()->getLocalName() == "skip-root-nodes")
145 props.setSkipRootNodes(ztd::aton<xs_int>(attr->getStringValue().c_str()));
146 else if (attr->getNodeName()->getLocalName() == "skip-top-level-text-nodes")
147 props.setSkipTopLevelTextNodes(true);
148 }
149 attribs->close();
150 }
151 else if (child->getNodeName()->getLocalName() == "substitute-entities")
152 props.setSubstituteEntities(true);
153 else if (child->getNodeName()->getLocalName() == "xinclude-substitutions")
154 props.setXincludeSubstitutions(true);
155 else if (child->getNodeName()->getLocalName() == "remove-redundant-ns")
156 props.setRemoveRedundantNS(true);
157 else if (child->getNodeName()->getLocalName() == "no-CDATA")
158 props.setNoCDATA(true);
159 else if (child->getNodeName()->getLocalName() == "no-xinclude-nodes")
160 props.setNoXIncludeNodes(true);
161 }
162
163 children->close();
164
165 if (props.getSchemaLaxValidate() + props.getSchemaStrictValidate() +
166 props.getDTDValidate() + props.getParseExternalParsedEntity() > 1)
167 {
168 throw XQUERY_EXCEPTION(zerr::ZXQD0003_INCONSISTENT_PARSE_FRAGMENT_OPTIONS,
169 ERROR_PARAMS(ZED(ParseFragmentOptionCombinationNotAllowed)), ERROR_LOC( loc ));
170 }
171}
139172
140/*******************************************************************************173/*******************************************************************************
141174
@@ -145,8 +178,7 @@
145{178{
146 PlanIteratorState::reset(planState);179 PlanIteratorState::reset(planState);
147 theFragmentStream.reset();180 theFragmentStream.reset();
148 theProperties.setEnableDtd(false);181 theProperties.reset();
149 theProperties.setEnableExtParsedEntity(false);
150 theProperties.setStoreDocument(false);182 theProperties.setStoreDocument(false);
151 baseUri = "";183 baseUri = "";
152 docUri = "";184 docUri = "";
@@ -161,9 +193,7 @@
161{193{
162 store::Store& lStore = GENV.getStore();194 store::Store& lStore = GENV.getStore();
163 zstring docString;195 zstring docString;
164 URI lValidatedBaseUri;
165 store::Item_t tempItem;196 store::Item_t tempItem;
166 ParseXmlFragmentOptions parseOptions;
167 bool validated = true;197 bool validated = true;
168198
169 FnParseXmlFragmentIteratorState* state;199 FnParseXmlFragmentIteratorState* state;
@@ -182,87 +212,61 @@
182 state->theFragmentStream.theStream = state->theFragmentStream.theIss;212 state->theFragmentStream.theStream = state->theFragmentStream.theIss;
183 }213 }
184214
185 // optional base URI argument215 // read options
186 if (theChildren.size() == 3)216 consumeNext(tempItem, theChildren[1].getp(), planState);
187 {217 state->theProperties.setBaseUri(theSctx->get_base_uri());
188 consumeNext(result, theChildren[1].getp(), planState);218 state->theProperties.setStoreDocument(false);
189 ZORBA_ASSERT(result);219 processOptions(tempItem, state->theProperties, theSctx, loc);
190
191 try {
192 lValidatedBaseUri = URI(result->getStringValue());
193 } catch (ZorbaException const& /* e */) {
194 throw XQUERY_EXCEPTION(
195 err::FODC0007,
196 ERROR_PARAMS( result->getStringValue() ),
197 ERROR_LOC( loc )
198 );
199 }
200
201 if (!lValidatedBaseUri.is_absolute()) {
202 throw XQUERY_EXCEPTION(
203 err::FODC0007,
204 ERROR_PARAMS( lValidatedBaseUri.toString() ),
205 ERROR_LOC( loc )
206 );
207 }
208
209 result->getStringValue2(state->baseUri);
210
211 // read options
212 consumeNext(tempItem, theChildren[2].getp(), planState);
213 parseOptions = ParseXmlFragmentOptions::parseOptions(tempItem->getStringValue(), loc);
214
215 } else {
216 // read options
217 consumeNext(tempItem, theChildren[1].getp(), planState);
218 parseOptions = ParseXmlFragmentOptions::parseOptions(tempItem->getStringValue(), loc);
219
220 state->baseUri = theSctx->get_base_uri();
221 }
222220
223 // baseURI serves both as the base URI used by the XML parser221 // baseURI serves both as the base URI used by the XML parser
224 // to resolve relative entity references within the document,222 // to resolve relative entity references within the document,
225 // and as the base URI of the document node that is returned.223 // and as the base URI of the document node that is returned.
226 state->docUri = state->baseUri;224 state->baseUri = state->theProperties.getBaseUri();
227225 state->docUri = state->theProperties.getBaseUri();
228 // The DTD and ExternalEntitiesProcessing options/props cannot both be true at the same time226
229 if (parseOptions.enableDTDValidation)227
230 state->theProperties.setEnableDtd(true);228 ////////////////////////////////////////////////////////////////////////
231 if (parseOptions.enableExternalEntitiesProcessing)229 // External parsed entity processing
232 state->theProperties.setEnableExtParsedEntity(true);230 ////////////////////////////////////////////////////////////////////////
233 state->theProperties.setStoreDocument(false);231 if (state->theProperties.getParseExternalParsedEntity())
234
235 if (state->theProperties.getEnableExtParsedEntity())
236 {232 {
237 // state->theFragmentStream.root_elements_to_skip = 0;233 state->theFragmentStream.root_elements_to_skip = state->theProperties.getSkipRootNodes();
238234
239 while (state->theFragmentStream.theBuffer == NULL235 while ( ! state->theFragmentStream.stream_is_consumed())
240 ||
241 state->theFragmentStream.current_offset < state->theFragmentStream.buffer_size)
242 {236 {
243 try {237 try {
244 result = lStore.loadDocument(state->baseUri, state->docUri, state->theFragmentStream, state->theProperties);238 result = lStore.loadDocument(state->baseUri, state->docUri, state->theFragmentStream, state->theProperties);
245 } catch (ZorbaException const& e) {239 } catch (ZorbaException const& e) {
246 if (parseOptions.enableFatelErrorProcessing)240 if ( ! state->theProperties.getNoError())
247 throw XQUERY_EXCEPTION( err::FODC0006, ERROR_PARAMS("parse-xml:parse-xml-fragment()", e.what()), ERROR_LOC( loc ));241 throw XQUERY_EXCEPTION( err::FODC0006, ERROR_PARAMS("parse-xml:parse()", e.what()), ERROR_LOC( loc ));
248 else242 else
249 result = NULL;243 result = NULL;
250 }244 }
251245
252 if (result != NULL)246 if (result == NULL)
247 continue;
248
249 // Return the children of document node
250 state->theFragmentStream.children = result->getChildren();
251 while (state->theFragmentStream.children->next(result) && result != NULL)
253 {252 {
254 result->getChildren()->next(result);253 if (state->theProperties.getSkipTopLevelTextNodes() && result->getNodeKind() == store::StoreConsts::textNode)
254 continue;
255
255 STACK_PUSH(true, state);256 STACK_PUSH(true, state);
256 }257 }
257 }258 }
258 }259 }
260 ////////////////////////////////////////////////////////////////////////
261 // XML document processing
262 ////////////////////////////////////////////////////////////////////////
259 else // if (!state->theProperties.getEnableExtParsedEntity())263 else // if (!state->theProperties.getEnableExtParsedEntity())
260 {264 {
261 try {265 try {
262 result = lStore.loadDocument(state->baseUri, state->docUri, *state->theFragmentStream.theStream, state->theProperties);266 result = lStore.loadDocument(state->baseUri, state->docUri, *state->theFragmentStream.theStream, state->theProperties);
263 } catch (ZorbaException const& e) {267 } catch (ZorbaException const& e) {
264 if (parseOptions.enableFatelErrorProcessing)268 if ( ! state->theProperties.getNoError())
265 throw XQUERY_EXCEPTION( err::FODC0006, ERROR_PARAMS("parse-xml:parse-xml-fragment()", e.what()), ERROR_LOC( loc ));269 throw XQUERY_EXCEPTION( err::FODC0006, ERROR_PARAMS("parse-xml:parse()", e.what()), ERROR_LOC( loc ));
266 else270 else
267 result = NULL;271 result = NULL;
268 }272 }
@@ -270,7 +274,7 @@
270 if (result != NULL)274 if (result != NULL)
271 {275 {
272#ifndef ZORBA_NO_XMLSCHEMA276#ifndef ZORBA_NO_XMLSCHEMA
273 if (parseOptions.enableStrictSchemaValidation || parseOptions.enableLaxSchemaValidation)277 if (state->theProperties.getSchemaLaxValidate() || state->theProperties.getSchemaStrictValidate())
274 {278 {
275 try279 try
276 {280 {
@@ -280,13 +284,13 @@
280 result,284 result,
281 tempItem,285 tempItem,
282 theSctx->get_typemanager(),286 theSctx->get_typemanager(),
283 parseOptions.enableLaxSchemaValidation ? ParseConstants::val_lax : ParseConstants::val_strict,287 state->theProperties.getSchemaLaxValidate() ? ParseConstants::val_lax : ParseConstants::val_strict,
284 theSctx,288 theSctx,
285 this->loc);289 this->loc);
286 }290 }
287 catch (ZorbaException& /*e*/)291 catch (ZorbaException& /*e*/)
288 {292 {
289 if (parseOptions.enableFatelErrorProcessing)293 if ( ! state->theProperties.getNoError())
290 throw;294 throw;
291 else295 else
292 {296 {
@@ -298,11 +302,6 @@
298#endif302#endif
299 // Ignore the schema validation options if Zorba is built without schema support303 // Ignore the schema validation options if Zorba is built without schema support
300304
301 if (result != NULL && validated && parseOptions.enableWhitespaceStripping)
302 {
303 // TODO: whitespace stripping
304 }
305
306 STACK_PUSH(validated, state);305 STACK_PUSH(validated, state);
307 } // if (result != NULL)306 } // if (result != NULL)
308 } // if (state->theProperties.getEnableExtParsedEntity())307 } // if (state->theProperties.getEnableExtParsedEntity())
309308
=== modified file 'src/runtime/parsing_and_serializing/pregenerated/parse_fragment.cpp' (properties changed: +x to -x)
=== modified file 'src/runtime/parsing_and_serializing/pregenerated/parse_fragment.h' (properties changed: +x to -x)
--- src/runtime/parsing_and_serializing/pregenerated/parse_fragment.h 2011-10-19 15:28:51 +0000
+++ src/runtime/parsing_and_serializing/pregenerated/parse_fragment.h 2012-03-13 15:50:27 +0000
@@ -36,7 +36,7 @@
36namespace zorba {36namespace zorba {
3737
38/**38/**
39 * fn-zorba-xml:parse-xml-fragment39 * fn-zorba-xml:parse
40 * Author: Zorba Team40 * Author: Zorba Team
41 */41 */
42class FnParseXmlFragmentIteratorState : public PlanIteratorState42class FnParseXmlFragmentIteratorState : public PlanIteratorState
4343
=== modified file 'src/runtime/sequences/sequences_impl.cpp'
--- src/runtime/sequences/sequences_impl.cpp 2012-02-15 10:25:02 +0000
+++ src/runtime/sequences/sequences_impl.cpp 2012-03-13 15:50:27 +0000
@@ -464,13 +464,13 @@
464 state->theIsChildReset = false;464 state->theIsChildReset = false;
465465
466 CONSUME(startPosItem, 1);466 CONSUME(startPosItem, 1);
467 startPos = 467 startPos =
468 static_cast<xs_long>(startPosItem->getDoubleValue().round().getNumber()) - 1;468 static_cast<xs_long>(startPosItem->getDoubleValue().round().getNumber()) - 1;
469469
470 if (theChildren.size() == 3)470 if (theChildren.size() == 3)
471 {471 {
472 CONSUME(lengthItem, 2);472 CONSUME(lengthItem, 2);
473 state->theRemaining = 473 state->theRemaining =
474 static_cast<xs_long>(lengthItem->getDoubleValue().round().getNumber());474 static_cast<xs_long>(lengthItem->getDoubleValue().round().getNumber());
475 }475 }
476476
@@ -1033,7 +1033,7 @@
1033}1033}
10341034
1035bool FnDeepEqualIterator::nextImpl(1035bool FnDeepEqualIterator::nextImpl(
1036 store::Item_t& result, 1036 store::Item_t& result,
1037 PlanState& planState) const1037 PlanState& planState) const
1038{1038{
1039 PlanIteratorState* state;1039 PlanIteratorState* state;
@@ -1061,7 +1061,7 @@
1061 break;1061 break;
1062 }1062 }
10631063
1064 if (arg1->isFunction() || arg2->isFunction()) 1064 if (arg1->isFunction() || arg2->isFunction())
1065 {1065 {
1066 throw XQUERY_EXCEPTION(1066 throw XQUERY_EXCEPTION(
1067 err::FOTY0015,1067 err::FOTY0015,
@@ -1161,12 +1161,12 @@
1161 DEFAULT_STACK_INIT(PlanIteratorState, state, planState);1161 DEFAULT_STACK_INIT(PlanIteratorState, state, planState);
11621162
11631163
1164 for (;;) 1164 for (;;)
1165 {1165 {
1166 // load items1166 // load items
1167 for (i = 0; i < 2; i++) 1167 for (i = 0; i < 2; i++)
1168 {1168 {
1169 if (item [i] == NULL) 1169 if (item [i] == NULL)
1170 {1170 {
1171 if (!CONSUME (item[i], i))1171 if (!CONSUME (item[i], i))
1172 {1172 {
@@ -1178,7 +1178,7 @@
11781178
1179 // advance, output1179 // advance, output
1180 order = GENV_STORE.compareNodes(item[0].getp(), item[1].getp());1180 order = GENV_STORE.compareNodes(item[0].getp(), item[1].getp());
1181 if ( order == 0 ) 1181 if ( order == 0 )
1182 {1182 {
1183 result = item[0];1183 result = item[0];
1184 STACK_PUSH (true, state);1184 STACK_PUSH (true, state);
@@ -1739,7 +1739,7 @@
1739 planState.theGlobalDynCtx->theDocLoadingUserTime +=1739 planState.theGlobalDynCtx->theDocLoadingUserTime +=
1740 zorbatm::get_cputime_elapsed(t0user, t1user);1740 zorbatm::get_cputime_elapsed(t0user, t1user);
17411741
1742 planState.theGlobalDynCtx->theDocLoadingTime += 1742 planState.theGlobalDynCtx->theDocLoadingTime +=
1743 zorbatm::get_walltime_elapsed(t0, t1);1743 zorbatm::get_walltime_elapsed(t0, t1);
1744}1744}
17451745
@@ -1833,7 +1833,7 @@
1833 // Prepare a LoadProperties for loading the stream into the store1833 // Prepare a LoadProperties for loading the stream into the store
1834 store::LoadProperties lLoadProperties;1834 store::LoadProperties lLoadProperties;
1835 lLoadProperties.setStoreDocument(true);1835 lLoadProperties.setStoreDocument(true);
1836 lLoadProperties.setEnableDtd( aSctx->is_feature_set( feature::dtd ) );1836 lLoadProperties.setDTDValidate( aSctx->is_feature_set( feature::dtd ) );
18371837
1838 // Resolve URI to a stream1838 // Resolve URI to a stream
1839 zstring lErrorMessage;1839 zstring lErrorMessage;
18401840
=== modified file 'src/runtime/spec/parsing_and_serializing/parse_fragment.xml'
--- src/runtime/spec/parsing_and_serializing/parse_fragment.xml 2011-07-15 16:39:51 +0000
+++ src/runtime/spec/parsing_and_serializing/parse_fragment.xml 2012-03-13 15:50:27 +0000
@@ -19,27 +19,20 @@
1919
20<!--20<!--
21/*******************************************************************************21/*******************************************************************************
22 * 14.9.1 fn:parse-xml-fragment22 * 14.9.1 parse-xml:parse
23********************************************************************************/23********************************************************************************/
24-->24-->
25 <zorba:iterator name="FnParseXmlFragmentIterator">25 <zorba:iterator name="FnParseXmlFragmentIterator">
26 26
27 <zorba:description author="Zorba Team">fn-zorba-xml:parse-xml-fragment</zorba:description>27 <zorba:description author="Zorba Team">fn-zorba-xml:parse</zorba:description>
28 28
29 <zorba:function>29 <zorba:function>
30 <zorba:signature localname="parse-xml-fragment" prefix="fn-zorba-xml">30 <zorba:signature localname="parse" prefix="fn-zorba-xml">
31 <zorba:param>xs:string?</zorba:param> <!-- string to parse -->31 <zorba:param>xs:string?</zorba:param> <!-- string to parse -->
32 <zorba:param>xs:string</zorba:param> <!-- parse-xml options -->32 <zorba:param>element()?</zorba:param> <!-- parse() options -->
33 <zorba:output>node()*</zorba:output>33 <zorba:output>node()*</zorba:output>
34 </zorba:signature>34 </zorba:signature>
3535
36 <zorba:signature localname="parse-xml-fragment" prefix="fn-zorba-xml">
37 <zorba:param>xs:string?</zorba:param> <!-- string to parse -->
38 <zorba:param>xs:string</zorba:param> <!-- baseURI -->
39 <zorba:param>xs:string</zorba:param> <!-- parse-xml options -->
40 <zorba:output>node()*</zorba:output>
41 </zorba:signature>
42
43 <zorba:methods>36 <zorba:methods>
44 <zorba:accessesDynCtx returnValue="true"/>37 <zorba:accessesDynCtx returnValue="true"/>
45 </zorba:methods>38 </zorba:methods>
4639
=== modified file 'src/store/api/load_properties.h'
--- src/store/api/load_properties.h 2011-06-29 15:03:41 +0000
+++ src/store/api/load_properties.h 2012-03-13 15:50:27 +0000
@@ -35,12 +35,70 @@
35{35{
36private:36private:
37 bool theStoreDocument;37 bool theStoreDocument;
38 bool theEnableDtdLoader;38 zstring theBaseUri;
39 bool theEnableExtParsedEntityLoader;39 bool theNoError;
40 bool theStripWhitespace;
41 bool theSchemaLaxValidate;
42 bool theSchemaStrictValidate;
43 bool theDTDValidate;
44 bool theDTDLoad;
45 bool theDefaultDTDAttributes;
46 bool theParseExternalParsedEntity;
47 unsigned int theSkipRootNodes;
48 bool theSkipTopLevelTextNodes;
49 bool theSubstituteEntities;
50 bool theXincludeSubstitutions;
51 bool theRemoveRedundantNS;
52 bool theNoCDATA;
53 bool theNoXIncludeNodes;
4054
41public:55public:
42 LoadProperties() : theStoreDocument(true), theEnableDtdLoader(false), theEnableExtParsedEntityLoader(false) {}56 LoadProperties()
43 virtual ~LoadProperties() {}57 :
58 theStoreDocument(true),
59 theBaseUri(""),
60 theNoError(false),
61 theStripWhitespace(false),
62 theSchemaLaxValidate(false),
63 theSchemaStrictValidate(false),
64 theDTDValidate(false),
65 theDTDLoad(false),
66 theDefaultDTDAttributes(false),
67 theParseExternalParsedEntity(false),
68 theSkipRootNodes(0),
69 theSkipTopLevelTextNodes(false),
70 theSubstituteEntities(false),
71 theXincludeSubstitutions(false),
72 theRemoveRedundantNS(false),
73 theNoCDATA(false),
74 theNoXIncludeNodes(false)
75 {
76 }
77
78 virtual ~LoadProperties()
79 {
80 }
81
82 void reset()
83 {
84 theStoreDocument = true;
85 theBaseUri = "";
86 theNoError = false;
87 theStripWhitespace = false;
88 theSchemaLaxValidate = false;
89 theSchemaStrictValidate = false;
90 theDTDValidate = false;
91 theDTDLoad = false;
92 theDefaultDTDAttributes = false;
93 theParseExternalParsedEntity = false;
94 theSkipRootNodes = 0;
95 theSkipTopLevelTextNodes = false;
96 theSubstituteEntities = false;
97 theXincludeSubstitutions = false;
98 theRemoveRedundantNS = false;
99 theNoCDATA = false;
100 theNoXIncludeNodes = false;
101 }
44102
45 /**103 /**
46 * Set the property storeDocument, it specifies whether the document104 * Set the property storeDocument, it specifies whether the document
@@ -60,40 +118,168 @@
60 return theStoreDocument;118 return theStoreDocument;
61 }119 }
62120
63 /**121 // theBaseUri
64 * Set the property enableDtd, it specifies whether the document's122 void setBaseUri(const zstring& aBaseUri)
65 * dtd should be enabled when loading123 {
66 */124 theBaseUri = aBaseUri;
67 void setEnableDtd(bool aEnableDtdLoader)125 }
68 {126 zstring getBaseUri() const
69 theEnableDtdLoader = aEnableDtdLoader;127 {
70 }128 return theBaseUri;
71129 }
72 /**130
73 * Get the property enableDtd, it specifies whether the document's131 // theNoError
74 * dtd should be enabled when loading132 void setNoError(bool aNoError)
75 */133 {
76 bool getEnableDtd() const134 theNoError = aNoError;
77 {135 }
78 return theEnableDtdLoader;136 bool getNoError() const
79 }137 {
80138 return theNoError;
81 /**139 }
82 * Set the property enableExtParsedEntity, it specifies whether the document140
83 * should be parsed as an enxternal general parsed entity141 // theStripWhitespace
84 */142 void setStripWhitespace(bool aStripWhitespace)
85 void setEnableExtParsedEntity(bool aEnableExtParsedEntityLoader)143 {
86 {144 theStripWhitespace = aStripWhitespace;
87 theEnableExtParsedEntityLoader = aEnableExtParsedEntityLoader;145 }
88 }146 bool getStripWhitespace() const
89147 {
90 /**148 return theStripWhitespace;
91 * Get the property enableDtd, it specifies whether the document149 }
92 * should be parsed as an enxternal general parsed entity150
93 */151 // theSchemaLaxValidate
94 bool getEnableExtParsedEntity() const152 void setSchemaLaxValidate(bool aSchemaLaxValidate)
95 {153 {
96 return theEnableExtParsedEntityLoader;154 theSchemaLaxValidate = aSchemaLaxValidate;
155 if (theSchemaLaxValidate)
156 theSchemaStrictValidate = false;
157 }
158 bool getSchemaLaxValidate() const
159 {
160 return theSchemaLaxValidate;
161 }
162
163 // theSchemaStrictValidate
164 void setSchemaStrictValidate(bool aSchemaStrictValidate)
165 {
166 theSchemaStrictValidate = aSchemaStrictValidate;
167 if (theSchemaStrictValidate)
168 theSchemaLaxValidate = false;
169 }
170 bool getSchemaStrictValidate() const
171 {
172 return theSchemaStrictValidate;
173 }
174
175 // theDTDValidate
176 void setDTDValidate(bool aDTDValidate)
177 {
178 theDTDValidate = aDTDValidate;
179 }
180 bool getDTDValidate() const
181 {
182 return theDTDValidate;
183 }
184
185 // theDTDLoad
186 void setDTDLoad(bool aDTDLoad)
187 {
188 theDTDLoad = aDTDLoad;
189 }
190 bool getDTDLoad() const
191 {
192 return theDTDLoad;
193 }
194
195 // theDefaultDTDAttributes
196 void setDefaultDTDAttributes(bool aDefaultDTDAttributes)
197 {
198 theDefaultDTDAttributes = aDefaultDTDAttributes;
199 }
200 bool getDefaultDTDAttributes() const
201 {
202 return theDefaultDTDAttributes;
203 }
204
205 // theParseExternalParsedEntity
206 void setParseExternalParsedEntity(bool aParseExternalParsedEntity)
207 {
208 theParseExternalParsedEntity = aParseExternalParsedEntity;
209 }
210 bool getParseExternalParsedEntity() const
211 {
212 return theParseExternalParsedEntity;
213 }
214
215 // theSkipRootNodes
216 void setSkipRootNodes(unsigned int aSkipRootNodes)
217 {
218 theSkipRootNodes = aSkipRootNodes;
219 }
220 unsigned int getSkipRootNodes() const
221 {
222 return theSkipRootNodes;
223 }
224
225 // theSkipTopLevelTextNodes
226 void setSkipTopLevelTextNodes(bool aSkipTopLevelTextNodes)
227 {
228 theSkipTopLevelTextNodes = aSkipTopLevelTextNodes;
229 }
230 bool getSkipTopLevelTextNodes() const
231 {
232 return theSkipTopLevelTextNodes;
233 }
234
235 // theSubstituteEntities
236 void setSubstituteEntities(bool aSubstituteEntities)
237 {
238 theSubstituteEntities = aSubstituteEntities;
239 }
240 bool getSubstituteEntities() const
241 {
242 return theSubstituteEntities;
243 }
244
245 // theXincludeSubstitutions
246 void setXincludeSubstitutions(bool aXincludeSubstitutions)
247 {
248 theXincludeSubstitutions = aXincludeSubstitutions;
249 }
250 bool getXincludeSubstitutions() const
251 {
252 return theXincludeSubstitutions;
253 }
254
255 // theRemoveRedundantNS
256 void setRemoveRedundantNS(bool aRemoveRedundantNS)
257 {
258 theRemoveRedundantNS = aRemoveRedundantNS;
259 }
260 bool getRemoveRedundantNS() const
261 {
262 return theRemoveRedundantNS;
263 }
264
265 // theNoCDATA
266 void setNoCDATA(bool aNoCDATA)
267 {
268 theNoCDATA = aNoCDATA;
269 }
270 bool getNoCDATA() const
271 {
272 return theNoCDATA;
273 }
274
275 // theNoXIncludeNodes
276 void setNoXIncludeNodes(bool aNoXIncludeNodes)
277 {
278 theNoXIncludeNodes = aNoXIncludeNodes;
279 }
280 bool getNoXIncludeNodes() const
281 {
282 return theNoXIncludeNodes;
97 }283 }
98};284};
99285
100286
=== modified file 'src/store/naive/loader.h'
--- src/store/naive/loader.h 2012-02-28 20:45:43 +0000
+++ src/store/naive/loader.h 2012-03-13 15:50:27 +0000
@@ -21,6 +21,7 @@
21#include <libxml/xmlstring.h>21#include <libxml/xmlstring.h>
2222
23#include "store/api/item.h"23#include "store/api/item.h"
24#include "store/api/load_properties.h"
2425
25#include "ordpath.h"26#include "ordpath.h"
2627
@@ -74,6 +75,8 @@
74 static const ulong INPUT_CHUNK_SIZE = 8192;75 static const ulong INPUT_CHUNK_SIZE = 8192;
7576
76protected:77protected:
78 const store::LoadProperties & theLoadProperties;
79
77 xmlParserCtxtPtr ctxt;80 xmlParserCtxtPtr ctxt;
7881
79 xmlSAXHandler theSaxHandler;82 xmlSAXHandler theSaxHandler;
@@ -89,12 +92,19 @@
8992
90 bool theBuildDataGuide;93 bool theBuildDataGuide;
9194
95
96protected:
97 void applyLoadOptions(const store::LoadProperties& props, xmlParserCtxtPtr ctxt);
98
99
92public:100public:
93 XmlLoader(101 XmlLoader(
94 BasicItemFactory* factory,102 BasicItemFactory* factory,
95 XQueryDiagnostics* xqueryDiagnostics,103 XQueryDiagnostics* xqueryDiagnostics,
104 const store::LoadProperties& loadProperties,
96 bool dataguide)105 bool dataguide)
97 :106 :
107 theLoadProperties(loadProperties),
98 ctxt(NULL),108 ctxt(NULL),
99 theFactory(factory),109 theFactory(factory),
100 theXQueryDiagnostics(xqueryDiagnostics),110 theXQueryDiagnostics(xqueryDiagnostics),
@@ -156,6 +166,7 @@
156 FastXmlLoader(166 FastXmlLoader(
157 BasicItemFactory* factory,167 BasicItemFactory* factory,
158 XQueryDiagnostics* xqueryDiagnostics,168 XQueryDiagnostics* xqueryDiagnostics,
169 const store::LoadProperties& loadProperties,
159 bool dataguide);170 bool dataguide);
160171
161 ~FastXmlLoader();172 ~FastXmlLoader();
@@ -245,6 +256,7 @@
245 FragmentXmlLoader(256 FragmentXmlLoader(
246 BasicItemFactory* factory,257 BasicItemFactory* factory,
247 XQueryDiagnostics* xqueryDiagnostics,258 XQueryDiagnostics* xqueryDiagnostics,
259 const store::LoadProperties& loadProperties,
248 bool dataguide);260 bool dataguide);
249261
250 ~FragmentXmlLoader();262 ~FragmentXmlLoader();
@@ -255,7 +267,15 @@
255 std::istream& xmlStream);267 std::istream& xmlStream);
256268
257protected:269protected:
258 static void checkStopParsing(void* ctx);270 bool fillBuffer(FragmentIStream* theFragmentStream);
271
272 unsigned long getCurrentInputOffset() const;
273
274 static void checkStopParsing(void* ctx, bool force = false);
275
276 static void startDocument(void * ctx);
277
278 static void endDocument(void * ctx);
259279
260 static void startElement(280 static void startElement(
261 void * ctx,281 void * ctx,
@@ -295,7 +315,6 @@
295315
296protected:316protected:
297 FragmentIStream* theFragmentStream;317 FragmentIStream* theFragmentStream;
298 int element_depth;
299};318};
300319
301/*******************************************************************************320/*******************************************************************************
@@ -331,8 +350,6 @@
331 zorba::Stack<PathStepInfo> thePathStack;350 zorba::Stack<PathStepInfo> thePathStack;
332 std::stack<NsBindingsContext*> theBindingsStack;351 std::stack<NsBindingsContext*> theBindingsStack;
333352
334 bool theParseExtParsedEntity;
335
336#ifdef DATAGUIDE353#ifdef DATAGUIDE
337 zorba::Stack<ElementGuideNode*> theGuideStack;354 zorba::Stack<ElementGuideNode*> theGuideStack;
338#endif355#endif
@@ -341,8 +358,8 @@
341 DtdXmlLoader(358 DtdXmlLoader(
342 BasicItemFactory* factory,359 BasicItemFactory* factory,
343 XQueryDiagnostics* xqueryDiagnostics,360 XQueryDiagnostics* xqueryDiagnostics,
344 bool dataguide,361 const store::LoadProperties& loadProperties,
345 bool parseExtParsedEntity);362 bool dataguide);
346363
347 ~DtdXmlLoader();364 ~DtdXmlLoader();
348365
349366
=== modified file 'src/store/naive/loader_dtd.cpp'
--- src/store/naive/loader_dtd.cpp 2012-02-15 10:25:02 +0000
+++ src/store/naive/loader_dtd.cpp 2012-03-13 15:50:27 +0000
@@ -76,12 +76,51 @@
76/*******************************************************************************76/*******************************************************************************
7777
78********************************************************************************/78********************************************************************************/
79void XmlLoader::applyLoadOptions(const store::LoadProperties& props, xmlParserCtxtPtr ctxt)
80{
81 int options = 0;
82
83 if (props.getStripWhitespace())
84 options |= XML_PARSE_NOBLANKS;
85
86 if (props.getDTDValidate())
87 options |= XML_PARSE_DTDVALID;
88
89 if (props.getDTDLoad())
90 options |= XML_PARSE_DTDLOAD;
91
92 if (props.getDefaultDTDAttributes())
93 options |= XML_PARSE_DTDATTR;
94
95 if (props.getSubstituteEntities())
96 options |= XML_PARSE_NOENT;
97
98 if (props.getXincludeSubstitutions())
99 options |= XML_PARSE_XINCLUDE;
100
101 if (props.getRemoveRedundantNS())
102 options |= XML_PARSE_NSCLEAN;
103
104 if (props.getNoCDATA())
105 options |= XML_PARSE_NOCDATA;
106
107 if (props.getNoXIncludeNodes())
108 options |= XML_PARSE_NOXINCNODE;
109
110 xmlCtxtUseOptions(ctxt, options);
111}
112
113
114/*******************************************************************************
115
116********************************************************************************/
79FragmentXmlLoader::FragmentXmlLoader(117FragmentXmlLoader::FragmentXmlLoader(
80 BasicItemFactory* factory,118 BasicItemFactory* factory,
81 XQueryDiagnostics* xqueryDiagnostics,119 XQueryDiagnostics* xqueryDiagnostics,
120 const store::LoadProperties& loadProperties,
82 bool dataguide)121 bool dataguide)
83 :122 :
84 FastXmlLoader(factory, xqueryDiagnostics, dataguide)123 FastXmlLoader(factory, xqueryDiagnostics, loadProperties, dataguide)
85{124{
86 theOrdPath.init();125 theOrdPath.init();
87126
@@ -109,6 +148,39 @@
109{148{
110}149}
111150
151bool FragmentXmlLoader::fillBuffer(FragmentIStream* theFragmentStream)
152{
153 if (theFragmentStream->ctxt->input->length > 0 && theFragmentStream->current_offset < theFragmentStream->bytes_in_buffer)
154 {
155 memmove(theFragmentStream->theBuffer, theFragmentStream->theBuffer + theFragmentStream->current_offset,
156 theFragmentStream->bytes_in_buffer - theFragmentStream->current_offset);
157 }
158 theFragmentStream->bytes_in_buffer -= theFragmentStream->current_offset;
159
160 std::streamsize numChars = readPacket(*theFragmentStream->theStream, theFragmentStream->theBuffer + theFragmentStream->bytes_in_buffer,
161 FragmentIStream::BUFFER_SIZE+FragmentIStream::LOOKAHEAD_BYTES - theFragmentStream->bytes_in_buffer);
162 if (numChars < 0)
163 {
164 theXQueryDiagnostics->add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0020_LOADER_IO_ERROR));
165 throw 0; // the argument to throw is not used by the catch clause
166 }
167
168 if (theFragmentStream->theStream->eof())
169 theFragmentStream->reached_eof = true;
170
171 theFragmentStream->bytes_in_buffer += numChars;
172 theFragmentStream->current_offset = 0;
173 theFragmentStream->ctxt->input->base = (xmlChar*)(theFragmentStream->theBuffer);
174 theFragmentStream->ctxt->input->length = (theFragmentStream->bytes_in_buffer < FragmentIStream::BUFFER_SIZE? theFragmentStream->bytes_in_buffer : FragmentIStream::BUFFER_SIZE);
175 theFragmentStream->ctxt->input->cur = theFragmentStream->ctxt->input->base;
176 theFragmentStream->ctxt->input->end = theFragmentStream->ctxt->input->base + theFragmentStream->ctxt->input->length;
177 theFragmentStream->ctxt->checkIndex = 0;
178
179 if (theFragmentStream->bytes_in_buffer < FragmentIStream::BUFFER_SIZE+FragmentIStream::LOOKAHEAD_BYTES)
180 theFragmentStream->theBuffer[theFragmentStream->bytes_in_buffer] = 0;
181
182 return !theFragmentStream->stream_is_consumed();
183}
112184
113store::Item_t FragmentXmlLoader::loadXml(185store::Item_t FragmentXmlLoader::loadXml(
114 const zstring& baseUri,186 const zstring& baseUri,
@@ -138,88 +210,105 @@
138 {210 {
139 theFragmentStream = static_cast<FragmentIStream*>(&stream);211 theFragmentStream = static_cast<FragmentIStream*>(&stream);
140212
141 // Prepare the input buffer213 // Prepare the input buffer and the parser context
142 if (theFragmentStream->theBuffer == NULL)214 if (theFragmentStream->theBuffer == NULL)
143 {215 {
144 theFragmentStream->theStream->seekg(0, std::ios::end);216 // Allocate input buffer
145 std::streamoff fileSize = theFragmentStream->theStream->tellg();217 theFragmentStream->theBuffer = new char[FragmentIStream::BUFFER_SIZE + FragmentIStream::LOOKAHEAD_BYTES+1];
146 theFragmentStream->theStream->seekg(0, std::ios::beg);218 theFragmentStream->theBuffer[FragmentIStream::BUFFER_SIZE + FragmentIStream::LOOKAHEAD_BYTES] = 0;
147219
148 theFragmentStream->theBuffer = new char[static_cast<unsigned int>(fileSize+1)];220 // Create the LibXml parser context
149 theFragmentStream->theBuffer[fileSize] = 0;221 theFragmentStream->ctxt = xmlCreatePushParserCtxt(&theSaxHandler, this, NULL, 0, 0);
150222 if (theFragmentStream->ctxt == NULL)
151 std::streamsize numChars = readPacket(*theFragmentStream->theStream,223 {
152 theFragmentStream->theBuffer,224 theXQueryDiagnostics->add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, ERROR_PARAMS( ZED( ParserInitFailed ) )));
153 fileSize);225 throw 0; // the argument to throw is not used by the catch clause
154 theFragmentStream->buffer_size = numChars;226 }
155 if (numChars < 0)227
156 {228 // Apply parser options
157 theXQueryDiagnostics->229 applyLoadOptions(theLoadProperties, theFragmentStream->ctxt);
158 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0020_LOADER_IO_ERROR));230
159231 // Delete the initial empty input stream
160 abortload();232 xmlFreeInputStream(inputPop(theFragmentStream->ctxt));
161 return NULL;233
162 }234 // Create the LibXml parser input
163 else if (numChars == 0)235 xmlParserInputPtr input = xmlNewInputStream(theFragmentStream->ctxt);
164 {236 if (input == NULL)
165 theXQueryDiagnostics->237 {
166 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0020_LOADER_IO_ERROR, 238 theXQueryDiagnostics->add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, ERROR_PARAMS( ZED( ParserInitFailed ) )));
167 ERROR_PARAMS(ZED(NoInputData))));239 throw 0; // the argument to throw is not used by the catch clause
168240 }
169 abortload();241
170 return NULL;242 // Initialize the parser input (only filename and the pointer to the current char)
171 }243 theFragmentStream->theBuffer[0] = ' '; // This assignment is needed for LibXml2-2.7.6, which tries to read the buffer when xmlPushInput() is called
172 }244 input->cur = (xmlChar*)(theFragmentStream->theBuffer);
173245 input->filename = (const char*)(xmlCanonicPath((const xmlChar*)theDocUri.c_str()));
174 // Create the LibXml parser context246 xmlPushInput(theFragmentStream->ctxt, input);
175 ctxt = xmlCreatePushParserCtxt(&theSaxHandler, this, NULL, 0, 0);247 }
176 // ctxt = xmlCreate248
177 if (ctxt == NULL)249 theFragmentStream->ctxt->userData = this; // the loader has changed, update the address
178 {250 theFragmentStream->ctxt->disableSAX = false; // xmlStopParser() sets disableSAX to true
179 theXQueryDiagnostics->251 theFragmentStream->parsed_nodes_count = 0;
180 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, 252 theFragmentStream->forced_parser_stop = false;
181 ERROR_PARAMS(ZED(ParserInitFailed))));253
182254 if ( ! theFragmentStream->first_start_doc)
183 abortload();255 {
184 return NULL;256 theFragmentStream->ctxt->instate = XML_PARSER_CONTENT;
185 }257 FragmentXmlLoader::startDocument(theFragmentStream->ctxt->userData);
186258 }
187 // Delete the initial empty input stream259
188 xmlFreeInputStream(inputPop(ctxt));260 while ( ! theFragmentStream->forced_parser_stop && fillBuffer(theFragmentStream))
189261 {
190 // Create the LibXml parser input262 // std::cerr << "\n==================\n--> skip_root: " << theFragmentStream->root_elements_to_skip << " current_depth: " << theFragmentStream->current_element_depth << " about to parse: [" << theFragmentStream->ctxt->input->cur << "] " << std::endl;
191 xmlParserInputPtr input = xmlNewInputStream(ctxt);263
192 if (input == NULL)264 // This case needs to be handled here, otherwise LibXml2 will segfault
193 {265 if (theFragmentStream->ctxt->input->cur[0] == '<' &&
194 theXQueryDiagnostics->266 theFragmentStream->ctxt->input->cur[1] == '/' &&
195 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR,267 theFragmentStream->current_element_depth == 0)
196 ERROR_PARAMS(ZED(ParserInitFailed))));268 {
197269 theXQueryDiagnostics->add_error(theDocUri.empty() ?
198 abortload();270 NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, ERROR_PARAMS( ZED( BadXMLNoOpeningTag ))) :
199 return NULL;271 NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, ERROR_PARAMS( ZED( BadXMLNoOpeningTag ), theDocUri))
200 }272 );
201273 throw 0; // the argument to throw is not used by the catch clause
202 // Initialize the parser input274 }
203 input->filename = (const char*)(xmlCanonicPath((const xmlChar*)theDocUri.c_str()));275
204 input->base = (xmlChar*)(theFragmentStream->theBuffer + theFragmentStream->current_offset);276 xmlParseChunk(theFragmentStream->ctxt, (const char*)theFragmentStream->ctxt->input->cur,
205 input->cur = (xmlChar*)(theFragmentStream->theBuffer + theFragmentStream->current_offset);277 theFragmentStream->ctxt->input->length, 0);
206 input->length = theFragmentStream->buffer_size - theFragmentStream->current_offset;278
207 input->end = input->base + input->length;279 if (theFragmentStream->ctxt->input->base == (xmlChar*)(theFragmentStream->theBuffer)
208 xmlPushInput(ctxt, input);280 &&
209281 theFragmentStream->current_offset < getCurrentInputOffset())
210 // Reset element_depth282 theFragmentStream->current_offset = getCurrentInputOffset();
211 element_depth = 0;283
212284 // If we didn't get an error and we haven't moved, we might have some freestanding text. Parse it as element character data.
213 // Finally call the parser285 if (theXQueryDiagnostics->errors().empty()
214 if (xmlParseExtParsedEnt(ctxt)==-1)286 &&
215 {287 theFragmentStream->current_offset == 0)
216 theXQueryDiagnostics->288 {
217 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR,289 // The input has been reset by xmlStopParser()
218 ERROR_PARAMS(ZED(ParserNoCreateTree))));290 theFragmentStream->ctxt->input->base = (xmlChar*)(theFragmentStream->theBuffer);
219291 theFragmentStream->ctxt->input->cur = theFragmentStream->ctxt->input->base;
220 abortload();292 xmlParseCharData(theFragmentStream->ctxt, 0);
221 return NULL;293 }
222 }294
295 if ( ! theXQueryDiagnostics->errors().empty())
296 throw 0; // the argument to throw is not used by the catch clause
297 }
298
299 // this happens when there are tags that have not been closed
300 if (theFragmentStream->stream_is_consumed()
301 &&
302 theFragmentStream->current_element_depth > 0)
303 {
304 theXQueryDiagnostics->add_error(theDocUri.empty() ?
305 NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, ERROR_PARAMS( ZED( BadXMLDocument_2o ))) :
306 NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, ERROR_PARAMS( ZED( BadXMLDocument_2o ), theDocUri))
307 );
308 throw 0;
309 }
310
311 FragmentXmlLoader::endDocument(theFragmentStream->ctxt->userData); // this would not be called otherwise
223 }312 }
224 catch (...)313 catch (...)
225 {314 {
@@ -228,49 +317,36 @@
228 return NULL;317 return NULL;
229 }318 }
230319
231 bool ok = ctxt->wellFormed != 0;
232
233 // The doc may be well formed, but it may have other kinds of errors, e.g., unresolved ns prefixes.320 // The doc may be well formed, but it may have other kinds of errors, e.g., unresolved ns prefixes.
234 if (!theXQueryDiagnostics->errors().empty())321 if (!theXQueryDiagnostics->errors().empty())
235 {322 {
236 abortload();323 abortload();
237 return NULL;324 return NULL;
238 }325 }
239 else if (!ok )326 else if ( ! theFragmentStream->ctxt->wellFormed)
240 {327 {
241 if (!theDocUri.empty())328 theXQueryDiagnostics->add_error(theDocUri.empty() ?
242 {329 NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, ERROR_PARAMS( ZED( BadXMLDocument_2o ))) :
243 theXQueryDiagnostics->330 NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, ERROR_PARAMS( ZED( BadXMLDocument_2o ), theDocUri))
244 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, 331 );
245 ERROR_PARAMS(ZED(BadXMLDocument_2o), theDocUri)));
246 }
247 else
248 {
249 theXQueryDiagnostics->
250 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR,
251 ERROR_PARAMS(ZED(BadXMLDocument_2o))));
252 }
253 abortload();332 abortload();
254 return NULL;333 return NULL;
255 }334 }
256 else if ( ctxt->lastError.code != XML_ERR_OK )335 else if (theFragmentStream->ctxt->lastError.code != XML_ERR_OK)
257 {336 {
258 if ( ctxt->lastError.code == XML_NS_ERR_UNDEFINED_NAMESPACE ||337 if (theFragmentStream->ctxt->lastError.code == XML_NS_ERR_UNDEFINED_NAMESPACE
259 ctxt->lastError.code != XML_ERR_NO_DTD )338 ||
339 theFragmentStream->ctxt->lastError.code != XML_ERR_NO_DTD )
260 {340 {
261 theXQueryDiagnostics->341 theXQueryDiagnostics->add_error(theDocUri.empty() ?
262 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, 342 NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, ERROR_PARAMS( ZED( BadXMLDocument_2o ))) :
263 ERROR_PARAMS(ZED(BadXMLDocument_2o))));343 NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR, ERROR_PARAMS( ZED( BadXMLDocument_2o ), theDocUri))
264344 );
265 abortload();345 abortload();
266 return NULL;346 return NULL;
267 }347 }
268 }348 }
269349
270 xmlCtxtReset(ctxt);
271 xmlFreeParserCtxt(ctxt);
272 ctxt = NULL;
273
274 thePathStack.pop();350 thePathStack.pop();
275 assert(thePathStack.empty());351 assert(thePathStack.empty());
276352
@@ -280,23 +356,59 @@
280 return resultNode;356 return resultNode;
281}357}
282358
283359unsigned long FragmentXmlLoader::getCurrentInputOffset() const
284void FragmentXmlLoader::checkStopParsing(void* ctx)360{
285{361 unsigned long offset = theFragmentStream->ctxt->input->cur
286 FragmentXmlLoader& loader = *(static_cast<FragmentXmlLoader*>(ctx));362 - theFragmentStream->ctxt->input->base
287 ZORBA_LOADER_CHECK_ERROR(loader);363 + theFragmentStream->ctxt->input->consumed;
288364
289 if (loader.element_depth == 0)365 return offset;
290 {366}
291 /* if (loader.ctxt->inputNr <= 1)367
292 loader.theFragmentStream->current_offset = loader.theFragmentStream->buffer_size;368void FragmentXmlLoader::checkStopParsing(void* ctx, bool force)
293 else */369{
294 loader.theFragmentStream->current_offset += (loader.ctxt->input->cur - loader.ctxt->input->base)370 FragmentXmlLoader& loader = *(static_cast<FragmentXmlLoader*>(ctx));
295 + loader.ctxt->input->consumed;371 ZORBA_LOADER_CHECK_ERROR(loader);
296 xmlStopParser(loader.ctxt);372
297 }373 unsigned long offset = loader.getCurrentInputOffset();
298}374
299375 if (force
376 ||
377 loader.theFragmentStream->current_element_depth == 0
378 ||
379 (offset >= loader.theFragmentStream->bytes_in_buffer
380 &&
381 loader.theFragmentStream->reached_eof)
382 ||
383 (loader.theFragmentStream->current_element_depth <= loader.theFragmentStream->root_elements_to_skip
384 &&
385 loader.theFragmentStream->parsed_nodes_count >= FragmentIStream::PARSED_NODES_BATCH_SIZE))
386 {
387 loader.theFragmentStream->current_offset = offset;
388 xmlStopParser(loader.theFragmentStream->ctxt);
389 loader.theFragmentStream->ctxt->errNo = XML_SCHEMAV_MISC; // fake error to force stopping
390 loader.theFragmentStream->forced_parser_stop = true;
391 }
392
393 loader.theFragmentStream->parsed_nodes_count++;
394}
395
396void FragmentXmlLoader::startDocument(void * ctx)
397{
398 FragmentXmlLoader& loader = *(static_cast<FragmentXmlLoader*>(ctx));
399 ZORBA_LOADER_CHECK_ERROR(loader);
400 FastXmlLoader::startDocument(ctx);
401 if (loader.theFragmentStream->first_start_doc)
402 {
403 loader.theFragmentStream->first_start_doc = false;
404 FragmentXmlLoader::checkStopParsing(ctx, true);
405 }
406}
407
408void FragmentXmlLoader::endDocument(void * ctx)
409{
410 FastXmlLoader::endDocument(ctx);
411}
300412
301void FragmentXmlLoader::startElement(413void FragmentXmlLoader::startElement(
302 void * ctx,414 void * ctx,
@@ -309,27 +421,34 @@
309 int nb_defaulted,421 int nb_defaulted,
310 const xmlChar ** attributes)422 const xmlChar ** attributes)
311{423{
312 FastXmlLoader::startElement(ctx, localname, prefix, URI, nb_namespaces, namespaces, nb_attributes, nb_defaulted, attributes);
313
314 FragmentXmlLoader& loader = *(static_cast<FragmentXmlLoader*>(ctx));424 FragmentXmlLoader& loader = *(static_cast<FragmentXmlLoader*>(ctx));
315 ZORBA_LOADER_CHECK_ERROR(loader);425 ZORBA_LOADER_CHECK_ERROR(loader);
316 loader.element_depth++;426 loader.theFragmentStream->current_element_depth++;
427 if (loader.theFragmentStream->current_element_depth > loader.theFragmentStream->root_elements_to_skip)
428 {
429 const xmlChar** nsTab = namespaces;
430
431 if (loader.theFragmentStream->current_element_depth == loader.theFragmentStream->root_elements_to_skip + 1)
432 {
433 nsTab = loader.theFragmentStream->ctxt->nsTab;
434 nb_namespaces = loader.theFragmentStream->ctxt->nsNr/2;
435 }
436
437 FastXmlLoader::startElement(ctx, localname, prefix, URI, nb_namespaces, nsTab, nb_attributes, nb_defaulted, attributes);
438 }
317}439}
318440
319
320void FragmentXmlLoader::endElement(441void FragmentXmlLoader::endElement(
321 void * ctx,442 void * ctx,
322 const xmlChar * localname,443 const xmlChar * localname,
323 const xmlChar * prefix,444 const xmlChar * prefix,
324 const xmlChar * URI)445 const xmlChar * URI)
325{446{
326 FastXmlLoader::endElement(ctx, localname, prefix, URI);
327
328 FragmentXmlLoader& loader = *(static_cast<FragmentXmlLoader*>(ctx));447 FragmentXmlLoader& loader = *(static_cast<FragmentXmlLoader*>(ctx));
329 ZORBA_LOADER_CHECK_ERROR(loader);448 ZORBA_LOADER_CHECK_ERROR(loader);
330449 if (loader.theFragmentStream->current_element_depth > loader.theFragmentStream->root_elements_to_skip)
331 loader.element_depth--;450 FastXmlLoader::endElement(ctx, localname, prefix, URI);
332451 loader.theFragmentStream->current_element_depth--;
333 checkStopParsing(ctx);452 checkStopParsing(ctx);
334}453}
335454
@@ -338,7 +457,10 @@
338 const xmlChar * ch,457 const xmlChar * ch,
339 int len)458 int len)
340{459{
341 FastXmlLoader::characters(ctx, ch, len);460 FragmentXmlLoader& loader = *(static_cast<FragmentXmlLoader*>(ctx));
461 ZORBA_LOADER_CHECK_ERROR(loader);
462 if (loader.theFragmentStream->current_element_depth >= loader.theFragmentStream->root_elements_to_skip)
463 FastXmlLoader::characters(ctx, ch, len);
342 checkStopParsing(ctx);464 checkStopParsing(ctx);
343}465}
344466
@@ -347,7 +469,10 @@
347 void * ctx,469 void * ctx,
348 const xmlChar * value)470 const xmlChar * value)
349{471{
350 FastXmlLoader::comment(ctx, value);472 FragmentXmlLoader& loader = *(static_cast<FragmentXmlLoader*>(ctx));
473 ZORBA_LOADER_CHECK_ERROR(loader);
474 if (loader.theFragmentStream->current_element_depth >= loader.theFragmentStream->root_elements_to_skip)
475 FastXmlLoader::comment(ctx, value);
351 checkStopParsing(ctx);476 checkStopParsing(ctx);
352}477}
353478
@@ -357,7 +482,10 @@
357 const xmlChar * value,482 const xmlChar * value,
358 int len)483 int len)
359{484{
360 FastXmlLoader::cdataBlock(ctx, value, len);485 FragmentXmlLoader& loader = *(static_cast<FragmentXmlLoader*>(ctx));
486 ZORBA_LOADER_CHECK_ERROR(loader);
487 if (loader.theFragmentStream->current_element_depth >= loader.theFragmentStream->root_elements_to_skip)
488 FastXmlLoader::cdataBlock(ctx, value, len);
361 checkStopParsing(ctx);489 checkStopParsing(ctx);
362}490}
363491
@@ -367,7 +495,10 @@
367 const xmlChar * target,495 const xmlChar * target,
368 const xmlChar * data)496 const xmlChar * data)
369{497{
370 FastXmlLoader::processingInstruction(ctx, target, data);498 FragmentXmlLoader& loader = *(static_cast<FragmentXmlLoader*>(ctx));
499 ZORBA_LOADER_CHECK_ERROR(loader);
500 if (loader.theFragmentStream->current_element_depth >= loader.theFragmentStream->root_elements_to_skip)
501 FastXmlLoader::processingInstruction(ctx, target, data);
371 checkStopParsing(ctx);502 checkStopParsing(ctx);
372}503}
373504
@@ -378,14 +509,13 @@
378DtdXmlLoader::DtdXmlLoader(509DtdXmlLoader::DtdXmlLoader(
379 BasicItemFactory* factory,510 BasicItemFactory* factory,
380 XQueryDiagnostics* xqueryDiagnostics,511 XQueryDiagnostics* xqueryDiagnostics,
381 bool dataguide,512 const store::LoadProperties& loadProperties,
382 bool parseExtParsedEntity)513 bool dataguide)
383 :514 :
384 XmlLoader(factory, xqueryDiagnostics, dataguide),515 XmlLoader(factory, xqueryDiagnostics, loadProperties, dataguide),
385 theTree(NULL),516 theTree(NULL),
386 theRootNode(NULL),517 theRootNode(NULL),
387 theNodeStack(2048),518 theNodeStack(2048)
388 theParseExtParsedEntity(parseExtParsedEntity)
389{519{
390 theOrdPath.init();520 theOrdPath.init();
391521
@@ -511,10 +641,7 @@
511 Return the number of bytes actually read, throw an exception if any I/O641 Return the number of bytes actually read, throw an exception if any I/O
512 error occured.642 error occured.
513********************************************************************************/643********************************************************************************/
514std::streamsize DtdXmlLoader::readPacket(644std::streamsize DtdXmlLoader::readPacket(std::istream& stream, char* buf, std::streamoff size)
515 std::istream& stream,
516 char* buf,
517 std::streamoff size)
518{645{
519 try646 try
520 {647 {
@@ -626,23 +753,26 @@
626 }753 }
627754
628 // Set the LibXml DTD validation options755 // Set the LibXml DTD validation options
756 /*
629 int options = XML_PARSE_COMPACT;757 int options = XML_PARSE_COMPACT;
630 options |= XML_PARSE_DTDVALID;758 options |= XML_PARSE_DTDVALID;
631 options |= XML_PARSE_DTDLOAD;759 options |= XML_PARSE_DTDLOAD;
760 */
632 //options |= XML_PARSE_SAX1;761 //options |= XML_PARSE_SAX1;
633 //xmlSAXDefaultVersion(1);762 //xmlSAXDefaultVersion(1);
634763
764 // xmlCtxtUseOptions(ctxt, options);
765
635 xmlLoadExtDtdDefaultValue |= XML_DETECT_IDS;766 xmlLoadExtDtdDefaultValue |= XML_DETECT_IDS;
636 xmlLoadExtDtdDefaultValue |= XML_COMPLETE_ATTRS;767 xmlLoadExtDtdDefaultValue |= XML_COMPLETE_ATTRS;
637768
638 xmlCtxtUseOptions(ctxt, options);769 // Apply loader options
770 applyLoadOptions(theLoadProperties, ctxt);
639771
640 if ( xmlParseDocument(ctxt)==-1 )772 if ( xmlParseDocument(ctxt)==-1 )
641 {773 {
642 // std::cout << " xmlParseDocument: Error: Unable to create tree: " << ctxt->lastError.message << std::endl;774 // std::cout << " xmlParseDocument: Error: Unable to create tree: " << ctxt->lastError.message << std::endl;
643 theXQueryDiagnostics->775 theXQueryDiagnostics->add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR,ERROR_PARAMS( ZED( ParserNoCreateTree ) )));
644 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR,
645 ERROR_PARAMS(ZED(ParserNoCreateTree))));
646 abortload();776 abortload();
647 return NULL;777 return NULL;
648 }778 }
@@ -667,15 +797,21 @@
667 {797 {
668 if (!theDocUri.empty())798 if (!theDocUri.empty())
669 {799 {
670 theXQueryDiagnostics->800 theXQueryDiagnostics->add_error(
671 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR,801 NEW_ZORBA_EXCEPTION(
672 ERROR_PARAMS(ZED(BadXMLDocument_2o), theDocUri)));802 zerr::ZSTR0021_LOADER_PARSING_ERROR,
803 ERROR_PARAMS( ZED( BadXMLDocument_2o ), theDocUri )
804 )
805 );
673 }806 }
674 else807 else
675 {808 {
676 theXQueryDiagnostics->809 theXQueryDiagnostics->add_error(
677 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR,810 NEW_ZORBA_EXCEPTION(
678 ERROR_PARAMS(ZED(BadXMLDocument_2o))));811 zerr::ZSTR0021_LOADER_PARSING_ERROR,
812 ERROR_PARAMS( ZED( BadXMLDocument_2o ) )
813 )
814 );
679 }815 }
680816
681 abortload();817 abortload();
@@ -691,9 +827,12 @@
691 if ( ctxt->lastError.code == XML_NS_ERR_UNDEFINED_NAMESPACE ||827 if ( ctxt->lastError.code == XML_NS_ERR_UNDEFINED_NAMESPACE ||
692 ctxt->lastError.code != XML_ERR_NO_DTD )828 ctxt->lastError.code != XML_ERR_NO_DTD )
693 {829 {
694 theXQueryDiagnostics->830 theXQueryDiagnostics->add_error(
695 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR,831 NEW_ZORBA_EXCEPTION(
696 ERROR_PARAMS(ZED(BadXMLDocument_2o))));832 zerr::ZSTR0021_LOADER_PARSING_ERROR,
833 ERROR_PARAMS( ZED( BadXMLDocument_2o ) )
834 )
835 );
697 abortload();836 abortload();
698 return NULL;837 return NULL;
699838
@@ -704,10 +843,12 @@
704 xmlDoc *doc = ctxt->myDoc;843 xmlDoc *doc = ctxt->myDoc;
705 if (doc == NULL)844 if (doc == NULL)
706 {845 {
707 theXQueryDiagnostics->846 theXQueryDiagnostics->add_error(
708 add_error(NEW_ZORBA_EXCEPTION(zerr::ZSTR0021_LOADER_PARSING_ERROR,847 NEW_ZORBA_EXCEPTION(
709 ERROR_PARAMS(ZED(ParserNoCreateTree))));848 zerr::ZSTR0021_LOADER_PARSING_ERROR,
710849 ERROR_PARAMS( ZED( ParserNoCreateTree ) )
850 )
851 );
711 abortload();852 abortload();
712 return NULL;853 return NULL;
713 }854 }
@@ -859,8 +1000,9 @@
859 }1000 }
860 catch (...)1001 catch (...)
861 {1002 {
862 loader.theXQueryDiagnostics->1003 loader.theXQueryDiagnostics->add_error(
863 add_error(NEW_ZORBA_EXCEPTION(zerr::ZXQP0003_INTERNAL_ERROR));1004 NEW_ZORBA_EXCEPTION( zerr::ZXQP0003_INTERNAL_ERROR )
1005 );
864 }1006 }
865}1007}
8661008
8671009
=== modified file 'src/store/naive/loader_fast.cpp'
--- src/store/naive/loader_fast.cpp 2012-02-15 10:25:02 +0000
+++ src/store/naive/loader_fast.cpp 2012-03-13 15:50:27 +0000
@@ -76,9 +76,10 @@
76FastXmlLoader::FastXmlLoader(76FastXmlLoader::FastXmlLoader(
77 BasicItemFactory* factory,77 BasicItemFactory* factory,
78 XQueryDiagnostics* xqueryDiagnostics,78 XQueryDiagnostics* xqueryDiagnostics,
79 const store::LoadProperties& loadProperties,
79 bool dataguide)80 bool dataguide)
80 :81 :
81 XmlLoader(factory, xqueryDiagnostics, dataguide),82 XmlLoader(factory, xqueryDiagnostics, loadProperties, dataguide),
82 theTree(NULL),83 theTree(NULL),
83 theRootNode(NULL),84 theRootNode(NULL),
84 theNodeStack(2048)85 theNodeStack(2048)
@@ -298,6 +299,13 @@
298 static_cast<int>(numChars),299 static_cast<int>(numChars),
299 docUri.c_str());300 docUri.c_str());
300301
302 // Apply loader options
303 store::LoadProperties new_props = theLoadProperties;
304 new_props.setSubstituteEntities(true); // This is required for some Zorba tests,
305 // e.g. rbkt/Queries/zorba/entity/entity.xq
306 // It should probably be handled in a different way
307 applyLoadOptions(new_props, ctxt);
308
301 if (ctxt == NULL)309 if (ctxt == NULL)
302 {310 {
303 theXQueryDiagnostics->311 theXQueryDiagnostics->
304312
=== modified file 'src/store/naive/simple_store.cpp'
--- src/store/naive/simple_store.cpp 2012-03-13 10:04:44 +0000
+++ src/store/naive/simple_store.cpp 2012-03-13 15:50:27 +0000
@@ -354,7 +354,7 @@
354 std::cerr << "Reference: " << (*iter).second354 std::cerr << "Reference: " << (*iter).second
355 << "is still in the nodes to references map" << std::endl;355 << "is still in the nodes to references map" << std::endl;
356 }356 }
357 ZORBA_FATAL(0, theNodeToReferencesMap.size() + 357 ZORBA_FATAL(0, theNodeToReferencesMap.size() +
358 " node references still in the nodes to references map");358 " node references still in the nodes to references map");
359 }359 }
360360
@@ -364,7 +364,7 @@
364 RefNodeMap::iterator end = theReferencesToNodeMap.end();364 RefNodeMap::iterator end = theReferencesToNodeMap.end();
365 for (; iter != end; ++iter)365 for (; iter != end; ++iter)
366 {366 {
367 std::cerr << "Reference: " << (*iter).first 367 std::cerr << "Reference: " << (*iter).first
368 << "is still in the references to nodes map" << std::endl;368 << "is still in the references to nodes map" << std::endl;
369 }369 }
370 ZORBA_FATAL(0, theReferencesToNodeMap.size() +370 ZORBA_FATAL(0, theReferencesToNodeMap.size() +
@@ -490,18 +490,20 @@
490XmlLoader* SimpleStore::getXmlLoader(XQueryDiagnostics* aXQueryDiagnostics,490XmlLoader* SimpleStore::getXmlLoader(XQueryDiagnostics* aXQueryDiagnostics,
491 const store::LoadProperties& loadProperties)491 const store::LoadProperties& loadProperties)
492{492{
493 if (loadProperties.getEnableExtParsedEntity())493 if (loadProperties.getParseExternalParsedEntity())
494 return new FragmentXmlLoader(theItemFactory,494 return new FragmentXmlLoader(theItemFactory,
495 aXQueryDiagnostics,495 aXQueryDiagnostics,
496 loadProperties,
496 store::Properties::instance()->buildDataguide());497 store::Properties::instance()->buildDataguide());
497 else if (loadProperties.getEnableDtd())498 else if (loadProperties.getDTDValidate())
498 return new DtdXmlLoader(theItemFactory,499 return new DtdXmlLoader(theItemFactory,
499 aXQueryDiagnostics,500 aXQueryDiagnostics,
500 store::Properties::instance()->buildDataguide(),501 loadProperties,
501 loadProperties.getEnableExtParsedEntity());502 store::Properties::instance()->buildDataguide());
502 else503 else
503 return new FastXmlLoader(theItemFactory,504 return new FastXmlLoader(theItemFactory,
504 aXQueryDiagnostics,505 aXQueryDiagnostics,
506 loadProperties,
505 store::Properties::instance()->buildDataguide());507 store::Properties::instance()->buildDataguide());
506}508}
507509
@@ -987,7 +989,7 @@
987 return NULL;989 return NULL;
988990
989 store::Collection_t collection;991 store::Collection_t collection;
990 if (theCollections->get(aName, collection, aDynamicCollection)) 992 if (theCollections->get(aName, collection, aDynamicCollection))
991 {993 {
992 return collection;994 return collection;
993 }995 }
@@ -1315,7 +1317,7 @@
1315 Computes the Structural Reference for the given node.1317 Computes the Structural Reference for the given node.
1316********************************************************************************/1318********************************************************************************/
1317bool SimpleStore::getStructuralInformation(1319bool SimpleStore::getStructuralInformation(
1318 store::Item_t& result, 1320 store::Item_t& result,
1319 const store::Item* node)1321 const store::Item* node)
1320{1322{
1321#ifdef TEXT_ORDPATH1323#ifdef TEXT_ORDPATH
@@ -1355,7 +1357,7 @@
13551357
1356/*******************************************************************************1358/*******************************************************************************
1357 Computes the reference of the given node.1359 Computes the reference of the given node.
1358 1360
1359 @param node XDM node1361 @param node XDM node
1360 @return the identifier as an item of type xs:anyURI1362 @return the identifier as an item of type xs:anyURI
1361********************************************************************************/1363********************************************************************************/
@@ -1388,7 +1390,7 @@
13881390
1389/*******************************************************************************1391/*******************************************************************************
1390 Returns the node which is identified by the given reference.1392 Returns the node which is identified by the given reference.
1391 1393
1392 @param reference an xs:anyURI item1394 @param reference an xs:anyURI item
1393 @result the node identified by the reference, or NULL if no node with the given1395 @result the node identified by the reference, or NULL if no node with the given
1394 reference exists1396 reference exists
@@ -1417,7 +1419,7 @@
14171419
1418/*******************************************************************************1420/*******************************************************************************
1419 Returns whether a reference has already been generated for the given node.1421 Returns whether a reference has already been generated for the given node.
1420 1422
1421 @param item XDM node1423 @param item XDM node
1422 @return whether a reference has already been generated for the given node.1424 @return whether a reference has already been generated for the given node.
1423********************************************************************************/1425********************************************************************************/
@@ -1429,7 +1431,7 @@
14291431
1430/*******************************************************************************1432/*******************************************************************************
1431 Removes a node from the reference-to-nodes and nodes-to-references maps.1433 Removes a node from the reference-to-nodes and nodes-to-references maps.
1432 1434
1433 @param node XDM node1435 @param node XDM node
1434 @return whether the node was registered or not.1436 @return whether the node was registered or not.
1435********************************************************************************/1437********************************************************************************/
14361438
=== modified file 'src/types/typeimpl.cpp'
--- src/types/typeimpl.cpp 2012-01-10 10:52:15 +0000
+++ src/types/typeimpl.cpp 2012-03-13 15:50:27 +0000
@@ -361,7 +361,7 @@
361361
362362
363bool NodeXQType::is_subtype(363bool NodeXQType::is_subtype(
364 const TypeManager* tm, 364 const TypeManager* tm,
365 const NodeXQType& supertype,365 const NodeXQType& supertype,
366 const QueryLoc& loc) const366 const QueryLoc& loc) const
367{367{
@@ -443,7 +443,7 @@
443443
444444
445bool NodeXQType::is_supertype(445bool NodeXQType::is_supertype(
446 const TypeManager* tm, 446 const TypeManager* tm,
447 const store::Item* subitem,447 const store::Item* subitem,
448 const QueryLoc& loc) const448 const QueryLoc& loc) const
449{449{
@@ -488,14 +488,30 @@
488 }488 }
489 }489 }
490490
491 if (m_node_kind != store::StoreConsts::elementNode && 491 // document-node( E ) matches any document node that contains exactly one element
492 m_node_kind != store::StoreConsts::attributeNode)492 // node, optionally accompanied by one or more comment and processing instruction
493 // nodes, if E is an ElementTest or SchemaElementTest that matches the element node.
494 bool is_element_test = (
495 m_node_kind == store::StoreConsts::documentNode &&
496 m_content_type != NULL &&
497 m_content_type->type_kind() == XQType::NODE_TYPE_KIND &&
498 dynamic_cast<const NodeXQType*>(m_content_type.getp())->m_schema_test == false);
499
500 if (m_node_kind != store::StoreConsts::elementNode &&
501 m_node_kind != store::StoreConsts::attributeNode &&
502 !is_element_test)
493 return true;503 return true;
494504
495 if (m_content_type == NULL ||505 if (m_content_type == NULL ||
496 m_content_type->type_kind() == XQType::ANY_TYPE_KIND)506 m_content_type->type_kind() == XQType::ANY_TYPE_KIND)
497 return true;507 return true;
498508
509 if (is_element_test)
510 {
511 xqtref_t documentNodeType = tm->create_value_type(subitem, loc);
512 return TypeOps::is_subtype(tm, *documentNodeType, *this);
513 }
514
499 xqtref_t subContentType = tm->create_named_type(subitem->getType(),515 xqtref_t subContentType = tm->create_named_type(subitem->getType(),
500 TypeConstants::QUANT_ONE,516 TypeConstants::QUANT_ONE,
501 loc,517 loc,
502518
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-01.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-01.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-01.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<from1>Jani</from1>
0\ No newline at end of file3\ No newline at end of file
14
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-02.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-02.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-02.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,6 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 <from1>Jani1</from1>
4 <from2>Jani2</from2>
5 <from3>Jani3</from3>
6
07
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-03.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-03.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-03.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2Jani1Jani2Jani3
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-04.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-04.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-04.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,12 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<root>
3 <root2>
4 <from1>Jani1</from1>
5 </root2>
6 <root2>
7 <from2>Jani2</from2>
8 </root2>
9 <root2>
10 <from3>Jani3</from3>
11 </root2>
12</root>
013
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-05.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-05.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-05.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,12 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 <root2>
4 <from1>Jani1</from1>
5 </root2>
6 <root2>
7 <from2>Jani2</from2>
8 </root2>
9 <root2>
10 <from3>Jani3</from3>
11 </root2>
12
013
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-06.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-06.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-06.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,8 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 <from1>Jani1</from1>
4
5 <from2>Jani2</from2>
6
7 <from3>Jani3</from3>
8
09
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-07.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-07.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-07.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2Jani1Jani2Jani3
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-08.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-08.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-08.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<root><from1>Jani1</from1></root>
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-09.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-09.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-09.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<from1>Jani1</from1>
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-10.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-10.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-10.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2Jani1
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-11.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-11.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-11.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-12.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-12.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-12.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2Jani1
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-13.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-13.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-13.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<from1>Jani1</from1>
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-14.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-14.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-14.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2Jani1
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-15.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-15.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-15.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2Jani1
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-16.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-16.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-16.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2Jani1
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-17.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-17.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-17.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2root3 text<from1>Jani1</from1>
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-18.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-18.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-18.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2Jani1
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-19.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-19.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-19.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,8 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<level1>
3 <level2>
4 <level3>
5 <level4>level4 text</level4>
6 </level3>
7 </level2>
8</level1>
09
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-20.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-20.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-20.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,8 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 <level2>
4 <level3>
5 <level4>level4 text</level4>
6 </level3>
7 </level2>
8
09
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-21.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-21.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-21.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,6 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 <level3>
4 <level4>level4 text</level4>
5 </level3>
6
07
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-22.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-22.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-22.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,4 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 <level4>level4 text</level4>
4
05
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-23.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-23.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-23.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2level4 text
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-24.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-24.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-24.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,5 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 <level4>level4 text</level4>
4 level3 end
5
06
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-25.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-25.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-25.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<level1>
3 level1 text start
4 <level2>
5 level2 text start
6 <level3>
7 level3 text start
8 <level4>level4 text</level4>
9 level3 text end
10 </level3>
11 level2 text end
12 </level2>
13 level1 text end
14</level1>
015
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-26.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-26.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-26.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 level1 text start
4 <level2>
5 level2 text start
6 <level3>
7 level3 text start
8 <level4>level4 text</level4>
9 level3 text end
10 </level3>
11 level2 text end
12 </level2>
13 level1 text end
14
015
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-27.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-27.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-27.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 level2 text start
4 <level3>
5 level3 text start
6 <level4>level4 text</level4>
7 level3 text end
8 </level3>
9 level2 text end
10
011
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-28.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-28.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-28.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,6 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 level3 text start
4 <level4>level4 text</level4>
5 level3 text end
6
07
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-29.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-29.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-29.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2level4 text
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-30.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-30.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-30.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-31.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-31.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-31.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,59 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3level0 text
4<level1>
5 level1 text start
6 <level2>
7 level2 text start
8 <level3>
9 level3 text start
10 <level4>level4 text</level4>
11 level3 text end
12 </level3>
13 level2 text end
14 </level2>
15 level1 text end
16</level1>
17level0 text
18<level1>
19 level1 text start
20 <level2>
21 level2 text start
22 <level3>
23 level3 text start
24 <level4>level4 text</level4>
25 level3 text end
26 </level3>
27 level2 text end
28 </level2>
29 level1 text end
30</level1>
31level0 text
32<level1>
33 level1 text start
34 <level2>
35 level2 text start
36 <level3>
37 level3 text start
38 <level4>level4 text</level4>
39 level3 text end
40 </level3>
41 level2 text end
42 </level2>
43 level1 text end
44</level1>
45level0 text
46<level1>
47 level1 text start
48 <level2>
49 level2 text start
50 <level3>
51 level3 text start
52 <level4>level4 text</level4>
53 level3 text end
54 </level3>
55 level2 text end
56 </level2>
57 level1 text end
58</level1>
59level0 text
060
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-32.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-32.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-32.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 level1 text start
4 <level2>
5 level2 text start
6 <level3>
7 level3 text start
8 <level4>level4 text</level4>
9 level3 text end
10 </level3>
11 level2 text end
12 </level2>
13 level1 text end
14
15 level1 text start
16 <level2>
17 level2 text start
18 <level3>
19 level3 text start
20 <level4>level4 text</level4>
21 level3 text end
22 </level3>
23 level2 text end
24 </level2>
25 level1 text end
26
27 level1 text start
28 <level2>
29 level2 text start
30 <level3>
31 level3 text start
32 <level4>level4 text</level4>
33 level3 text end
34 </level3>
35 level2 text end
36 </level2>
37 level1 text end
38
39 level1 text start
40 <level2>
41 level2 text start
42 <level3>
43 level3 text start
44 <level4>level4 text</level4>
45 level3 text end
46 </level3>
47 level2 text end
48 </level2>
49 level1 text end
50
051
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-33.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-33.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-33.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,34 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 level2 text start
4 <level3>
5 level3 text start
6 <level4>level4 text</level4>
7 level3 text end
8 </level3>
9 level2 text end
10
11 level2 text start
12 <level3>
13 level3 text start
14 <level4>level4 text</level4>
15 level3 text end
16 </level3>
17 level2 text end
18
19 level2 text start
20 <level3>
21 level3 text start
22 <level4>level4 text</level4>
23 level3 text end
24 </level3>
25 level2 text end
26
27 level2 text start
28 <level3>
29 level3 text start
30 <level4>level4 text</level4>
31 level3 text end
32 </level3>
33 level2 text end
34
035
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-34.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-34.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-34.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,18 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 level3 text start
4 <level4>level4 text</level4>
5 level3 text end
6
7 level3 text start
8 <level4>level4 text</level4>
9 level3 text end
10
11 level3 text start
12 <level4>level4 text</level4>
13 level3 text end
14
15 level3 text start
16 <level4>level4 text</level4>
17 level3 text end
18
019
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-35.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-35.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-35.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2level4 textlevel4 textlevel4 textlevel4 text
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-36.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-36.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-36.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-37.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-37.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-37.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<doc>
3 <foo>0</foo>
4 <foo>1</foo>
5 <foo>2</foo>
6 <foo>3</foo>
7 <foo>4</foo>
8 <foo>5</foo>
9 <foo>6</foo>
10 <foo>7</foo>
11 <foo>8</foo>
12 <foo>9</foo>
13 <foo>10</foo>
14</doc>
015
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-38.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-38.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-38.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 <foo>0</foo>
4 <foo>1</foo>
5 <foo>2</foo>
6 <foo>3</foo>
7 <foo>4</foo>
8 <foo>5</foo>
9 <foo>6</foo>
10 <foo>7</foo>
11 <foo>8</foo>
12 <foo>9</foo>
13 <foo>10</foo>
14
015
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-39.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-39.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-39.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2012345678910
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-40.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-40.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-40.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,3 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3<n1:root xmlns:n1="ns" xmlns:m1="ms"><n2:root2 xmlns:n2="ns2" xmlns:m2="ms2"><n1:from1 xmlns:n3="ns3"><from2>Text from2</from2></n1:from1></n2:root2></n1:root>
04
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-41.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-41.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-41.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<n2:root2 xmlns:n1="ns" xmlns:m1="ms" xmlns:n2="ns2" xmlns:m2="ms2"><n1:from1 xmlns:n3="ns3"><from2>Text from2</from2></n1:from1></n2:root2>
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-42.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-42.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-42.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<n1:from1 xmlns:n1="ns" xmlns:m1="ms" xmlns:n2="ns2" xmlns:m2="ms2" xmlns:n3="ns3"><from2>Text from2</from2></n1:from1>
0\ No newline at end of file3\ No newline at end of file
14
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-43.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-43.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-43.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<from2 xmlns:n1="ns" xmlns:m1="ms" xmlns:n2="ns2" xmlns:m2="ms2" xmlns:n3="ns3">Text from2</from2>
0\ No newline at end of file3\ No newline at end of file
14
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-44.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-44.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-44.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2Text from2
0\ No newline at end of file3\ No newline at end of file
14
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-45.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-45.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-45.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
03
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-46.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-46.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-46.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,31 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3level0 text
4<level1/>
5level0 text
6<level1/>
7level0 text
8<level1/>
9level0 text
10<level1/>
11level0 text
12<level1/>
13level0 text
14<level1/>
15level0 text
16<level1/>
17level0 text
18<level1/>
19level0 text
20<level1/>
21level0 text
22<level1/>
23level0 text
24<level1/>
25level0 text
26<level1/>
27level0 text
28<level1/>
29level0 text
30<level1/>
31level0 text
0\ No newline at end of file32\ No newline at end of file
133
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-53.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-53.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-53.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,8 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<mediawiki>
3 <page>
4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5
6 </page>
7</mediawiki>
8
09
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-54.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-54.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-54.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,7 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 <page>
4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5
6 </page>
7
08
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-55.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-55.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-55.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,8 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<mediawiki>
3 <page>
4abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
5
6 </page>
7</mediawiki>
8
09
=== added file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-56.xml.res'
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-56.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-fragment-skip-root-56.xml.res 2012-03-13 15:50:27 +0000
@@ -0,0 +1,7 @@
1<?xml version="1.0" encoding="UTF-8"?>
2
3 <page>
4abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
5
6 </page>
7
08
=== modified file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-01.xml.res' (properties changed: +x to -x)
=== modified file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-03.xml.res' (properties changed: +x to -x)
=== modified file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-04.xml.res' (properties changed: +x to -x)
=== modified file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-05.xml.res' (properties changed: +x to -x)
=== modified file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-07.xml.res' (properties changed: +x to -x)
=== modified file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-10.xml.res' (properties changed: +x to -x)
=== modified file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-11.xml.res' (properties changed: +x to -x)
=== modified file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-12.xml.res' (properties changed: +x to -x)
--- test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-12.xml.res 2011-07-15 16:39:51 +0000
+++ test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-12.xml.res 2012-03-13 15:50:27 +0000
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="UTF-8"?>1<?xml version="1.0" encoding="UTF-8"?>
2<fragment><from1>Jani</from1>2<fragment><from1>Jani</from1>
3<from2>Jani</from2>3<from2>Jani</from2>
4<from3>Jani</from3><count>5</count></fragment>
5\ No newline at end of file4\ No newline at end of file
5<from3>Jani</from3><count>6</count></fragment>
6\ No newline at end of file6\ No newline at end of file
77
=== modified file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-14.xml.res' (properties changed: +x to -x)
=== modified file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-15.xml.res' (properties changed: +x to -x)
=== renamed file 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-18.xml.res' => 'test/rbkt/ExpQueryResults/zorba/parsing_and_serializing/parse-xml-fragment-16.xml.res'
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-01.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-01.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-01.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,8 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?><root><from1>Jani</from1></root>",
5 <opt:options>
6 <opt:parse-external-parsed-entity opt:skip-root-nodes="1"/>
7 </opt:options>
8)
09
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-02.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-02.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-02.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,13 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root>
6 <from1>Jani1</from1>
7 <from2>Jani2</from2>
8 <from3>Jani3</from3>
9</root>",
10 <opt:options>
11 <opt:parse-external-parsed-entity opt:skip-root-nodes="1"/>
12 </opt:options>
13)
014
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-03.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-03.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-03.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,13 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root>
6 <from1>Jani1</from1>
7 <from2>Jani2</from2>
8 <from3>Jani3</from3>
9</root>",
10 <opt:options>
11 <opt:parse-external-parsed-entity opt:skip-root-nodes="2"/>
12 </opt:options>
13)
014
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-04.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-04.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-04.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,19 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root>
6 <root2>
7 <from1>Jani1</from1>
8 </root2>
9 <root2>
10 <from2>Jani2</from2>
11 </root2>
12 <root2>
13 <from3>Jani3</from3>
14 </root2>
15</root>",
16 <opt:options>
17 <opt:parse-external-parsed-entity opt:skip-root-nodes="0"/>
18 </opt:options>
19)
020
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-05.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-05.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-05.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,19 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root>
6 <root2>
7 <from1>Jani1</from1>
8 </root2>
9 <root2>
10 <from2>Jani2</from2>
11 </root2>
12 <root2>
13 <from3>Jani3</from3>
14 </root2>
15</root>",
16 <opt:options>
17 <opt:parse-external-parsed-entity opt:skip-root-nodes="1"/>
18 </opt:options>
19)
020
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-06.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-06.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-06.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,19 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root>
6 <root2>
7 <from1>Jani1</from1>
8 </root2>
9 <root2>
10 <from2>Jani2</from2>
11 </root2>
12 <root2>
13 <from3>Jani3</from3>
14 </root2>
15</root>",
16 <opt:options>
17 <opt:parse-external-parsed-entity opt:skip-root-nodes="2"/>
18 </opt:options>
19)
020
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-07.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-07.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-07.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,19 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root>
6 <root2>
7 <from1>Jani1</from1>
8 </root2>
9 <root2>
10 <from2>Jani2</from2>
11 </root2>
12 <root2>
13 <from3>Jani3</from3>
14 </root2>
15</root>",
16 <opt:options>
17 <opt:parse-external-parsed-entity opt:skip-root-nodes="3"/>
18 </opt:options>
19)
020
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-08.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-08.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-08.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,9 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root><from1>Jani1</from1></root>",
6 <opt:options>
7 <opt:parse-external-parsed-entity opt:skip-root-nodes="0"/>
8 </opt:options>
9)
010
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-09.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-09.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-09.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,9 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root><from1>Jani1</from1></root>",
6 <opt:options>
7 <opt:parse-external-parsed-entity opt:skip-root-nodes="1"/>
8 </opt:options>
9)
010
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-10.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-10.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-10.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,9 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root><from1>Jani1</from1></root>",
6 <opt:options>
7 <opt:parse-external-parsed-entity opt:skip-root-nodes="2"/>
8 </opt:options>
9)
010
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-11.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-11.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-11.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,9 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root><from1>Jani1</from1></root>",
6 <opt:options>
7 <opt:parse-external-parsed-entity opt:skip-root-nodes="3"/>
8 </opt:options>
9)
010
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-12.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-12.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-12.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,9 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root><root2><from1>Jani1</from1></root2></root>",
6 <opt:options>
7 <opt:parse-external-parsed-entity opt:skip-root-nodes="3"/>
8 </opt:options>
9)
010
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-13.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-13.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-13.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,9 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root><root2><root3><from1>Jani1</from1></root3></root2></root>",
6 <opt:options>
7 <opt:parse-external-parsed-entity opt:skip-root-nodes="3"/>
8 </opt:options>
9)
010
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-14.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-14.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-14.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,9 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root><root2><root3><from1>Jani1</from1></root3></root2></root>",
6 <opt:options>
7 <opt:parse-external-parsed-entity opt:skip-root-nodes="4"/>
8 </opt:options>
9)
010
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-15.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-15.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-15.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,8 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?><root>root1 text<root2>root2 text<root3>root3 text<from1>Jani1</from1></root3></root2></root>",
5 <opt:options>
6 <opt:parse-external-parsed-entity opt:skip-root-nodes="4"/>
7 </opt:options>
8)
09
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-16.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-16.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-16.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,8 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?><root>root1 text<root15>root15 text</root15><root2>root2 text<root3>root3 text<from1>Jani1</from1></root3></root2></root>",
5 <opt:options>
6 <opt:parse-external-parsed-entity opt:skip-root-nodes="4"/>
7 </opt:options>
8)
09
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-17.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-17.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-17.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,8 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?><root>root1 text<root15>root15 text</root15><root2>root2 text<root3>root3 text<from1>Jani1</from1></root3></root2></root>",
5 <opt:options>
6 <opt:parse-external-parsed-entity opt:skip-root-nodes="3"/>
7 </opt:options>
8)
09
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-18.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-18.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-18.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,9 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<root>Jani0<from1>Jani1</from1></root>",
6 <opt:options>
7 <opt:parse-external-parsed-entity opt:skip-root-nodes="2"/>
8 </opt:options>
9)
010
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-19.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-19.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-19.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,15 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<level1>
6 <level2>
7 <level3>
8 <level4>level4 text</level4>
9 </level3>
10 </level2>
11</level1>",
12 <opt:options>
13 <opt:parse-external-parsed-entity opt:skip-root-nodes="0"/>
14 </opt:options>
15)
016
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-20.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-20.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-20.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,15 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<level1>
6 <level2>
7 <level3>
8 <level4>level4 text</level4>
9 </level3>
10 </level2>
11</level1>",
12 <opt:options>
13 <opt:parse-external-parsed-entity opt:skip-root-nodes="1"/>
14 </opt:options>
15)
016
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-21.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-21.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-21.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,15 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<level1>
6 <level2>
7 <level3>
8 <level4>level4 text</level4>
9 </level3>
10 </level2>
11</level1>",
12 <opt:options>
13 <opt:parse-external-parsed-entity opt:skip-root-nodes="2"/>
14 </opt:options>
15)
016
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-22.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-22.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-22.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,15 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<level1>
6 <level2>
7 <level3>
8 <level4>level4 text</level4>
9 </level3>
10 </level2>
11</level1>",
12 <opt:options>
13 <opt:parse-external-parsed-entity opt:skip-root-nodes="3"/>
14 </opt:options>
15)
016
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-23.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-23.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-23.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,15 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<level1>
6 <level2>
7 <level3>
8 <level4>level4 text</level4>
9 </level3>
10 </level2>
11</level1>",
12 <opt:options>
13 <opt:parse-external-parsed-entity opt:skip-root-nodes="4"/>
14 </opt:options>
15)
016
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-24.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-24.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-24.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,16 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<level1>
6 <level2>
7 <level3>
8 <level4>level4 text</level4>
9 level3 end
10 </level3>
11 </level2>
12</level1>",
13 <opt:options>
14 <opt:parse-external-parsed-entity opt:skip-root-nodes="3"/>
15 </opt:options>
16)
017
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-25.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-25.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-25.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,21 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<level1>
6 level1 text start
7 <level2>
8 level2 text start
9 <level3>
10 level3 text start
11 <level4>level4 text</level4>
12 level3 text end
13 </level3>
14 level2 text end
15 </level2>
16 level1 text end
17</level1>",
18 <opt:options>
19 <opt:parse-external-parsed-entity opt:skip-root-nodes="0"/>
20 </opt:options>
21)
022
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-26.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-26.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-26.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,21 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<level1>
6 level1 text start
7 <level2>
8 level2 text start
9 <level3>
10 level3 text start
11 <level4>level4 text</level4>
12 level3 text end
13 </level3>
14 level2 text end
15 </level2>
16 level1 text end
17</level1>",
18 <opt:options>
19 <opt:parse-external-parsed-entity opt:skip-root-nodes="1"/>
20 </opt:options>
21)
022
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-27.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-27.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-27.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,21 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<level1>
6 level1 text start
7 <level2>
8 level2 text start
9 <level3>
10 level3 text start
11 <level4>level4 text</level4>
12 level3 text end
13 </level3>
14 level2 text end
15 </level2>
16 level1 text end
17</level1>",
18 <opt:options>
19 <opt:parse-external-parsed-entity opt:skip-root-nodes="2"/>
20 </opt:options>
21)
022
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-28.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-28.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-28.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,21 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<level1>
6 level1 text start
7 <level2>
8 level2 text start
9 <level3>
10 level3 text start
11 <level4>level4 text</level4>
12 level3 text end
13 </level3>
14 level2 text end
15 </level2>
16 level1 text end
17</level1>",
18 <opt:options>
19 <opt:parse-external-parsed-entity opt:skip-root-nodes="3"/>
20 </opt:options>
21)
022
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-29.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-29.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-29.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,21 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<level1>
6 level1 text start
7 <level2>
8 level2 text start
9 <level3>
10 level3 text start
11 <level4>level4 text</level4>
12 level3 text end
13 </level3>
14 level2 text end
15 </level2>
16 level1 text end
17</level1>",
18 <opt:options>
19 <opt:parse-external-parsed-entity opt:skip-root-nodes="4"/>
20 </opt:options>
21)
022
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-30.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-30.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-30.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,21 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<level1>
6 level1 text start
7 <level2>
8 level2 text start
9 <level3>
10 level3 text start
11 <level4>level4 text</level4>
12 level3 text end
13 </level3>
14 level2 text end
15 </level2>
16 level1 text end
17</level1>",
18 <opt:options>
19 <opt:parse-external-parsed-entity opt:skip-root-nodes="5"/>
20 </opt:options>
21)
022
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-31.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-31.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-31.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,65 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5level0 text
6<level1>
7 level1 text start
8 <level2>
9 level2 text start
10 <level3>
11 level3 text start
12 <level4>level4 text</level4>
13 level3 text end
14 </level3>
15 level2 text end
16 </level2>
17 level1 text end
18</level1>
19level0 text
20<level1>
21 level1 text start
22 <level2>
23 level2 text start
24 <level3>
25 level3 text start
26 <level4>level4 text</level4>
27 level3 text end
28 </level3>
29 level2 text end
30 </level2>
31 level1 text end
32</level1>
33level0 text
34<level1>
35 level1 text start
36 <level2>
37 level2 text start
38 <level3>
39 level3 text start
40 <level4>level4 text</level4>
41 level3 text end
42 </level3>
43 level2 text end
44 </level2>
45 level1 text end
46</level1>
47level0 text
48<level1>
49 level1 text start
50 <level2>
51 level2 text start
52 <level3>
53 level3 text start
54 <level4>level4 text</level4>
55 level3 text end
56 </level3>
57 level2 text end
58 </level2>
59 level1 text end
60</level1>
61level0 text",
62 <opt:options>
63 <opt:parse-external-parsed-entity opt:skip-root-nodes="0"/>
64 </opt:options>
65)
066
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-32.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-32.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-32.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,65 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5level0 text
6<level1>
7 level1 text start
8 <level2>
9 level2 text start
10 <level3>
11 level3 text start
12 <level4>level4 text</level4>
13 level3 text end
14 </level3>
15 level2 text end
16 </level2>
17 level1 text end
18</level1>
19level0 text
20<level1>
21 level1 text start
22 <level2>
23 level2 text start
24 <level3>
25 level3 text start
26 <level4>level4 text</level4>
27 level3 text end
28 </level3>
29 level2 text end
30 </level2>
31 level1 text end
32</level1>
33level0 text
34<level1>
35 level1 text start
36 <level2>
37 level2 text start
38 <level3>
39 level3 text start
40 <level4>level4 text</level4>
41 level3 text end
42 </level3>
43 level2 text end
44 </level2>
45 level1 text end
46</level1>
47level0 text
48<level1>
49 level1 text start
50 <level2>
51 level2 text start
52 <level3>
53 level3 text start
54 <level4>level4 text</level4>
55 level3 text end
56 </level3>
57 level2 text end
58 </level2>
59 level1 text end
60</level1>
61level0 text",
62 <opt:options>
63 <opt:parse-external-parsed-entity opt:skip-root-nodes="1"/>
64 </opt:options>
65)
066
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-33.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-33.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-33.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,65 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5level0 text
6<level1>
7 level1 text start
8 <level2>
9 level2 text start
10 <level3>
11 level3 text start
12 <level4>level4 text</level4>
13 level3 text end
14 </level3>
15 level2 text end
16 </level2>
17 level1 text end
18</level1>
19level0 text
20<level1>
21 level1 text start
22 <level2>
23 level2 text start
24 <level3>
25 level3 text start
26 <level4>level4 text</level4>
27 level3 text end
28 </level3>
29 level2 text end
30 </level2>
31 level1 text end
32</level1>
33level0 text
34<level1>
35 level1 text start
36 <level2>
37 level2 text start
38 <level3>
39 level3 text start
40 <level4>level4 text</level4>
41 level3 text end
42 </level3>
43 level2 text end
44 </level2>
45 level1 text end
46</level1>
47level0 text
48<level1>
49 level1 text start
50 <level2>
51 level2 text start
52 <level3>
53 level3 text start
54 <level4>level4 text</level4>
55 level3 text end
56 </level3>
57 level2 text end
58 </level2>
59 level1 text end
60</level1>
61level0 text",
62 <opt:options>
63 <opt:parse-external-parsed-entity opt:skip-root-nodes="2"/>
64 </opt:options>
65)
066
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-34.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-34.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-34.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,65 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5level0 text
6<level1>
7 level1 text start
8 <level2>
9 level2 text start
10 <level3>
11 level3 text start
12 <level4>level4 text</level4>
13 level3 text end
14 </level3>
15 level2 text end
16 </level2>
17 level1 text end
18</level1>
19level0 text
20<level1>
21 level1 text start
22 <level2>
23 level2 text start
24 <level3>
25 level3 text start
26 <level4>level4 text</level4>
27 level3 text end
28 </level3>
29 level2 text end
30 </level2>
31 level1 text end
32</level1>
33level0 text
34<level1>
35 level1 text start
36 <level2>
37 level2 text start
38 <level3>
39 level3 text start
40 <level4>level4 text</level4>
41 level3 text end
42 </level3>
43 level2 text end
44 </level2>
45 level1 text end
46</level1>
47level0 text
48<level1>
49 level1 text start
50 <level2>
51 level2 text start
52 <level3>
53 level3 text start
54 <level4>level4 text</level4>
55 level3 text end
56 </level3>
57 level2 text end
58 </level2>
59 level1 text end
60</level1>
61level0 text",
62 <opt:options>
63 <opt:parse-external-parsed-entity opt:skip-root-nodes="3"/>
64 </opt:options>
65)
066
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-35.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-35.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-35.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,65 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5level0 text
6<level1>
7 level1 text start
8 <level2>
9 level2 text start
10 <level3>
11 level3 text start
12 <level4>level4 text</level4>
13 level3 text end
14 </level3>
15 level2 text end
16 </level2>
17 level1 text end
18</level1>
19level0 text
20<level1>
21 level1 text start
22 <level2>
23 level2 text start
24 <level3>
25 level3 text start
26 <level4>level4 text</level4>
27 level3 text end
28 </level3>
29 level2 text end
30 </level2>
31 level1 text end
32</level1>
33level0 text
34<level1>
35 level1 text start
36 <level2>
37 level2 text start
38 <level3>
39 level3 text start
40 <level4>level4 text</level4>
41 level3 text end
42 </level3>
43 level2 text end
44 </level2>
45 level1 text end
46</level1>
47level0 text
48<level1>
49 level1 text start
50 <level2>
51 level2 text start
52 <level3>
53 level3 text start
54 <level4>level4 text</level4>
55 level3 text end
56 </level3>
57 level2 text end
58 </level2>
59 level1 text end
60</level1>
61level0 text",
62 <opt:options>
63 <opt:parse-external-parsed-entity opt:skip-root-nodes="4"/>
64 </opt:options>
65)
066
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-36.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-36.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-36.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,65 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5level0 text
6<level1>
7 level1 text start
8 <level2>
9 level2 text start
10 <level3>
11 level3 text start
12 <level4>level4 text</level4>
13 level3 text end
14 </level3>
15 level2 text end
16 </level2>
17 level1 text end
18</level1>
19level0 text
20<level1>
21 level1 text start
22 <level2>
23 level2 text start
24 <level3>
25 level3 text start
26 <level4>level4 text</level4>
27 level3 text end
28 </level3>
29 level2 text end
30 </level2>
31 level1 text end
32</level1>
33level0 text
34<level1>
35 level1 text start
36 <level2>
37 level2 text start
38 <level3>
39 level3 text start
40 <level4>level4 text</level4>
41 level3 text end
42 </level3>
43 level2 text end
44 </level2>
45 level1 text end
46</level1>
47level0 text
48<level1>
49 level1 text start
50 <level2>
51 level2 text start
52 <level3>
53 level3 text start
54 <level4>level4 text</level4>
55 level3 text end
56 </level3>
57 level2 text end
58 </level2>
59 level1 text end
60</level1>
61level0 text",
62 <opt:options>
63 <opt:parse-external-parsed-entity opt:skip-root-nodes="5"/>
64 </opt:options>
65)
066
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-37.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-37.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-37.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,20 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<doc>
5 <foo>0</foo>
6 <foo>1</foo>
7 <foo>2</foo>
8 <foo>3</foo>
9 <foo>4</foo>
10 <foo>5</foo>
11 <foo>6</foo>
12 <foo>7</foo>
13 <foo>8</foo>
14 <foo>9</foo>
15 <foo>10</foo>
16</doc>",
17 <opt:options>
18 <opt:parse-external-parsed-entity opt:skip-root-nodes="0"/>
19 </opt:options>
20)
021
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-38.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-38.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-38.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,20 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<doc>
5 <foo>0</foo>
6 <foo>1</foo>
7 <foo>2</foo>
8 <foo>3</foo>
9 <foo>4</foo>
10 <foo>5</foo>
11 <foo>6</foo>
12 <foo>7</foo>
13 <foo>8</foo>
14 <foo>9</foo>
15 <foo>10</foo>
16</doc>",
17 <opt:options>
18 <opt:parse-external-parsed-entity opt:skip-root-nodes="1"/>
19 </opt:options>
20)
021
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-39.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-39.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-39.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,20 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<doc>
5 <foo>0</foo>
6 <foo>1</foo>
7 <foo>2</foo>
8 <foo>3</foo>
9 <foo>4</foo>
10 <foo>5</foo>
11 <foo>6</foo>
12 <foo>7</foo>
13 <foo>8</foo>
14 <foo>9</foo>
15 <foo>10</foo>
16</doc>",
17 <opt:options>
18 <opt:parse-external-parsed-entity opt:skip-root-nodes="2"/>
19 </opt:options>
20)
021
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-40.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-40.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-40.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,9 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<n1:root xmlns:n1='ns' xmlns:m1='ms'><n2:root2 xmlns:n2='ns2' xmlns:m2='ms2'><n1:from1 xmlns:n3='ns3'><from2>Text from2</from2></n1:from1></n2:root2></n1:root>",
6 <opt:options>
7 <opt:parse-external-parsed-entity opt:skip-root-nodes="0"/>
8 </opt:options>
9)
010
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-41.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-41.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-41.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,9 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<n1:root xmlns:n1='ns' xmlns:m1='ms'><n2:root2 xmlns:n2='ns2' xmlns:m2='ms2'><n1:from1 xmlns:n3='ns3'><from2>Text from2</from2></n1:from1></n2:root2></n1:root>",
6 <opt:options>
7 <opt:parse-external-parsed-entity opt:skip-root-nodes="1"/>
8 </opt:options>
9)
010
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-42.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-42.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-42.xq 2012-03-13 15:50:27 +0000
@@ -0,0 +1,9 @@
1import module namespace z = "http://www.zorba-xquery.com/modules/xml";
2import schema namespace opt = "http://www.zorba-xquery.com/modules/xml-options";
3
4z:parse("<?xml version='1.0'?>
5<n1:root xmlns:n1='ns' xmlns:m1='ms'><n2:root2 xmlns:n2='ns2' xmlns:m2='ms2'><n1:from1 xmlns:n3='ns3'><from2>Text from2</from2></n1:from1></n2:root2></n1:root>",
6 <opt:options>
7 <opt:parse-external-parsed-entity opt:skip-root-nodes="2"/>
8 </opt:options>
9)
010
=== added file 'test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-43.xq'
--- test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-43.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/parsing_and_serializing/parse-fragment-skip-root-43.xq 2012-03-13 15:50:27 +0000
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches