Class StaxUtils
java.lang.Object
org.springframework.util.xml.StaxUtils
Convenience methods for working with the StAX API. Partly historic due to JAXP 1.3
compatibility; relying on JAXP 1.4 as included in JDK 1.6 and higher.
In particular, methods for using StAX (javax.xml.stream) in combination with
the TrAX API (javax.xml.transform), and converting StAX readers/writers into SAX
readers/handlers and vice-versa.
- Since:
- 3.0
- Author:
- Arjen Poutsma, Juergen Hoeller
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ContentHandlercreateContentHandler(XMLEventWriter eventWriter) Create a SAXContentHandlerthat writes events to the given StAXXMLEventWriter.static ContentHandlercreateContentHandler(XMLStreamWriter streamWriter) Create a SAXContentHandlerthat writes to the given StAXXMLStreamWriter.static ResultcreateCustomStaxResult(XMLEventWriter eventWriter) Create a custom, non-JAXP 1.4 StAXResultfor the givenXMLEventWriter.static ResultcreateCustomStaxResult(XMLStreamWriter streamWriter) Create a custom, non-JAXP 1.4 StAXResultfor the givenXMLStreamWriter.static SourcecreateCustomStaxSource(XMLEventReader eventReader) Create a custom, non-JAXP 1.4 StAXSourcefor the givenXMLEventReader.static SourcecreateCustomStaxSource(XMLStreamReader streamReader) Create a custom, non-JAXP 1.4 StAXSourcefor the givenXMLStreamReader.static XMLInputFactoryCreate anXMLInputFactorywith Spring's defensive setup, i.e.static <T extends XMLInputFactory>
TcreateDefensiveInputFactory(Supplier<T> instanceSupplier) Variant ofcreateDefensiveInputFactory()with a custom instance.static XMLStreamReadercreateEventStreamReader(XMLEventReader eventReader) Return aXMLStreamReaderthat reads from aXMLEventReader.static XMLStreamWritercreateEventStreamWriter(XMLEventWriter eventWriter) Return aXMLStreamWriterthat writes to aXMLEventWriter.static XMLStreamWritercreateEventStreamWriter(XMLEventWriter eventWriter, XMLEventFactory eventFactory) Return aXMLStreamWriterthat writes to aXMLEventWriter.static ResultcreateStaxResult(XMLEventWriter eventWriter) Create a JAXP 1.4StAXResultfor the givenXMLEventWriter.static ResultcreateStaxResult(XMLStreamWriter streamWriter) Create a JAXP 1.4StAXResultfor the givenXMLStreamWriter.static SourcecreateStaxSource(XMLEventReader eventReader) Create a JAXP 1.4StAXSourcefor the givenXMLEventReader.static SourcecreateStaxSource(XMLStreamReader streamReader) Create a JAXP 1.4StAXSourcefor the givenXMLStreamReader.static XMLEventReadercreateXMLEventReader(List<XMLEvent> events) Create aXMLEventReaderfrom the given list ofXMLEvent.static XMLReadercreateXMLReader(XMLEventReader eventReader) Create a SAXXMLReaderthat reads from the given StAXXMLEventReader.static XMLReadercreateXMLReader(XMLStreamReader streamReader) Create a SAXXMLReaderthat reads from the given StAXXMLStreamReader.static @Nullable XMLEventReadergetXMLEventReader(Source source) Return theXMLEventReaderfor the given StAX Source.static @Nullable XMLEventWritergetXMLEventWriter(Result result) Return theXMLEventWriterfor the given StAX Result.static @Nullable XMLStreamReadergetXMLStreamReader(Source source) Return theXMLStreamReaderfor the given StAX Source.static @Nullable XMLStreamWritergetXMLStreamWriter(Result result) Return theXMLStreamWriterfor the given StAX Result.static booleanisStaxResult(Result result) Indicate whether the givenResultis a JAXP 1.4 StAX Result or custom StAX Result.static booleanisStaxSource(Source source) Indicate whether the givenSourceis a JAXP 1.4 StAX Source or custom StAX Source.
-
Constructor Details
-
StaxUtils
public StaxUtils()
-
-
Method Details
-
createDefensiveInputFactory
Create anXMLInputFactorywith Spring's defensive setup, i.e. no support for the resolution of DTDs and external entities.- Returns:
- a new defensively initialized input factory instance to use
- Since:
- 5.0
-
createDefensiveInputFactory
public static <T extends XMLInputFactory> T createDefensiveInputFactory(Supplier<T> instanceSupplier) Variant ofcreateDefensiveInputFactory()with a custom instance.- Parameters:
instanceSupplier- supplier for the input factory instance- Returns:
- a new defensively initialized input factory instance to use
- Since:
- 5.0.12
-
createStaxSource
Create a JAXP 1.4StAXSourcefor the givenXMLStreamReader.- Parameters:
streamReader- the StAX stream reader- Returns:
- a source wrapping the
streamReader
-
createStaxSource
Create a JAXP 1.4StAXSourcefor the givenXMLEventReader.- Parameters:
eventReader- the StAX event reader- Returns:
- a source wrapping the
eventReader - Throws:
XMLStreamException
-
createCustomStaxSource
Create a custom, non-JAXP 1.4 StAXSourcefor the givenXMLStreamReader.- Parameters:
streamReader- the StAX stream reader- Returns:
- a source wrapping the
streamReader
-
createCustomStaxSource
Create a custom, non-JAXP 1.4 StAXSourcefor the givenXMLEventReader.- Parameters:
eventReader- the StAX event reader- Returns:
- a source wrapping the
eventReader
-
isStaxSource
Indicate whether the givenSourceis a JAXP 1.4 StAX Source or custom StAX Source.- Returns:
trueifsourceis a JAXP 1.4StAXSourceor custom StAX Source;falseotherwise
-
getXMLStreamReader
Return theXMLStreamReaderfor the given StAX Source.- Parameters:
source- a JAXP 1.4StAXSource- Returns:
- the
XMLStreamReader - Throws:
IllegalArgumentException- ifsourceisn't a JAXP 1.4StAXSourceor custom StAX Source
-
getXMLEventReader
Return theXMLEventReaderfor the given StAX Source.- Parameters:
source- a JAXP 1.4StAXSource- Returns:
- the
XMLEventReader - Throws:
IllegalArgumentException- ifsourceisn't a JAXP 1.4StAXSourceor custom StAX Source
-
createStaxResult
Create a JAXP 1.4StAXResultfor the givenXMLStreamWriter.- Parameters:
streamWriter- the StAX stream writer- Returns:
- a result wrapping the
streamWriter
-
createStaxResult
Create a JAXP 1.4StAXResultfor the givenXMLEventWriter.- Parameters:
eventWriter- the StAX event writer- Returns:
- a result wrapping
streamReader
-
createCustomStaxResult
Create a custom, non-JAXP 1.4 StAXResultfor the givenXMLStreamWriter.- Parameters:
streamWriter- the StAX stream writer- Returns:
- a source wrapping the
streamWriter
-
createCustomStaxResult
Create a custom, non-JAXP 1.4 StAXResultfor the givenXMLEventWriter.- Parameters:
eventWriter- the StAX event writer- Returns:
- a source wrapping the
eventWriter
-
isStaxResult
Indicate whether the givenResultis a JAXP 1.4 StAX Result or custom StAX Result.- Returns:
trueifresultis a JAXP 1.4StAXResultor custom StAX Result;falseotherwise
-
getXMLStreamWriter
Return theXMLStreamWriterfor the given StAX Result.- Parameters:
result- a JAXP 1.4StAXResult- Returns:
- the
XMLStreamReader - Throws:
IllegalArgumentException- ifsourceisn't a JAXP 1.4StAXResultor custom StAX Result
-
getXMLEventWriter
Return theXMLEventWriterfor the given StAX Result.- Parameters:
result- a JAXP 1.4StAXResult- Returns:
- the
XMLStreamReader - Throws:
IllegalArgumentException- ifsourceisn't a JAXP 1.4StAXResultor custom StAX Result
-
createXMLEventReader
Create aXMLEventReaderfrom the given list ofXMLEvent.- Parameters:
events- the list ofXMLEvents.- Returns:
- an
XMLEventReaderthat reads from the given events - Since:
- 5.0
-
createContentHandler
Create a SAXContentHandlerthat writes to the given StAXXMLStreamWriter.- Parameters:
streamWriter- the StAX stream writer- Returns:
- a content handler writing to the
streamWriter
-
createContentHandler
Create a SAXContentHandlerthat writes events to the given StAXXMLEventWriter.- Parameters:
eventWriter- the StAX event writer- Returns:
- a content handler writing to the
eventWriter
-
createXMLReader
Create a SAXXMLReaderthat reads from the given StAXXMLStreamReader.- Parameters:
streamReader- the StAX stream reader- Returns:
- a XMLReader reading from the
streamWriter
-
createXMLReader
Create a SAXXMLReaderthat reads from the given StAXXMLEventReader.- Parameters:
eventReader- the StAX event reader- Returns:
- a XMLReader reading from the
eventWriter
-
createEventStreamReader
public static XMLStreamReader createEventStreamReader(XMLEventReader eventReader) throws XMLStreamException Return aXMLStreamReaderthat reads from aXMLEventReader. Useful because the StAXXMLInputFactoryallows one to create an event reader from a stream reader, but not vice-versa.- Returns:
- a stream reader that reads from an event reader
- Throws:
XMLStreamException
-
createEventStreamWriter
Return aXMLStreamWriterthat writes to aXMLEventWriter.- Returns:
- a stream writer that writes to an event writer
- Since:
- 3.2
-
createEventStreamWriter
public static XMLStreamWriter createEventStreamWriter(XMLEventWriter eventWriter, XMLEventFactory eventFactory) Return aXMLStreamWriterthat writes to aXMLEventWriter.- Returns:
- a stream writer that writes to an event writer
- Since:
- 3.0.5
-