14
14
import com .fasterxml .jackson .core .base .ParserMinimalBase ;
15
15
import com .fasterxml .jackson .core .io .IOContext ;
16
16
import com .fasterxml .jackson .core .util .ByteArrayBuilder ;
17
+ import com .fasterxml .jackson .core .util .JacksonFeatureSet ;
18
+
17
19
import com .fasterxml .jackson .dataformat .xml .PackageVersion ;
18
20
import com .fasterxml .jackson .dataformat .xml .XmlMapper ;
19
21
import com .fasterxml .jackson .dataformat .xml .util .CaseInsensitiveNameSet ;
@@ -32,6 +34,15 @@ public class FromXmlParser
32
34
*/
33
35
public final static String DEFAULT_UNNAMED_TEXT_PROPERTY = "" ;
34
36
37
+ /**
38
+ * XML format has some peculiarities, indicated via new (2.12) capability
39
+ * system.
40
+ *
41
+ * @since 2.12
42
+ */
43
+ public JacksonFeatureSet <StreamReadCapability > XML_READ_CAPABILITIES =
44
+ DEFAULT_READ_CAPABILITIES .with (StreamReadCapability .DUPLICATE_PROPERTIES );
45
+
35
46
/**
36
47
* Enumeration that defines all togglable features for XML parsers.
37
48
*/
@@ -217,7 +228,13 @@ public void setCodec(ObjectCodec c) {
217
228
public void setXMLTextElementName (String name ) {
218
229
_cfgNameForTextElement = name ;
219
230
}
220
-
231
+
232
+ /*
233
+ /**********************************************************************
234
+ /* Overrides: capability introspection methods
235
+ /**********************************************************************
236
+ */
237
+
221
238
/**
222
239
* XML format does require support from custom {@link ObjectCodec}
223
240
* (that is, {@link XmlMapper}), so need to return true here.
@@ -228,7 +245,18 @@ public void setXMLTextElementName(String name) {
228
245
public boolean requiresCustomCodec () {
229
246
return true ;
230
247
}
231
-
248
+
249
+ @ Override
250
+ public boolean canReadObjectId () { return false ; }
251
+
252
+ @ Override
253
+ public boolean canReadTypeId () { return false ; }
254
+
255
+ @ Override
256
+ public JacksonFeatureSet <StreamReadCapability > getReadCapabilities () {
257
+ return XML_READ_CAPABILITIES ;
258
+ }
259
+
232
260
/*
233
261
/**********************************************************
234
262
/* Extended API, configuration
0 commit comments