public class ContentHandlerProxy extends java.lang.Object implements Receiver
Note that in general the output passed to a Receiver corresponds to an External General Parsed Entity. A SAX2 ContentHandler only expects to deal with well-formed XML documents, so we only pass it the contents of the first element encountered, unless the saxon:require-well-formed output property is set to "no".
This ContentHandlerProxy provides no access to type information. For a ContentHandler that
makes type information available, see TypedContentHandler
The ContentHandlerProxy can also be nominated as a TraceListener, to receive notification of trace events.
Modifier and Type | Class and Description |
---|---|
static class |
ContentHandlerProxy.ContentHandlerProxyTraceListener
Create a TraceListener that will collect information about the current
location in the source document.
|
Modifier and Type | Field and Description |
---|---|
protected org.xml.sax.ContentHandler |
handler |
protected org.xml.sax.ext.LexicalHandler |
lexicalHandler |
Constructor and Description |
---|
ContentHandlerProxy() |
Modifier and Type | Method and Description |
---|---|
void |
characters(java.lang.CharSequence chars,
Location locationId,
int properties)
Character data
|
void |
close()
Notify the end of the event stream
|
void |
comment(java.lang.CharSequence chars,
Location locationId,
int properties)
Output a comment.
|
void |
endDocument()
Notify the end of the document
|
void |
endElement()
End of element
|
Configuration |
getConfiguration()
Get the Saxon configuration
|
Location |
getCurrentLocation()
Get the current location identifier
|
PipelineConfiguration |
getPipelineConfiguration()
Get the pipeline configuration
|
java.lang.String |
getSystemId()
Get the System ID of the destination tree
|
ContentHandlerProxy.ContentHandlerProxyTraceListener |
getTraceListener()
Get the associated TraceListener that receives notification of trace events
|
org.xml.sax.ContentHandler |
getUnderlyingContentHandler()
Get the underlying content handler
|
boolean |
isRequireWellFormed()
Ask whether the content handler can handle a stream of events that is merely
well-balanced, or whether it can only handle a well-formed sequence.
|
boolean |
isUndeclareNamespaces()
Ask whether namespace undeclaration events (for a non-null prefix) should be notified.
|
protected void |
notifyNotWellFormed()
The following function is called when it is found that the output is not a well-formed document.
|
void |
open()
Notify the start of the event stream
|
void |
processingInstruction(java.lang.String target,
java.lang.CharSequence data,
Location locationId,
int properties)
Processing Instruction
|
void |
setLexicalHandler(org.xml.sax.ext.LexicalHandler handler)
Set the Lexical Handler to be used.
|
void |
setOutputProperties(java.util.Properties details)
Set the output details.
|
void |
setPipelineConfiguration(PipelineConfiguration pipe)
Set the pipeline configuration
|
void |
setRequireWellFormed(boolean wellFormed)
Set whether the content handler can handle a stream of events that is merely
well-balanced, or whether it can only handle a well-formed sequence.
|
void |
setSystemId(java.lang.String systemId)
Set the System ID of the destination tree
|
void |
setUndeclareNamespaces(boolean undeclareNamespaces)
Set whether namespace undeclaration events (for a non-null prefix) should be notified.
|
void |
setUnderlyingContentHandler(org.xml.sax.ContentHandler handler)
Set the underlying content handler.
|
void |
setUnparsedEntity(java.lang.String name,
java.lang.String systemID,
java.lang.String publicID)
Notify an unparsed entity URI.
|
void |
startDocument(int properties)
Notify the start of the document.
|
void |
startElement(NodeName elemName,
SchemaType type,
AttributeMap attributes,
NamespaceMap namespaces,
Location location,
int properties)
Notify the start of an element
|
boolean |
usesTypeAnnotations()
Ask whether this Receiver (or the downstream pipeline) makes any use of the type annotations
supplied on element and attribute events
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
append, append, handlesAppend
protected org.xml.sax.ContentHandler handler
protected org.xml.sax.ext.LexicalHandler lexicalHandler
public void setUnderlyingContentHandler(org.xml.sax.ContentHandler handler)
LexicalHandler
, then it will also receive
notification of lexical events such as comments.handler
- the SAX content handler to which all events will be directedpublic org.xml.sax.ContentHandler getUnderlyingContentHandler()
public void setLexicalHandler(org.xml.sax.ext.LexicalHandler handler)
handler
- the SAX lexical handler to which lexical events (such as comments) will
be notified.public void setPipelineConfiguration(PipelineConfiguration pipe)
setPipelineConfiguration
in interface Receiver
pipe
- the pipeline configurationpublic PipelineConfiguration getPipelineConfiguration()
getPipelineConfiguration
in interface Receiver
public Configuration getConfiguration()
public void setSystemId(java.lang.String systemId)
setSystemId
in interface javax.xml.transform.Result
setSystemId
in interface Receiver
systemId
- the system ID (effectively the base URI)public java.lang.String getSystemId()
getSystemId
in interface javax.xml.transform.Result
public ContentHandlerProxy.ContentHandlerProxyTraceListener getTraceListener()
public Location getCurrentLocation()
public void setUnparsedEntity(java.lang.String name, java.lang.String systemID, java.lang.String publicID) throws XPathException
setUnparsedEntity
in interface Receiver
name
- The name of the unparsed entitysystemID
- The system identifier of the unparsed entitypublicID
- The public identifier of the unparsed entityXPathException
- if an error occurspublic void setOutputProperties(java.util.Properties details)
details
- the serialization properties. The only values used by this implementation are
SaxonOutputKeys.REQUIRE_WELL_FORMED
and SaxonOutputKeys.UNDECLARE_PREFIXES
.public boolean isRequireWellFormed()
public void setRequireWellFormed(boolean wellFormed)
wellFormed
- set to true if the content handler requires the event stream to represent a well-formed
XML document (containing exactly one top-level element node and no top-level text nodes). Otherwise,
multiple top-level elements and text nodes are allowed, as in the XDM model.public boolean isUndeclareNamespaces()
public void setUndeclareNamespaces(boolean undeclareNamespaces)
undeclareNamespaces
- true if namespace undeclarations (xmlns:p="") are to be outputpublic void open() throws XPathException
open
in interface Receiver
XPathException
- if an error occurspublic void close() throws XPathException
close
in interface Receiver
XPathException
- if an error occurspublic void startDocument(int properties) throws XPathException
startDocument
in interface Receiver
properties
- XPathException
- if an error occurspublic void endDocument() throws XPathException
endDocument
in interface Receiver
XPathException
- if an error occurspublic void startElement(NodeName elemName, SchemaType type, AttributeMap attributes, NamespaceMap namespaces, Location location, int properties) throws XPathException
startElement
in interface Receiver
elemName
- the name of the element.type
- the type annotation of the element.attributes
- the attributes of this elementnamespaces
- the in-scope namespaces of this element: generally this is all the in-scope
namespaces, without relying on inheriting namespaces from parent elementslocation
- an object providing information about the module, line, and column where the node originatedproperties
- bit-significant properties of the element node. If there are no relevant
properties, zero is supplied. The definitions of the bits are in class ReceiverOption
XPathException
- if an error occurspublic void endElement() throws XPathException
endElement
in interface Receiver
XPathException
- if an error occurspublic void characters(java.lang.CharSequence chars, Location locationId, int properties) throws XPathException
characters
in interface Receiver
chars
- The characterslocationId
- provides information such as line number and system ID.properties
- Bit significant value. The following bits are defined:
XPathException
- if an error occursprotected void notifyNotWellFormed() throws XPathException
XPathException
public void processingInstruction(java.lang.String target, java.lang.CharSequence data, Location locationId, int properties) throws XPathException
processingInstruction
in interface Receiver
target
- The PI name. This must be a legal name (it will not be checked).data
- The data portion of the processing instructionlocationId
- provides information such as line number and system ID.properties
- Additional information about the PI.XPathException
- if an error occurspublic void comment(java.lang.CharSequence chars, Location locationId, int properties) throws XPathException
comment
in interface Receiver
chars
- The content of the commentlocationId
- provides information such as line number and system ID.properties
- Additional information about the comment.XPathException
- if an error occurspublic boolean usesTypeAnnotations()
usesTypeAnnotations
in interface Receiver
Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.