Skip to content

Commit 9639765

Browse files
committed
[bugfix] Fix issues with Saxon to eXist-db XDM conversion and vice-versa
Closes eXist-db/exist#5680
1 parent 28d8786 commit 9639765

File tree

14 files changed

+771
-46
lines changed

14 files changed

+771
-46
lines changed

exist-core/pom.xml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,7 @@
690690
<include>src/test/java/org/exist/xquery/value/DateTimeTypesTest.java</include>
691691
<include>src/test/java/org/exist/xquery/functions/fn/FunXmlToJsonTest.java</include>
692692
<include>src/test/java/org/exist/xquery/functions/fn/ParsingFunctionsTest.java</include>
693+
<include>src/test/java/org/exist/xquery/functions/fn/transform/ConvertTest.java</include>
693694
<include>src/test/java/org/exist/xquery/functions/fn/transform/FunTransformITTest.java</include>
694695
<include>src/test/java/org/exist/xquery/functions/xmldb/XMLDBStoreTest.java</include>
695696
<include>src/test/java/org/exist/xquery/functions/xquery3/SerializeTest.java</include>
@@ -717,6 +718,7 @@
717718
<include>src/test/resources-filtered/org/exist/storage/statistics/conf.xml</include>
718719
<include>src/test/resources-filtered/org/exist/xquery/functions/transform/transform-from-pkg-test.conf.xml</include>
719720
<include>src/main/antlr/org/exist/xquery/parser/XQueryTree.g</include>
721+
<include>src/main/java/org/exist/Indexer.java</include>
720722
<include>src/main/java/org/exist/backup/SystemExport.java</include>
721723
<include>src/main/java/org/exist/client/ClientFrame.java</include>
722724
<include>src/main/java/org/exist/client/Connection.java</include>
@@ -734,23 +736,28 @@
734736
<include>src/main/java/org/exist/collections/Collection.java</include>
735737
<include>src/main/java/org/exist/collections/CollectionConfiguration.java</include>
736738
<include>src/main/java/org/exist/collections/CollectionConfigurationManager.java</include>
739+
<include>src/main/java/org/exist/collections/MutableCollection.java</include>
737740
<include>src/main/java/org/exist/collections/triggers/CollectionTrigger.java</include>
738741
<include>src/main/java/org/exist/collections/triggers/DocumentTrigger.java</include>
739742
<include>src/main/java/org/exist/config/Configuration.java</include>
740743
<include>src/main/java/org/exist/config/ConfigurationImpl.java</include>
744+
<include>src/main/java/org/exist/dom/memtree/AttrImpl.java</include>
741745
<include>src/main/java/org/exist/dom/memtree/DocumentImpl.java</include>
742746
<include>src/main/java/org/exist/dom/memtree/DOMIndexer.java</include>
743747
<include>src/main/java/org/exist/dom/memtree/ElementImpl.java</include>
744748
<include>src/main/java/org/exist/dom/memtree/MemTreeBuilder.java</include>
745749
<include>src/main/java/org/exist/dom/memtree/NodeImpl.java</include>
746750
<include>src/main/java/org/exist/dom/persistent/AbstractCharacterData.java</include>
751+
<include>src/main/java/org/exist/dom/persistent/AttrImpl.java</include>
747752
<include>src/main/java/org/exist/dom/persistent/CommentImpl.java</include>
748753
<include>src/main/java/org/exist/dom/persistent/DocumentImpl.java</include>
749754
<include>src/main/java/org/exist/dom/persistent/DocumentSet.java</include>
750755
<include>src/main/java/org/exist/dom/persistent/ElementImpl.java</include>
751756
<include>src/main/java/org/exist/dom/persistent/NodeProxy.java</include>
752757
<include>src/test/java/org/exist/dom/persistent/NodeTest.java</include>
758+
<include>src/test/java/org/exist/dom/persistent/PersistentDomTest.java</include>
753759
<include>src/main/java/org/exist/dom/persistent/ProcessingInstructionImpl.java</include>
760+
<include>src/main/java/org/exist/dom/persistent/StoredNode.java</include>
754761
<include>src/main/java/org/exist/dom/persistent/SymbolTable.java</include>
755762
<include>src/main/java/org/exist/dom/persistent/TextImpl.java</include>
756763
<include>src/main/java/org/exist/dom/persistent/VirtualNodeSet.java</include>
@@ -838,8 +845,12 @@
838845
<include>src/test/java/org/exist/xquery/XQueryFunctionsTest.java</include>
839846
<include>src/main/java/org/exist/xquery/functions/fn/FunXmlToJson.java</include>
840847
<include>src/main/java/org/exist/xquery/functions/fn/LoadXQueryModule.java</include>
848+
<include>src/main/java/org/exist/xquery/functions/fn/transform/Convert.java</include>
849+
<include>src/main/java/org/exist/xquery/functions/fn/transform/Transform.java</include>
850+
<include>src/main/java/org/exist/xquery/functions/fn/transform/TreeUtils.java</include>
841851
<include>src/main/java/org/exist/xquery/functions/transform/Transform.java</include>
842852
<include>src/test/java/org/exist/xquery/functions/transform/TransformFromPkgTest.java</include>
853+
<include>src/test/java/org/exist/xquery/update/UpdateReplaceTest.java</include>
843854
<include>src/test/java/org/exist/xquery/value/Base64BinaryValueTypeTest.java</include>
844855
<include>src/main/java/org/exist/xslt/XsltURIResolverHelper.java</include>
845856
<include>src/test/resources/org/exist/validation/catalog.xml</include>
@@ -878,6 +889,7 @@
878889
<exclude>src/test/resources-filtered/org/exist/xquery/import-from-pkg-test.conf.xml</exclude>
879890
<exclude>src/test/resources-filtered/org/exist/xquery/functions/transform/transform-from-pkg-test.conf.xml</exclude>
880891
<exclude>src/main/antlr/org/exist/xquery/parser/XQueryTree.g</exclude>
892+
<exclude>src/main/java/org/exist/Indexer.java</exclude>
881893
<exclude>src/main/java/org/exist/backup/SystemExport.java</exclude>
882894
<exclude>src/main/java/org/exist/client/ClientFrame.java</exclude>
883895
<exclude>src/main/java/org/exist/client/Connection.java</exclude>
@@ -895,10 +907,12 @@
895907
<exclude>src/main/java/org/exist/collections/Collection.java</exclude>
896908
<exclude>src/main/java/org/exist/collections/CollectionConfiguration.java</exclude>
897909
<exclude>src/main/java/org/exist/collections/CollectionConfigurationManager.java</exclude>
910+
<exclude>src/main/java/org/exist/collections/MutableCollection.java</exclude>
898911
<exclude>src/main/java/org/exist/collections/triggers/CollectionTrigger.java</exclude>
899912
<exclude>src/main/java/org/exist/collections/triggers/DocumentTrigger.java</exclude>
900913
<exclude>src/main/java/org/exist/config/Configuration.java</exclude>
901914
<exclude>src/main/java/org/exist/config/ConfigurationImpl.java</exclude>
915+
<exclude>src/main/java/org/exist/dom/memtree/AttrImpl.java</exclude>
902916
<exclude>src/main/java/org/exist/dom/memtree/DocumentImpl.java</exclude>
903917
<exclude>src/main/java/org/exist/dom/memtree/DocumentTypeImpl.java</exclude>
904918
<exclude>src/main/java/org/exist/dom/memtree/DOMIndexer.java</exclude>
@@ -913,13 +927,16 @@
913927
<exclude>src/main/java/org/exist/dom/memtree/reference/ProcessingInstructionReferenceImpl.java</exclude>
914928
<exclude>src/main/java/org/exist/dom/memtree/reference/TextReferenceImpl.java</exclude>
915929
<exclude>src/main/java/org/exist/dom/persistent/AbstractCharacterData.java</exclude>
930+
<exclude>src/main/java/org/exist/dom/persistent/AttrImpl.java</exclude>
916931
<exclude>src/main/java/org/exist/dom/persistent/CommentImpl.java</exclude>
917932
<exclude>src/main/java/org/exist/dom/persistent/DocumentImpl.java</exclude>
918933
<exclude>src/main/java/org/exist/dom/persistent/DocumentSet.java</exclude>
919934
<exclude>src/main/java/org/exist/dom/persistent/ElementImpl.java</exclude>
920935
<exclude>src/main/java/org/exist/dom/persistent/NodeProxy.java</exclude>
921936
<exclude>src/test/java/org/exist/dom/persistent/NodeTest.java</exclude>
937+
<exclude>src/test/java/org/exist/dom/persistent/PersistentDomTest.java</exclude>
922938
<exclude>src/main/java/org/exist/dom/persistent/ProcessingInstructionImpl.java</exclude>
939+
<exclude>src/main/java/org/exist/dom/persistent/StoredNode.java</exclude>
923940
<exclude>src/main/java/org/exist/dom/persistent/SymbolTable.java</exclude>
924941
<exclude>src/main/java/org/exist/dom/persistent/TextImpl.java</exclude>
925942
<exclude>src/main/java/org/exist/dom/persistent/VirtualNodeSet.java</exclude>
@@ -987,6 +1004,7 @@
9871004
<exclude>src/main/java/org/exist/xquery/functions/fn/LoadXQueryModule.java</exclude>
9881005
<exclude>src/main/java/org/exist/xquery/functions/fn/ParsingFunctions.java</exclude>
9891006
<exclude>src/test/java/org/exist/xquery/functions/fn/ParsingFunctionsTest.java</exclude>
1007+
<exclude>src/test/java/org/exist/xquery/functions/fn/transform/ConvertTest.java</exclude>
9901008
<exclude>src/test/java/org/exist/xquery/functions/fn/transform/FunTransformITTest.java</exclude>
9911009
<exclude>src/main/java/org/exist/xquery/functions/system/GetUptime.java</exclude>
9921010
<exclude>src/main/java/org/exist/xquery/functions/system/Shutdown.java</exclude>
@@ -1016,6 +1034,9 @@
10161034
<exclude>src/test/java/org/exist/management/JmxRemoteTest.java</exclude>
10171035
<exclude>src/test/java/org/exist/xmldb/CreateCollectionsTest.java</exclude>
10181036
<exclude>src/test/java/org/exist/xquery/XQueryFunctionsTest.java</exclude>
1037+
<exclude>src/main/java/org/exist/xquery/functions/fn/transform/Convert.java</exclude>
1038+
<exclude>src/main/java/org/exist/xquery/functions/fn/transform/Transform.java</exclude>
1039+
<exclude>src/main/java/org/exist/xquery/functions/fn/transform/TreeUtils.java</exclude>
10191040
<exclude>src/main/java/org/exist/xquery/functions/transform/Transform.java</exclude>
10201041
<exclude>src/test/java/org/exist/xquery/functions/transform/TransformFromPkgTest.java</exclude>
10211042
<exclude>src/test/java/org/exist/xquery/value/Base64BinaryValueTypeTest.java</exclude>
@@ -1090,6 +1111,7 @@
10901111
<exclude>src/test/java/org/exist/xquery/functions/xmldb/XMLDBAuthenticateTest.java</exclude>
10911112
<exclude>src/main/java/org/exist/xquery/functions/util/Eval.java</exclude>
10921113
<exclude>src/main/java/org/exist/xquery/pragmas/TimePragma.java</exclude>
1114+
<exclude>src/test/java/org/exist/xquery/update/UpdateReplaceTest.java</exclude>
10931115
<exclude>src/test/java/org/exist/xquery/util/URIUtilsTest.java</exclude>
10941116
<exclude>src/main/java/org/exist/xquery/value/ArrayListValueSequence.java</exclude>
10951117
<exclude>src/test/java/org/exist/xquery/value/BifurcanMapTest.java</exclude>

exist-core/src/main/java/org/exist/Indexer.java

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
11
/*
2+
* Elemental
3+
* Copyright (C) 2024, Evolved Binary Ltd
4+
*
5+
6+
* https://www.evolvedbinary.com | https://www.elemental.xyz
7+
*
8+
* This library is free software; you can redistribute it and/or
9+
* modify it under the terms of the GNU Lesser General Public
10+
* License as published by the Free Software Foundation; version 2.1.
11+
*
12+
* This library is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15+
* Lesser General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU Lesser General Public
18+
* License along with this library; if not, write to the Free Software
19+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20+
*
21+
* NOTE: Parts of this file contain code from 'The eXist-db Authors'.
22+
* The original license header is included below.
23+
*
24+
* =====================================================================
25+
*
226
* eXist-db Open Source Native XML Database
327
* Copyright (C) 2001 The eXist-db Authors
428
*
@@ -591,7 +615,7 @@ public void startElement(final String namespace, final String name, final String
591615
setPrevious(null);
592616
node.setOwnerDocument(document);
593617
node.setAttributes((short) attrLength);
594-
if (nsMappings != null && nsMappings.size() > 0) {
618+
if (!nsMappings.isEmpty()) {
595619
node.setNamespaceMappings(nsMappings);
596620
nsMappings.clear();
597621
}
@@ -615,7 +639,7 @@ public void startElement(final String namespace, final String name, final String
615639
node.setOwnerDocument(document);
616640
node.setNodeId(broker.getBrokerPool().getNodeFactory().createInstance(nodeFactoryInstanceCnt++));
617641
node.setAttributes((short) attrLength);
618-
if (nsMappings != null && nsMappings.size() > 0) {
642+
if (!nsMappings.isEmpty()) {
619643
node.setNamespaceMappings(nsMappings);
620644
nsMappings.clear();
621645
}

exist-core/src/main/java/org/exist/collections/MutableCollection.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
11
/*
2+
* Elemental
3+
* Copyright (C) 2024, Evolved Binary Ltd
4+
*
5+
6+
* https://www.evolvedbinary.com | https://www.elemental.xyz
7+
*
8+
* This library is free software; you can redistribute it and/or
9+
* modify it under the terms of the GNU Lesser General Public
10+
* License as published by the Free Software Foundation; version 2.1.
11+
*
12+
* This library is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15+
* Lesser General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU Lesser General Public
18+
* License along with this library; if not, write to the Free Software
19+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20+
*
21+
* NOTE: Parts of this file contain code from 'The eXist-db Authors'.
22+
* The original license header is included below.
23+
*
24+
* =====================================================================
25+
*
226
* eXist-db Open Source Native XML Database
327
* Copyright (C) 2001 The eXist-db Authors
428
*
@@ -1160,7 +1184,7 @@ public void storeDocument(final Txn transaction, final DBBroker broker, final Xm
11601184

11611185
@Override
11621186
public void storeDocument(final Txn transaction, final DBBroker broker, final XmldbURI name, final Node node, @Nullable MimeType mimeType) throws EXistException, PermissionDeniedException, SAXException, LockException, IOException {
1163-
storeDocument(transaction, broker, name, node, mimeType);
1187+
storeDocument(transaction, broker, name, node, mimeType, null, null, null, null, null);
11641188
}
11651189

11661190
@Override

exist-core/src/main/java/org/exist/dom/memtree/AttrImpl.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
11
/*
2+
* Elemental
3+
* Copyright (C) 2024, Evolved Binary Ltd
4+
*
5+
6+
* https://www.evolvedbinary.com | https://www.elemental.xyz
7+
*
8+
* This library is free software; you can redistribute it and/or
9+
* modify it under the terms of the GNU Lesser General Public
10+
* License as published by the Free Software Foundation; version 2.1.
11+
*
12+
* This library is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15+
* Lesser General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU Lesser General Public
18+
* License along with this library; if not, write to the Free Software
19+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20+
*
21+
* NOTE: Parts of this file contain code from 'The eXist-db Authors'.
22+
* The original license header is included below.
23+
*
24+
* =====================================================================
25+
*
226
* eXist-db Open Source Native XML Database
327
* Copyright (C) 2001 The eXist-db Authors
428
*
@@ -79,6 +103,11 @@ public Node getFirstChild() {
79103
return null;
80104
}
81105

106+
@Override
107+
public Node getPreviousSibling() {
108+
return null;
109+
}
110+
82111
@Override
83112
public Node getNextSibling() {
84113
return null;

exist-core/src/main/java/org/exist/dom/persistent/AttrImpl.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
11
/*
2+
* Elemental
3+
* Copyright (C) 2024, Evolved Binary Ltd
4+
*
5+
6+
* https://www.evolvedbinary.com | https://www.elemental.xyz
7+
*
8+
* This library is free software; you can redistribute it and/or
9+
* modify it under the terms of the GNU Lesser General Public
10+
* License as published by the Free Software Foundation; version 2.1.
11+
*
12+
* This library is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15+
* Lesser General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU Lesser General Public
18+
* License along with this library; if not, write to the Free Software
19+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20+
*
21+
* NOTE: Parts of this file contain code from 'The eXist-db Authors'.
22+
* The original license header is included below.
23+
*
24+
* =====================================================================
25+
*
226
* eXist-db Open Source Native XML Database
327
* Copyright (C) 2001 The eXist-db Authors
428
*
@@ -385,6 +409,11 @@ public Node getFirstChild() {
385409
return null;
386410
}
387411

412+
@Override
413+
public Node getPreviousSibling() {
414+
return null;
415+
}
416+
388417
@Override
389418
public Node getNextSibling() {
390419
return null;

0 commit comments

Comments
 (0)