com.fasterxml.jackson.dataformat.xml.ser

## Class XmlBeanSerializerBase

- java.lang.Object
- - com.fasterxml.jackson.databind.JsonSerializer<T>
  - - com.fasterxml.jackson.databind.ser.std.StdSerializer<Object>
    - - com.fasterxml.jackson.databind.ser.std.BeanSerializerBase
      - - com.fasterxml.jackson.dataformat.xml.ser.XmlBeanSerializerBase

All Implemented Interfaces:
  com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable, com.fasterxml.jackson.databind.jsonschema.SchemaAware, com.fasterxml.jackson.databind.ser.ContextualSerializer, com.fasterxml.jackson.databind.ser.ResolvableSerializer, Serializable

Direct Known Subclasses:
  UnwrappingXmlBeanSerializer, XmlBeanSerializer

    public abstract class XmlBeanSerializerBase
    extends com.fasterxml.jackson.databind.ser.std.BeanSerializerBase

Specific sub-class of `BeanSerializerBase` needed to take care of some xml-specific aspects, such as distinction between attributes and elements.

See Also:
  Serialized Form

### Nested Class Summary

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

`com.fasterxml.jackson.databind.JsonSerializer.None`

### Field Summary

Fields
`protected int` `_attributeCount` Number of attributes to write; these will have been ordered to be the first properties to write.
`protected BitSet` `_cdata` Optional set of indexes of properties that should be serialized as CDATA, instead of regular XML text segment.
`protected int` `_textPropertyIndex` Index of "text value" property we have, if any; can have at most one such property.
`protected QName[]` `_xmlNames` Array that contains namespace URIs associated with properties, if any; null if no namespace definitions have been assigned
`static String` `KEY_XML_INFO` Marker used for storing associated internal data with `BeanPropertyWriter` instances; to mark instances that are to be written out as attributes.

### Fields inherited from class com.fasterxml.jackson.databind.ser.std.BeanSerializerBase

`_anyGetterWriter, _beanType, _filteredProps, _objectIdWriter, _propertyFilterId, _props, _serializationShape, _typeId, NAME_FOR_OBJECT_REF, NO_PROPS`

### Fields inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer

`_handledType`

### Constructor Summary

Constructors
`` `XmlBeanSerializerBase(com.fasterxml.jackson.databind.ser.std.BeanSerializerBase src)`
`` `XmlBeanSerializerBase(XmlBeanSerializerBase src, com.fasterxml.jackson.databind.util.NameTransformer transformer)`
`protected` `XmlBeanSerializerBase(XmlBeanSerializerBase src, com.fasterxml.jackson.databind.ser.impl.ObjectIdWriter objectIdWriter)`
`protected` `XmlBeanSerializerBase(XmlBeanSerializerBase src, com.fasterxml.jackson.databind.ser.impl.ObjectIdWriter objectIdWriter, Object filterId)`
`protected` `XmlBeanSerializerBase(XmlBeanSerializerBase src, Set<String> toIgnore)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`protected static boolean` `_isAttribute(com.fasterxml.jackson.databind.ser.BeanPropertyWriter bpw)`
`protected static boolean` `_isCData(com.fasterxml.jackson.databind.ser.BeanPropertyWriter bpw)`
`protected static int` `_orderAttributesFirst(com.fasterxml.jackson.databind.ser.BeanPropertyWriter[] properties, com.fasterxml.jackson.databind.ser.BeanPropertyWriter[] filteredProperties)` Method for re-sorting lists of bean properties such that attributes are strictly written before elements.
`protected void` `_serializeObjectId(Object bean, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer, com.fasterxml.jackson.databind.ser.impl.WritableObjectId objectId)`
`protected void` `serializeFields(Object bean, com.fasterxml.jackson.core.JsonGenerator gen0, com.fasterxml.jackson.databind.SerializerProvider provider)` Main serialization method needs to be overridden to allow XML-specific extra handling, such as indication of whether to write attributes or elements.
`protected void` `serializeFieldsFiltered(Object bean, com.fasterxml.jackson.core.JsonGenerator gen0, com.fasterxml.jackson.databind.SerializerProvider provider)`
`void` `serializeWithType(Object bean, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer)`

### Methods inherited from class com.fasterxml.jackson.databind.ser.std.BeanSerializerBase

`_customTypeId, _serializeWithObjectId, _serializeWithObjectId, _typeIdDef, acceptJsonFormatVisitor, asArraySerializer, createContextual, findConvertingSerializer, getSchema, properties, resolve, serialize, usesObjectId, withFilterId, withIgnorals, withIgnorals, withObjectIdWriter`

### Methods inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer

`_neitherNull, _nonEmpty, createSchemaNode, createSchemaNode, findAnnotatedContentSerializer, findContextualConvertingSerializer, findConvertingContentSerializer, findFormatFeature, findFormatOverrides, findIncludeOverrides, findPropertyFilter, getSchema, handledType, isDefaultSerializer, visitArrayFormat, visitArrayFormat, visitFloatFormat, visitIntFormat, visitIntFormat, visitStringFormat, visitStringFormat, wrapAndThrow, wrapAndThrow`

### Methods inherited from class com.fasterxml.jackson.databind.JsonSerializer

`getDelegatee, isEmpty, isEmpty, isUnwrappingSerializer, replaceDelegatee, unwrappingSerializer`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface com.fasterxml.jackson.databind.jsonschema.SchemaAware

`getSchema`

### Field Detail

#### KEY_XML_INFO

    public static final String KEY_XML_INFO

Marker used for storing associated internal data with `BeanPropertyWriter` instances; to mark instances that are to be written out as attributes. Created as separate non-interned String to ensure there are no collisions.

#### _attributeCount

    protected final int _attributeCount

Number of attributes to write; these will have been ordered to be the first properties to write.

#### _textPropertyIndex

    protected final int _textPropertyIndex

Index of "text value" property we have, if any; can have at most one such property.

#### _xmlNames

    protected final QName[] _xmlNames

Array that contains namespace URIs associated with properties, if any; null if no namespace definitions have been assigned

#### _cdata

    protected final BitSet _cdata

Optional set of indexes of properties that should be serialized as CDATA, instead of regular XML text segment. Left as null in cases where none of element values are to be written in such a way.

### Constructor Detail

#### XmlBeanSerializerBase

    public XmlBeanSerializerBase(com.fasterxml.jackson.databind.ser.std.BeanSerializerBase src)

#### XmlBeanSerializerBase

    protected XmlBeanSerializerBase(XmlBeanSerializerBase src,
                                    com.fasterxml.jackson.databind.ser.impl.ObjectIdWriter objectIdWriter)

#### XmlBeanSerializerBase

    protected XmlBeanSerializerBase(XmlBeanSerializerBase src,
                                    com.fasterxml.jackson.databind.ser.impl.ObjectIdWriter objectIdWriter,
                                    Object filterId)

#### XmlBeanSerializerBase

    protected XmlBeanSerializerBase(XmlBeanSerializerBase src,
                                    Set<String> toIgnore)

#### XmlBeanSerializerBase

    public XmlBeanSerializerBase(XmlBeanSerializerBase src,
                                 com.fasterxml.jackson.databind.util.NameTransformer transformer)

### Method Detail

#### serializeFields

    protected void serializeFields(Object bean,
                                   com.fasterxml.jackson.core.JsonGenerator gen0,
                                   com.fasterxml.jackson.databind.SerializerProvider provider)
                            throws IOException

Main serialization method needs to be overridden to allow XML-specific extra handling, such as indication of whether to write attributes or elements.

Overrides:
  `serializeFields` in class `com.fasterxml.jackson.databind.ser.std.BeanSerializerBase`
Throws:
  `IOException`

#### serializeFieldsFiltered

    protected void serializeFieldsFiltered(Object bean,
                                           com.fasterxml.jackson.core.JsonGenerator gen0,
                                           com.fasterxml.jackson.databind.SerializerProvider provider)
                                    throws IOException

Overrides:
  `serializeFieldsFiltered` in class `com.fasterxml.jackson.databind.ser.std.BeanSerializerBase`
Throws:
  `IOException`

#### serializeWithType

    public void serializeWithType(Object bean,
                                  com.fasterxml.jackson.core.JsonGenerator gen,
                                  com.fasterxml.jackson.databind.SerializerProvider provider,
                                  com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer)
                           throws IOException

Overrides:
  `serializeWithType` in class `com.fasterxml.jackson.databind.ser.std.BeanSerializerBase`
Throws:
  `IOException`

#### _serializeObjectId

    protected void _serializeObjectId(Object bean,
                                      com.fasterxml.jackson.core.JsonGenerator gen,
                                      com.fasterxml.jackson.databind.SerializerProvider provider,
                                      com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer,
                                      com.fasterxml.jackson.databind.ser.impl.WritableObjectId objectId)
                               throws IOException

Overrides:
  `_serializeObjectId` in class `com.fasterxml.jackson.databind.ser.std.BeanSerializerBase`
Throws:
  `IOException`

#### _isAttribute

    protected static boolean _isAttribute(com.fasterxml.jackson.databind.ser.BeanPropertyWriter bpw)

#### _isCData

    protected static boolean _isCData(com.fasterxml.jackson.databind.ser.BeanPropertyWriter bpw)

#### _orderAttributesFirst

    protected static int _orderAttributesFirst(com.fasterxml.jackson.databind.ser.BeanPropertyWriter[] properties,
                                               com.fasterxml.jackson.databind.ser.BeanPropertyWriter[] filteredProperties)

Method for re-sorting lists of bean properties such that attributes are strictly written before elements.