Skip to content

Commit 328314b

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 9118e60 commit 328314b

6 files changed

Lines changed: 629 additions & 81 deletions

File tree

exist-core/pom.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -732,6 +732,7 @@
732732
<include>src/test/resources/standalone-webapp/WEB-INF/web.xml</include>
733733
<include>src/test/xquery/maps/maps.xqm</include>
734734
<include>src/test/xquery/util/util.xml</include>
735+
<include>src/test/xquery/xquery3/parse-xml.xq</include>
735736
<include>src/test/xquery/xquery3/serialize.xql</include>
736737
<include>src/main/java/org/exist/Indexer.java</include>
737738
<include>src/main/resources-filtered/org/exist/system.properties</include>
@@ -857,13 +858,15 @@
857858
<include>src/main/java/org/exist/util/serializer/AttrList.java</include>
858859
<include>src/main/java/org/exist/util/serializer/DOMStreamer.java</include>
859860
<include>src/main/java/org/exist/util/serializer/EXISerializer.java</include>
861+
<include>src/main/java/org/exist/util/serializer/SAXSerializer.java</include>
860862
<include>src/main/java/org/exist/util/serializer/SerializerObjectFactory.java</include>
861863
<include>src/test/resources/org/exist/validation/catalog.xml</include>
862864
<include>src/test/java/org/exist/validation/CollectionConfigurationValidationModeTest.java</include>
863865
<include>src/test/java/org/exist/w3c/tests/TestCase.java</include>
864866
<include>src/main/java/org/exist/webstart/JnlpJarFiles.java</include>
865867
<include>src/test/java/org/exist/xmldb/CreateCollectionsTest.java</include>
866868
<include>src/main/java/org/exist/xmldb/RemoteRestoreService.java</include>
869+
<include>src/test/java/org/exist/xmldb/SerializationTest.java</include>
867870
<include>src/main/java/org/exist/xmlrpc/ExistRpcTypeFactory.java</include>
868871
<include>src/main/java/org/exist/xqj/Marshaller.java</include>
869872
<include>src/main/java/org/exist/xquery/DynamicTypeCheck.java</include>
@@ -874,6 +877,7 @@
874877
<include>src/main/java/org/exist/xquery/XPathUtil.java</include>
875878
<include>src/main/java/org/exist/xquery/XQueryContext.java</include>
876879
<include>src/test/java/org/exist/xquery/XQueryFunctionsTest.java</include>
880+
<include>src/test/java/org/exist/xquery/XQueryTest.java</include>
877881
<include>src/main/java/org/exist/xquery/functions/array/ArrayType.java</include>
878882
<include>src/test/java/org/exist/xquery/functions/fn/DocTest.java</include>
879883
<include>src/main/java/org/exist/xquery/functions/fn/FnModule.java</include>
@@ -945,6 +949,7 @@
945949
<exclude>src/test/xquery/maps/maps.xqm</exclude>
946950
<exclude>src/test/xquery/securitymanager/acl.xqm</exclude>
947951
<exclude>src/test/xquery/util/util.xml</exclude>
952+
<exclude>src/test/xquery/xquery3/parse-xml.xq</exclude>
948953
<exclude>src/test/xquery/xquery3/postfix-expr.xqm</exclude>
949954
<exclude>src/test/xquery/xquery3/serialize.xql</exclude>
950955
<exclude>src/main/java/org/exist/Indexer.java</exclude>
@@ -1136,13 +1141,15 @@
11361141
<exclude>src/main/java/org/exist/util/serializer/AttrList.java</exclude>
11371142
<exclude>src/main/java/org/exist/util/serializer/DOMStreamer.java</exclude>
11381143
<exclude>src/main/java/org/exist/util/serializer/EXISerializer.java</exclude>
1144+
<exclude>src/main/java/org/exist/util/serializer/SAXSerializer.java</exclude>
11391145
<exclude>src/main/java/org/exist/util/serializer/SerializerObjectFactory.java</exclude>
11401146
<exclude>src/test/resources/org/exist/validation/catalog.xml</exclude>
11411147
<exclude>src/test/java/org/exist/validation/CollectionConfigurationValidationModeTest.java</exclude>
11421148
<exclude>src/test/java/org/exist/w3c/tests/TestCase.java</exclude>
11431149
<exclude>src/main/java/org/exist/webstart/JnlpJarFiles.java</exclude>
11441150
<exclude>src/test/java/org/exist/xmldb/CreateCollectionsTest.java</exclude>
11451151
<exclude>src/main/java/org/exist/xmldb/RemoteRestoreService.java</exclude>
1152+
<exclude>src/test/java/org/exist/xmldb/SerializationTest.java</exclude>
11461153
<exclude>src/main/java/org/exist/xmlrpc/ACEAiderParser.java</exclude>
11471154
<exclude>src/main/java/org/exist/xmlrpc/ACEAiderSerializer.java</exclude>
11481155
<exclude>src/main/java/org/exist/xmlrpc/ExistRpcTypeFactory.java</exclude>
@@ -1166,6 +1173,7 @@
11661173
<exclude>src/main/java/org/exist/xquery/XQueryContext.java</exclude>
11671174
<exclude>src/test/java/org/exist/xquery/XQueryContextAttributesTest.java</exclude>
11681175
<exclude>src/test/java/org/exist/xquery/XQueryFunctionsTest.java</exclude>
1176+
<exclude>src/test/java/org/exist/xquery/XQueryTest.java</exclude>
11691177
<exclude>src/main/java/org/exist/xquery/functions/array/ArrayType.java</exclude>
11701178
<exclude>src/test/java/org/exist/xquery/functions/fn/DocTest.java</exclude>
11711179
<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)