Class JacksonXmlModule

java.lang.Object
com.fasterxml.jackson.databind.Module
com.fasterxml.jackson.databind.module.SimpleModule
com.fasterxml.jackson.dataformat.xml.JacksonXmlModule
All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned, Serializable

public class JacksonXmlModule extends com.fasterxml.jackson.databind.module.SimpleModule implements Serializable
Module that implements most functionality needed to support producing and consuming XML instead of JSON, used by XmlMapper for registering handlers for XML-specific processing.

NOTE: please do NOT register this directly on XmlMapper: mapper registers an instance (either one explicitly given in constructor, or, if none, one it configures) and attempts to re-register is unlikely to work as you'd expect.

See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.Module

    com.fasterxml.jackson.databind.Module.SetupContext
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected boolean
    Determination of whether indexed properties (arrays, Lists) that are not explicitly annotated (with JacksonXmlElementWrapper or equivalent) should default to using implicit wrapper (with same name as property) or not.
    protected String
    Name used for pseudo-property used for returning XML Text value (which does not have actual element name to use).
    private static final long
     

    Fields inherited from class com.fasterxml.jackson.databind.module.SimpleModule

    _abstractTypes, _deserializerModifier, _deserializers, _hasExplicitName, _keyDeserializers, _keySerializers, _mixins, _name, _namingStrategy, _serializerModifier, _serializers, _subtypes, _valueInstantiators, _version
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected com.fasterxml.jackson.databind.AnnotationIntrospector
     
    void
    setDefaultUseWrapper(boolean state)
    Method that can be used to define whether AnnotationIntrospector we register will use wrapper for indexed (List, array) properties or not, if there are no explicit annotations.
    void
    setupModule(com.fasterxml.jackson.databind.Module.SetupContext context)
     
    void
    Method that can be used to define alternate "virtual name" to use for XML CDATA segments; that is, text values.

    Methods inherited from class com.fasterxml.jackson.databind.module.SimpleModule

    _checkNotNull, addAbstractTypeMapping, addDeserializer, addKeyDeserializer, addKeySerializer, addSerializer, addSerializer, addValueInstantiator, getModuleName, getTypeId, registerSubtypes, registerSubtypes, registerSubtypes, setAbstractTypes, setDeserializerModifier, setDeserializers, setKeyDeserializers, setKeySerializers, setMixInAnnotation, setNamingStrategy, setSerializerModifier, setSerializers, setValueInstantiators, version

    Methods inherited from class com.fasterxml.jackson.databind.Module

    getDependencies

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • _cfgDefaultUseWrapper

      protected boolean _cfgDefaultUseWrapper
      Determination of whether indexed properties (arrays, Lists) that are not explicitly annotated (with JacksonXmlElementWrapper or equivalent) should default to using implicit wrapper (with same name as property) or not. If enabled, wrapping is used by default; if false, it is not.

      Note that JAXB annotation introspector always assumes "do not wrap by default". Jackson annotations have different default due to backwards compatibility.

      Since:
      2.1
    • _cfgNameForTextElement

      protected String _cfgNameForTextElement
      Name used for pseudo-property used for returning XML Text value (which does not have actual element name to use). Defaults to empty String, but may be changed for interoperability reasons: JAXB, for example, uses "value" as name.
      Since:
      2.1
  • Constructor Details

    • JacksonXmlModule

      public JacksonXmlModule()
  • Method Details

    • setupModule

      public void setupModule(com.fasterxml.jackson.databind.Module.SetupContext context)
      Overrides:
      setupModule in class com.fasterxml.jackson.databind.module.SimpleModule
    • setDefaultUseWrapper

      public void setDefaultUseWrapper(boolean state)
      Method that can be used to define whether AnnotationIntrospector we register will use wrapper for indexed (List, array) properties or not, if there are no explicit annotations. See JacksonXmlElementWrapper for details.

      Note that method MUST be called before registering the module; otherwise change will not have any effect.

      Parameters:
      state - Whether to enable or disable "use wrapper for non-annotated List properties"
      Since:
      2.1
    • setXMLTextElementName

      public void setXMLTextElementName(String name)
      Method that can be used to define alternate "virtual name" to use for XML CDATA segments; that is, text values. Default name is empty String (""); but some frameworks use other names: JAXB, for example, uses "value".

      Note that method MUST be called before registering the module; otherwise change will not have any effect.

      Parameters:
      name - Virtual name to use when exposing XML character data sections
      Since:
      2.1
    • _constructIntrospector

      protected com.fasterxml.jackson.databind.AnnotationIntrospector _constructIntrospector()