Skip to content

Commit 3523d6f

Browse files
committed
[bugfix] When serializing XML, if the prefix points to the same namespace as the default namespace, then remove the qname namespace prefix
Closes eXist-db/exist#5790
1 parent dcc8782 commit 3523d6f

File tree

6 files changed

+615
-63
lines changed

6 files changed

+615
-63
lines changed

exist-core/pom.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -781,6 +781,7 @@
781781
<include>src/test/resources/standalone-webapp/WEB-INF/web.xml</include>
782782
<include>src/test/xquery/maps/maps.xqm</include>
783783
<include>src/test/xquery/util/util.xml</include>
784+
<include>src/test/xquery/xquery3/parse-xml.xq</include>
784785
<include>src/test/xquery/xquery3/serialize.xql</include>
785786
<include>src/main/java/org/exist/Indexer.java</include>
786787
<include>src/main/resources-filtered/org/exist/system.properties</include>
@@ -911,13 +912,15 @@
911912
<include>src/main/java/org/exist/util/serializer/AttrList.java</include>
912913
<include>src/main/java/org/exist/util/serializer/DOMStreamer.java</include>
913914
<include>src/main/java/org/exist/util/serializer/EXISerializer.java</include>
915+
<include>src/main/java/org/exist/util/serializer/SAXSerializer.java</include>
914916
<include>src/main/java/org/exist/util/serializer/SerializerObjectFactory.java</include>
915917
<include>src/test/resources/org/exist/validation/catalog.xml</include>
916918
<include>src/test/java/org/exist/validation/CollectionConfigurationValidationModeTest.java</include>
917919
<include>src/test/java/org/exist/w3c/tests/TestCase.java</include>
918920
<include>src/main/java/org/exist/webstart/JnlpJarFiles.java</include>
919921
<include>src/test/java/org/exist/xmldb/CreateCollectionsTest.java</include>
920922
<include>src/main/java/org/exist/xmldb/RemoteRestoreService.java</include>
923+
<include>src/test/java/org/exist/xmldb/SerializationTest.java</include>
921924
<include>src/main/java/org/exist/xmlrpc/ExistRpcTypeFactory.java</include>
922925
<include>src/main/java/org/exist/xqj/Marshaller.java</include>
923926
<include>src/main/java/org/exist/xquery/DynamicTypeCheck.java</include>
@@ -928,6 +931,7 @@
928931
<include>src/main/java/org/exist/xquery/XPathUtil.java</include>
929932
<include>src/main/java/org/exist/xquery/XQueryContext.java</include>
930933
<include>src/test/java/org/exist/xquery/XQueryFunctionsTest.java</include>
934+
<include>src/test/java/org/exist/xquery/XQueryTest.java</include>
931935
<include>src/main/java/org/exist/xquery/functions/array/ArrayType.java</include>
932936
<include>src/test/java/org/exist/xquery/functions/fn/DocTest.java</include>
933937
<include>src/main/java/org/exist/xquery/functions/fn/FnModule.java</include>
@@ -1007,6 +1011,7 @@
10071011
<exclude>src/test/xquery/xqsuite/xqsuite-assertions-inline.xqm</exclude>
10081012
<exclude>src/test/xquery/xqsuite/xqsuite-assertions.resources.xqm.ignore</exclude>
10091013
<exclude>src/test/xquery/xquery3/function-reference.xqm</exclude>
1014+
<exclude>src/test/xquery/xquery3/parse-xml.xq</exclude>
10101015
<exclude>src/test/xquery/xquery3/postfix-expr.xqm</exclude>
10111016
<exclude>src/test/xquery/xquery3/serialize.xql</exclude>
10121017
<exclude>src/main/java/org/exist/Indexer.java</exclude>
@@ -1208,13 +1213,15 @@
12081213
<exclude>src/main/java/org/exist/util/serializer/AttrList.java</exclude>
12091214
<exclude>src/main/java/org/exist/util/serializer/DOMStreamer.java</exclude>
12101215
<exclude>src/main/java/org/exist/util/serializer/EXISerializer.java</exclude>
1216+
<exclude>src/main/java/org/exist/util/serializer/SAXSerializer.java</exclude>
12111217
<exclude>src/main/java/org/exist/util/serializer/SerializerObjectFactory.java</exclude>
12121218
<exclude>src/test/resources/org/exist/validation/catalog.xml</exclude>
12131219
<exclude>src/test/java/org/exist/validation/CollectionConfigurationValidationModeTest.java</exclude>
12141220
<exclude>src/test/java/org/exist/w3c/tests/TestCase.java</exclude>
12151221
<exclude>src/main/java/org/exist/webstart/JnlpJarFiles.java</exclude>
12161222
<exclude>src/test/java/org/exist/xmldb/CreateCollectionsTest.java</exclude>
12171223
<exclude>src/main/java/org/exist/xmldb/RemoteRestoreService.java</exclude>
1224+
<exclude>src/test/java/org/exist/xmldb/SerializationTest.java</exclude>
12181225
<exclude>src/main/java/org/exist/xmlrpc/ACEAiderParser.java</exclude>
12191226
<exclude>src/main/java/org/exist/xmlrpc/ACEAiderSerializer.java</exclude>
12201227
<exclude>src/main/java/org/exist/xmlrpc/ExistRpcTypeFactory.java</exclude>
@@ -1239,6 +1246,7 @@
12391246
<exclude>src/main/java/org/exist/xquery/XQueryContext.java</exclude>
12401247
<exclude>src/test/java/org/exist/xquery/XQueryContextAttributesTest.java</exclude>
12411248
<exclude>src/test/java/org/exist/xquery/XQueryFunctionsTest.java</exclude>
1249+
<exclude>src/test/java/org/exist/xquery/XQueryTest.java</exclude>
12421250
<exclude>src/main/java/org/exist/xquery/functions/array/ArrayType.java</exclude>
12431251
<exclude>src/test/java/org/exist/xquery/functions/fn/DocTest.java</exclude>
12441252
<exclude>src/main/java/org/exist/xquery/functions/fn/FnModule.java</exclude>

exist-core/src/main/java/org/exist/util/StringUtil.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,4 +293,24 @@ public static boolean endsWith(@Nullable final String string, @Nullable final St
293293

294294
return string.substring(0, idx);
295295
}
296+
297+
/**
298+
* Test if two strings are equal whilst handling null references.
299+
*
300+
* @param s1 the first string.
301+
* @param s2 the second string.
302+
*
303+
* @return true of the strings are equal or both are null, false otherwise.
304+
*/
305+
public static boolean equals(@Nullable final String s1, @Nullable final String s2) {
306+
if (s1 == s2) {
307+
return true;
308+
}
309+
310+
if (s1 == null) {
311+
return false;
312+
}
313+
314+
return s1.equals(s2);
315+
}
296316
}

0 commit comments

Comments
 (0)