Skip to content

Commit 290a0a3

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 290a0a3

7 files changed

Lines changed: 615 additions & 118 deletions

File tree

exist-core/pom.xml

Lines changed: 4 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.xqm</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,6 +858,7 @@
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>
@@ -945,6 +947,7 @@
945947
<exclude>src/test/xquery/maps/maps.xqm</exclude>
946948
<exclude>src/test/xquery/securitymanager/acl.xqm</exclude>
947949
<exclude>src/test/xquery/util/util.xml</exclude>
950+
<exclude>src/test/xquery/xquery3/parse-xml.xqm</exclude>
948951
<exclude>src/test/xquery/xquery3/postfix-expr.xqm</exclude>
949952
<exclude>src/test/xquery/xquery3/serialize.xql</exclude>
950953
<exclude>src/main/java/org/exist/Indexer.java</exclude>
@@ -1136,6 +1139,7 @@
11361139
<exclude>src/main/java/org/exist/util/serializer/AttrList.java</exclude>
11371140
<exclude>src/main/java/org/exist/util/serializer/DOMStreamer.java</exclude>
11381141
<exclude>src/main/java/org/exist/util/serializer/EXISerializer.java</exclude>
1142+
<exclude>src/main/java/org/exist/util/serializer/SAXSerializer.java</exclude>
11391143
<exclude>src/main/java/org/exist/util/serializer/SerializerObjectFactory.java</exclude>
11401144
<exclude>src/test/resources/org/exist/validation/catalog.xml</exclude>
11411145
<exclude>src/test/java/org/exist/validation/CollectionConfigurationValidationModeTest.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)