Package org.restlet.ext.xml
Class SaxRepresentation
- java.lang.Object
-
- org.restlet.representation.Variant
-
- org.restlet.representation.RepresentationInfo
-
- org.restlet.representation.Representation
-
- org.restlet.representation.CharacterRepresentation
-
- org.restlet.representation.WriterRepresentation
-
- org.restlet.ext.xml.XmlRepresentation
-
- org.restlet.ext.xml.SaxRepresentation
-
- All Implemented Interfaces:
javax.xml.namespace.NamespaceContext
- Direct Known Subclasses:
Categories
,Entry
,Feed
,Service
public class SaxRepresentation extends XmlRepresentation
XML representation for SAX events processing. The purpose is to create a streamable content based on a custom Java object model instead of a neutral DOM tree. This domain object can then be directly modified and efficiently serialized at a later time.
Subclasses only need to override the ContentHandler methods required for the reading and also the write(XmlWriter writer) method when serialization is requested.
SECURITY WARNING: Using XML parsers configured to not prevent nor limit document type definition (DTD) entity resolution can expose the parser to an XML Entity Expansion injection attack, see https://github.com/restlet/restlet- framework-java/wiki/XEE-injection-security-fix.- Author:
- Jerome Louvel
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
XML_SECURE_PROCESSING
True for turning on secure parsing XML representations; default value provided by system property "org.restlet.ext.xml.secureProcessing", true by default.-
Fields inherited from class org.restlet.ext.xml.XmlRepresentation
XML_EXPANDING_ENTITY_REFS, XML_VALIDATING_DTD
-
-
Constructor Summary
Constructors Constructor Description SaxRepresentation()
Default constructor.SaxRepresentation(org.restlet.data.MediaType mediaType)
Constructor.SaxRepresentation(org.restlet.data.MediaType mediaType, javax.xml.transform.sax.SAXSource xmlSource)
Constructor.SaxRepresentation(org.restlet.data.MediaType mediaType, org.w3c.dom.Document xmlDocument)
Constructor.SaxRepresentation(org.restlet.data.MediaType mediaType, org.xml.sax.InputSource xmlSource)
Constructor.SaxRepresentation(org.restlet.representation.Representation xmlRepresentation)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.xml.sax.InputSource
getInputSource()
Returns the XML representation as a SAX input source.javax.xml.transform.sax.SAXSource
getSaxSource()
Returns the SAX source that can be parsed by theparse(ContentHandler)
method or used for an XSLT transformation.boolean
isSecureProcessing()
Indicates if it limits potential XML overflow attacks.void
parse(org.xml.sax.ContentHandler contentHandler)
Parses the source and sends SAX events to a content handler.void
release()
Releases the namespaces map.void
setSaxSource(javax.xml.transform.sax.SAXSource source)
Sets a SAX source that can be parsed by theparse(ContentHandler)
method.void
setSecureProcessing(boolean secureProcessing)
Indicates if it limits potential XML overflow attacks.void
write(java.io.Writer writer)
void
write(XmlWriter writer)
Writes the representation to a XML writer.-
Methods inherited from class org.restlet.ext.xml.XmlRepresentation
getBoolean, getDocument, getDocumentBuilder, getDomSource, getEntityResolver, getErrorHandler, getNamespaces, getNamespaceURI, getNode, getNodes, getNumber, getPrefix, getPrefixes, getSaxSource, getSchema, getStreamSource, getText, isCoalescing, isExpandingEntityRefs, isIgnoringComments, isIgnoringExtraWhitespaces, isNamespaceAware, isValidatingDtd, isXIncludeAware, setCoalescing, setEntityResolver, setErrorHandler, setExpandingEntityRefs, setIgnoringComments, setIgnoringExtraWhitespaces, setNamespaceAware, setNamespaces, setSchema, setSchema, setValidatingDtd, setXIncludeAware, validate, validate, validate, validate
-
Methods inherited from class org.restlet.representation.CharacterRepresentation
getChannel, getStream, write, write
-
Methods inherited from class org.restlet.representation.Representation
append, exhaust, getAvailableSize, getDigest, getDisposition, getExpirationDate, getRange, getRegistration, getSize, getText, hasKnownSize, isAvailable, isEmpty, isSelectable, isTransient, setAvailable, setDigest, setDisposition, setExpirationDate, setListener, setRange, setSize, setTransient
-
Methods inherited from class org.restlet.representation.RepresentationInfo
getModificationDate, getTag, setModificationDate, setTag
-
-
-
-
Constructor Detail
-
SaxRepresentation
public SaxRepresentation()
Default constructor. Uses theMediaType.TEXT_XML
media type.
-
SaxRepresentation
public SaxRepresentation(org.restlet.data.MediaType mediaType)
Constructor.- Parameters:
mediaType
- The representation media type.
-
SaxRepresentation
public SaxRepresentation(org.restlet.data.MediaType mediaType, org.w3c.dom.Document xmlDocument)
Constructor.- Parameters:
mediaType
- The representation's media type.xmlDocument
- A DOM document to parse.
-
SaxRepresentation
public SaxRepresentation(org.restlet.data.MediaType mediaType, org.xml.sax.InputSource xmlSource)
Constructor.- Parameters:
mediaType
- The representation's media type.xmlSource
- A SAX input source to parse.
-
SaxRepresentation
public SaxRepresentation(org.restlet.data.MediaType mediaType, javax.xml.transform.sax.SAXSource xmlSource)
Constructor.- Parameters:
mediaType
- The representation's media type.xmlSource
- A JAXP source to parse.
-
SaxRepresentation
public SaxRepresentation(org.restlet.representation.Representation xmlRepresentation)
Constructor.- Parameters:
xmlRepresentation
- A source XML representation to parse.
-
-
Method Detail
-
getInputSource
public org.xml.sax.InputSource getInputSource() throws java.io.IOException
Description copied from class:XmlRepresentation
Returns the XML representation as a SAX input source.- Specified by:
getInputSource
in classXmlRepresentation
- Returns:
- The SAX input source.
- Throws:
java.io.IOException
-
getSaxSource
public javax.xml.transform.sax.SAXSource getSaxSource() throws java.io.IOException
Returns the SAX source that can be parsed by theparse(ContentHandler)
method or used for an XSLT transformation.- Overrides:
getSaxSource
in classXmlRepresentation
- Returns:
- A SAX source.
- Throws:
java.io.IOException
-
isSecureProcessing
public boolean isSecureProcessing()
Indicates if it limits potential XML overflow attacks.- Returns:
- True if it limits potential XML overflow attacks.
-
parse
public void parse(org.xml.sax.ContentHandler contentHandler) throws java.io.IOException
Parses the source and sends SAX events to a content handler.- Parameters:
contentHandler
- The SAX content handler to use for parsing.- Throws:
java.io.IOException
-
release
public void release()
Releases the namespaces map.- Overrides:
release
in classXmlRepresentation
-
setSaxSource
public void setSaxSource(javax.xml.transform.sax.SAXSource source)
Sets a SAX source that can be parsed by theparse(ContentHandler)
method.- Parameters:
source
- A SAX source.
-
setSecureProcessing
public void setSecureProcessing(boolean secureProcessing)
Indicates if it limits potential XML overflow attacks.- Parameters:
secureProcessing
- True if it limits potential XML overflow attacks.
-
write
public void write(java.io.Writer writer) throws java.io.IOException
- Specified by:
write
in classorg.restlet.representation.Representation
- Throws:
java.io.IOException
-
write
public void write(XmlWriter writer) throws java.io.IOException
Writes the representation to a XML writer. The default implementation callsparse(ContentHandler)
using theXmlWriter
parameter as the content handler. This behavior is intended to be overridden.- Parameters:
writer
- The XML writer to write to.- Throws:
java.io.IOException
-
-