Class XmlEventDecoder
- java.lang.Object
- org.springframework.core.codec.AbstractDecoder<XMLEvent>
- org.springframework.http.codec.xml.XmlEventDecoder
public class XmlEventDecoder extends AbstractDecoder<XMLEvent>
Decodes aDataBufferstream into a stream ofXMLEvents.Given the following XML:
<root> <child>foo</child> <child>bar</child> </root>this decoder will produce aFluxwith the following events:StartDocumentStartElementrootStartElementchildCharactersfooEndElementchildStartElementchildCharactersbarEndElementchildEndElementroot
Note that this decoder is not registered by default but is used internally by other decoders which are registered by default.
- Since:
- 5.0
- Author:
- Arjen Poutsma, Sam Brannen
Field Summary
Fields inherited from class org.springframework.core.codec.AbstractDecoder
logger
Constructor Summary
Constructors Constructor Description XmlEventDecoder()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description reactor.core.publisher.Flux<XMLEvent>decode(org.reactivestreams.Publisher<DataBuffer> input, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)Decode aDataBufferinput stream into a Flux ofT.intgetMaxInMemorySize()Return theconfiguredbyte count limit.voidsetMaxInMemorySize(int byteCount)Set the max number of bytes that can be buffered by this decoder.Methods inherited from class org.springframework.core.codec.AbstractDecoder
canDecode, decodeToMono, getDecodableMimeTypes, getLogger, setLogger
Constructor Detail
XmlEventDecoder
public XmlEventDecoder()
Method Detail
setMaxInMemorySize
public void setMaxInMemorySize(int byteCount)
Set the max number of bytes that can be buffered by this decoder. This is either the size the entire input when decoding as a whole, or when using async parsing via Aalto XML, it is size one top-level XML tree. When the limit is exceeded,DataBufferLimitExceptionis raised.By default this is set to 256K.
- Parameters:
byteCount- the max number of bytes to buffer, or -1 for unlimited- Since:
- 5.1.11
getMaxInMemorySize
public int getMaxInMemorySize()
Return theconfiguredbyte count limit.- Since:
- 5.1.11
decode
public reactor.core.publisher.Flux<XMLEvent> decode(org.reactivestreams.Publisher<DataBuffer> input, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String,Object> hints)
Description copied from interface:DecoderDecode aDataBufferinput stream into a Flux ofT.- Parameters:
input- theDataBufferinput stream to decodeelementType- the expected type of elements in the output stream; this type must have been previously passed to theDecoder.canDecode(org.springframework.core.ResolvableType, org.springframework.util.MimeType)method and it must have returnedtrue.mimeType- the MIME type associated with the input stream (optional)hints- additional information about how to do encode- Returns:
- the output stream with decoded elements