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; as of Spring 4.0, 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
-