Skip to content

Commit 235cc81

Browse files
committed
[bugfix] Raise error FOJS0007 on all elements passed to fn:xmj-to-json that are missing Fn namespace
Improves upon 04c0e9d Closes eXist-db/exist#5543
1 parent 9118e60 commit 235cc81

File tree

1 file changed

+1
-4
lines changed

1 file changed

+1
-4
lines changed

exist-core/src/main/java/org/exist/xquery/functions/fn/FunXmlToJson.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ private void nodeValueToJson(final NodeValue nodeValue, final Writer writer) thr
143143
status = reader.next();
144144
switch (status) {
145145
case XMLStreamReader.START_ELEMENT:
146+
checkNamespace(reader.getNamespaceURI());
146147
tempStringBuilder.setLength(0);
147148
final String elementAttributeEscapedValue = reader.getAttributeValue(null, "escaped");
148149
elementValueIsEscaped = "true".equals(elementAttributeEscapedValue);
@@ -167,11 +168,9 @@ private void nodeValueToJson(final NodeValue nodeValue, final Writer writer) thr
167168
}
168169
switch (reader.getLocalName()) {
169170
case "array":
170-
checkNamespace(reader.getNamespaceURI());
171171
jsonGenerator.writeStartArray();
172172
break;
173173
case "map":
174-
checkNamespace(reader.getNamespaceURI());
175174
mapkeyArrayList.add(stackSeparator);
176175
jsonGenerator.writeStartObject();
177176
break;
@@ -187,15 +186,13 @@ private void nodeValueToJson(final NodeValue nodeValue, final Writer writer) thr
187186
final String tempString = tempStringBuilder.toString();
188187
switch (reader.getLocalName()) {
189188
case "array":
190-
checkNamespace(reader.getNamespaceURI());
191189
jsonGenerator.writeEndArray();
192190
break;
193191
case "boolean":
194192
final boolean tempBoolean = !(tempString.isEmpty() || "0".equals(tempString) || "false".equals(tempString));
195193
jsonGenerator.writeBoolean(tempBoolean);
196194
break;
197195
case "map":
198-
checkNamespace(reader.getNamespaceURI());
199196
while (!mapkeyArrayList.isEmpty() && mapkeyArrayList.remove(mapkeyArrayList.size() - 1) != stackSeparator) {
200197
}
201198
jsonGenerator.writeEndObject();

0 commit comments

Comments
 (0)