Skip to content

Commit 809391b

Browse files
authored
Merge pull request #45 from evolvedbinary/6.x.x/hotfix/fn-xml-to-json-namespace
[6.x.x] Raise error FOJS0007 on all elements passed to fn:xmj-to-json that are missing Fn namespace
2 parents 84a0ff6 + 235cc81 commit 809391b

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
@@ -144,6 +144,7 @@ private void nodeValueToJson(final NodeValue nodeValue, final Writer writer) thr
144144
status = reader.next();
145145
switch (status) {
146146
case XMLStreamReader.START_ELEMENT:
147+
checkNamespace(reader.getNamespaceURI());
147148
tempStringBuilder.setLength(0);
148149
final String elementAttributeEscapedValue = reader.getAttributeValue(null, "escaped");
149150
elementValueIsEscaped = "true".equals(elementAttributeEscapedValue);
@@ -168,11 +169,9 @@ private void nodeValueToJson(final NodeValue nodeValue, final Writer writer) thr
168169
}
169170
switch (reader.getLocalName()) {
170171
case "array":
171-
checkNamespace(reader.getNamespaceURI());
172172
jsonGenerator.writeStartArray();
173173
break;
174174
case "map":
175-
checkNamespace(reader.getNamespaceURI());
176175
mapkeyArrayList.add(stackSeparator);
177176
jsonGenerator.writeStartObject();
178177
break;
@@ -188,15 +187,13 @@ private void nodeValueToJson(final NodeValue nodeValue, final Writer writer) thr
188187
final String tempString = tempStringBuilder.toString();
189188
switch (reader.getLocalName()) {
190189
case "array":
191-
checkNamespace(reader.getNamespaceURI());
192190
jsonGenerator.writeEndArray();
193191
break;
194192
case "boolean":
195193
final boolean tempBoolean = !(tempString.isEmpty() || "0".equals(tempString) || "false".equals(tempString));
196194
jsonGenerator.writeBoolean(tempBoolean);
197195
break;
198196
case "map":
199-
checkNamespace(reader.getNamespaceURI());
200197
while (!mapkeyArrayList.isEmpty() && mapkeyArrayList.remove(mapkeyArrayList.size() - 1) != stackSeparator) {
201198
}
202199
jsonGenerator.writeEndObject();

0 commit comments

Comments
 (0)