public class SAXDocumentSerializer extends Encoder implements FastInfosetWriter
Instantiate this serializer to serialize a fast infoset document in accordance with the SAX API.
This utilizes the SAX API in a reverse manner to that of parsing. It is the responsibility of the client to call the appropriate event methods on the SAX handlers, and to ensure that such a sequence of methods calls results in the production well-formed fast infoset documents. The SAXDocumentSerializer performs no well-formed checks.
More than one fast infoset document may be encoded to the
OutputStream
.
Modifier and Type | Field and Description |
---|---|
protected boolean |
_charactersAsCDATA |
protected boolean |
_elementHasNamespaces |
_b, _characterEncodingSchemeSystemDefault, _charBuffer, _markIndex, _octetBuffer, _octetBufferIndex, _s, _terminate, _v, _vData, attributeValueMapTotalCharactersConstraint, CHARACTER_ENCODING_SCHEME_SYSTEM_PROPERTY, characterContentChunkMapTotalCharactersConstraint, maxAttributeValueSize, maxCharacterContentChunkSize, minAttributeValueSize, minCharacterContentChunkSize
ATTRIBUTE_VALUE_MAP_MEMORY_CONSTRAINT, BUFFER_SIZE_PROPERTY, CHARACTER_CONTENT_CHUNK_MAP_MEMORY_CONSTRAINT, EXTERNAL_VOCABULARIES_PROPERTY, IGNORE_COMMENTS_FEATURE, IGNORE_DTD_FEATURE, IGNORE_PROCESSING_INSTRUCTIONS_FEATURE, IGNORE_WHITE_SPACE_TEXT_CONTENT_FEATURE, MAX_ATTRIBUTE_VALUE_SIZE, MAX_CHARACTER_CONTENT_CHUNK_SIZE, MIN_ATTRIBUTE_VALUE_SIZE, MIN_CHARACTER_CONTENT_CHUNK_SIZE, REGISTERED_ENCODING_ALGORITHMS_PROPERTY, UTF_16BE, UTF_8
Modifier | Constructor and Description |
---|---|
|
SAXDocumentSerializer() |
protected |
SAXDocumentSerializer(boolean v) |
Modifier and Type | Method and Description |
---|---|
void |
alphabetCharacters(String alphabet,
char[] ch,
int start,
int length) |
void |
booleans(boolean[] b,
int start,
int length)
Receive notification of character data as an array of boolean.
|
void |
bytes(byte[] b,
int start,
int length)
Receive notification of character data as an array of byte.
|
void |
characters(char[] ch,
int start,
int length) |
void |
characters(char[] ch,
int start,
int length,
boolean index)
Receive notification of character data.
|
void |
comment(char[] ch,
int start,
int length) |
protected int |
countAttributes(Attributes atts) |
void |
dateTimeCharacters(char[] ch,
int start,
int length) |
void |
doubles(double[] d,
int start,
int length)
Receive notification of character data as an array of double.
|
protected boolean |
encodeAttribute(String namespaceURI,
String qName,
String localName) |
protected void |
encodeAttributes(Attributes atts) |
protected void |
encodeElement(String namespaceURI,
String qName,
String localName) |
void |
endCDATA() |
void |
endDocument() |
void |
endDTD() |
void |
endElement(String namespaceURI,
String localName,
String qName) |
void |
endEntity(String name) |
void |
floats(float[] f,
int start,
int length)
Receive notification of character data as an array of float.
|
void |
ignorableWhitespace(char[] ch,
int start,
int length) |
void |
ints(int[] i,
int start,
int length)
Receive notification of character data as an array of int.
|
void |
longs(long[] l,
int start,
int length)
Receive notification of character data as an array of long.
|
void |
numericCharacters(char[] ch,
int start,
int length) |
void |
object(String URI,
int id,
Object data)
Receive notification of encoding algorithm data as an object.
|
void |
octets(String URI,
int id,
byte[] b,
int start,
int length)
Receive notification of encoding algorithm data as an array
of byte.
|
void |
processingInstruction(String target,
String data) |
void |
reset()
Reset the encoder for reuse encoding another XML infoset.
|
void |
setDocumentLocator(Locator locator) |
void |
shorts(short[] s,
int start,
int length)
Receive notification of character data as an array of short.
|
void |
skippedEntity(String name) |
void |
startCDATA() |
void |
startDocument() |
void |
startDTD(String name,
String publicId,
String systemId) |
void |
startElement(String namespaceURI,
String localName,
String qName,
Attributes atts) |
void |
startEntity(String name) |
void |
startPrefixMapping(String prefix,
String uri) |
void |
uuids(long[] msblsb,
int start,
int length)
Receive notification of character data as an two array of UUID.
|
canAddAttributeToTable, canAddCharacterContentToTable, encodeAIIBuiltInAlgorithmData, encodeAIIObjectAlgorithmData, encodeAIIOctetAlgorithmData, encodeAlphabetCharacters, encodeAttributeQualifiedNameOnSecondBit, encodeCharacters, encodeCharactersNoClone, encodeCIIBuiltInAlgorithmData, encodeCIIBuiltInAlgorithmDataAsCDATA, encodeCIIObjectAlgorithmData, encodeCIIOctetAlgorithmData, encodeComment, encodeCommentNoClone, encodeDateTimeFourBitCharacters, encodeDateTimeNonIdentifyingStringOnFirstBit, encodeDocumentTermination, encodeDocumentTypeDeclaration, encodeElementQualifiedNameOnThirdBit, encodeElementTermination, encodeFourBitCharacters, encodeHeader, encodeIdentifyingNonEmptyStringOnFirstBit, encodeInitialVocabulary, encodeLiteralAttributeQualifiedNameOnSecondBit, encodeLiteralElementQualifiedNameOnThirdBit, encodeNamespaceAttribute, encodeNonEmptyCharacterStringOnFifthBit, encodeNonEmptyCharacterStringOnFifthBit, encodeNonEmptyCharacterStringOnSeventhBit, encodeNonEmptyFourBitCharacterString, encodeNonEmptyFourBitCharacterStringOnSeventhBit, encodeNonEmptyNBitCharacterStringOnSeventhBit, encodeNonEmptyOctetStringOnSecondBit, encodeNonEmptyUTF8StringAsOctetString, encodeNonEmptyUTF8StringAsOctetString, encodeNonIdentifyingStringOnFirstBit, encodeNonIdentifyingStringOnFirstBit, encodeNonIdentifyingStringOnFirstBit, encodeNonIdentifyingStringOnFirstBit, encodeNonIdentifyingStringOnFirstBit, encodeNonIdentifyingStringOnThirdBit, encodeNonIdentifyingStringOnThirdBit, encodeNonIdentifyingStringOnThirdBit, encodeNonZeroInteger, encodeNonZeroIntegerOnFourthBit, encodeNonZeroIntegerOnSecondBitFirstBitOne, encodeNonZeroIntegerOnSecondBitFirstBitZero, encodeNonZeroIntegerOnThirdBit, encodeNonZeroOctetStringLength, encodeNonZeroOctetStringLengthOnFifthBit, encodeNonZeroOctetStringLengthOnSecondBit, encodeNonZeroOctetStringLengthOnSenventhBit, encodeNumericFourBitCharacters, encodeNumericNonIdentifyingStringOnFirstBit, encodeProcessingInstruction, encodeTermination, encodeUtf16String, encodeUtf16String, encodeUTF8String, encodeUTF8String, getAttributeValueMapMemoryLimit, getCharacterContentChunkMapMemoryLimit, getCharacterEncodingScheme, getIgnoreComments, getIgnoreDTD, getIgnoreProcesingInstructions, getIgnoreWhiteSpaceTextContent, getMaxAttributeValueSize, getMaxCharacterContentChunkSize, getMinAttributeValueSize, getMinCharacterContentChunkSize, getPrefixFromQualifiedName, getRegisteredEncodingAlgorithms, getVocabularyApplicationData, hasMark, isAttributeValueLengthMatchesLimit, isCharacterContentChunkLengthMatchesLimit, isWhiteSpace, isWhiteSpace, mark, resetMark, setAttributeValueMapMemoryLimit, setCharacterContentChunkMapMemoryLimit, setCharacterEncodingScheme, setExternalVocabulary, setIgnoreComments, setIgnoreDTD, setIgnoreProcesingInstructions, setIgnoreWhiteSpaceTextContent, setMaxAttributeValueSize, setMaxCharacterContentChunkSize, setMinAttributeValueSize, setMinCharacterContentChunkSize, setOutputStream, setRegisteredEncodingAlgorithms, setVocabulary, setVocabularyApplicationData, write, write, write
endPrefixMapping, error, fatalError, notationDecl, resolveEntity, unparsedEntityDecl, warning
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
endPrefixMapping
getAttributeValueMapMemoryLimit, getCharacterContentChunkMapMemoryLimit, getCharacterEncodingScheme, getIgnoreComments, getIgnoreDTD, getIgnoreProcesingInstructions, getIgnoreWhiteSpaceTextContent, getMaxAttributeValueSize, getMaxCharacterContentChunkSize, getMinAttributeValueSize, getMinCharacterContentChunkSize, getRegisteredEncodingAlgorithms, getVocabularyApplicationData, setAttributeValueMapMemoryLimit, setCharacterContentChunkMapMemoryLimit, setCharacterEncodingScheme, setExternalVocabulary, setIgnoreComments, setIgnoreDTD, setIgnoreProcesingInstructions, setIgnoreWhiteSpaceTextContent, setMaxAttributeValueSize, setMaxCharacterContentChunkSize, setMinAttributeValueSize, setMinCharacterContentChunkSize, setOutputStream, setRegisteredEncodingAlgorithms, setVocabularyApplicationData
protected boolean _elementHasNamespaces
protected boolean _charactersAsCDATA
protected SAXDocumentSerializer(boolean v)
public SAXDocumentSerializer()
public void reset()
Encoder
reset
in interface FastInfosetSerializer
reset
in class Encoder
public final void startDocument() throws SAXException
startDocument
in interface ContentHandler
startDocument
in class org.xml.sax.helpers.DefaultHandler
SAXException
public final void endDocument() throws SAXException
endDocument
in interface ContentHandler
endDocument
in class org.xml.sax.helpers.DefaultHandler
SAXException
public void startPrefixMapping(String prefix, String uri) throws SAXException
startPrefixMapping
in interface ContentHandler
startPrefixMapping
in class org.xml.sax.helpers.DefaultHandler
SAXException
public final void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException
startElement
in interface ContentHandler
startElement
in class org.xml.sax.helpers.DefaultHandler
SAXException
public final void endElement(String namespaceURI, String localName, String qName) throws SAXException
endElement
in interface ContentHandler
endElement
in class org.xml.sax.helpers.DefaultHandler
SAXException
public final void characters(char[] ch, int start, int length) throws SAXException
characters
in interface ContentHandler
characters
in class org.xml.sax.helpers.DefaultHandler
SAXException
public final void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
ignorableWhitespace
in interface ContentHandler
ignorableWhitespace
in class org.xml.sax.helpers.DefaultHandler
SAXException
public final void processingInstruction(String target, String data) throws SAXException
processingInstruction
in interface ContentHandler
processingInstruction
in class org.xml.sax.helpers.DefaultHandler
SAXException
public final void setDocumentLocator(Locator locator)
setDocumentLocator
in interface ContentHandler
setDocumentLocator
in class org.xml.sax.helpers.DefaultHandler
public final void skippedEntity(String name) throws SAXException
skippedEntity
in interface ContentHandler
skippedEntity
in class org.xml.sax.helpers.DefaultHandler
SAXException
public final void comment(char[] ch, int start, int length) throws SAXException
comment
in interface LexicalHandler
SAXException
public final void startCDATA() throws SAXException
startCDATA
in interface LexicalHandler
SAXException
public final void endCDATA() throws SAXException
endCDATA
in interface LexicalHandler
SAXException
public final void startDTD(String name, String publicId, String systemId) throws SAXException
startDTD
in interface LexicalHandler
SAXException
public final void endDTD() throws SAXException
endDTD
in interface LexicalHandler
SAXException
public final void startEntity(String name) throws SAXException
startEntity
in interface LexicalHandler
SAXException
public final void endEntity(String name) throws SAXException
endEntity
in interface LexicalHandler
SAXException
public final void octets(String URI, int id, byte[] b, int start, int length) throws SAXException
EncodingAlgorithmContentHandler
The application must not attempt to read from the array outside of the specified range.
Such notifications will occur for a Fast Infoset SAX parser when processing encoding algorithm data.
The Parser will call the method of this interface to report each encoding algorithm data. Parsers MUST return all contiguous characters in a single chunk
Parsers may return all contiguous bytes in a single chunk, or they may split it into several chunks providing that the length of each chunk is of the required length to successfully apply the encoding algorithm to the chunk.
octets
in interface EncodingAlgorithmContentHandler
URI
- the URI of the encoding algorithmid
- the encoding algorithm indexb
- the array of bytestart
- the start position in the arraylength
- the number of byte to read from the arraySAXException
- any SAX exception, possibly
wrapping another exceptionEncodingAlgorithmIndexes
public final void object(String URI, int id, Object data) throws SAXException
EncodingAlgorithmContentHandler
Such notifications will occur for a Fast Infoset SAX parser when processing encoding algorithm data that is converted from an array of byte to an object more suitable for processing.
object
in interface EncodingAlgorithmContentHandler
URI
- the URI of the encoding algorithmid
- the encoding algorithm indexdata
- the encoding algorithm objectSAXException
- any SAX exception, possibly
wrapping another exceptionEncodingAlgorithmIndexes
public final void bytes(byte[] b, int start, int length) throws SAXException
PrimitiveTypeContentHandler
The application must not attempt to read from the array outside of the specified range.
Such notifications will occur for a Fast Infoset SAX parser when processing data encoded using the "base64" encoding algorithm, see subclause 10.3, or the "hexadecimal" encoding algorithm, see subclause 10.2.
Such a notification may occur for binary data that would
normally require base 64 encoding and reported as character data
using the characters
method
.
bytes
in interface PrimitiveTypeContentHandler
b
- the array of bytestart
- the start position in the arraylength
- the number of byte to read from the arraySAXException
- any SAX exception, possibly
wrapping another exceptionpublic final void shorts(short[] s, int start, int length) throws SAXException
PrimitiveTypeContentHandler
The application must not attempt to read from the array outside of the specified range.
Such notifications will occur for a Fast Infoset SAX parser when processing data encoded using the "short" encoding algorithm, see subclause 10.4
.
shorts
in interface PrimitiveTypeContentHandler
s
- the array of shortstart
- the start position in the arraylength
- the number of short to read from the arraySAXException
- any SAX exception, possibly
wrapping another exceptionpublic final void ints(int[] i, int start, int length) throws SAXException
PrimitiveTypeContentHandler
The application must not attempt to read from the array outside of the specified range.
Such notifications will occur for a Fast Infoset SAX parser when processing data encoded using the "int" encoding algorithm, see subclause 10.5
.
ints
in interface PrimitiveTypeContentHandler
i
- the array of intstart
- the start position in the arraylength
- the number of int to read from the arraySAXException
- any SAX exception, possibly
wrapping another exceptionpublic final void longs(long[] l, int start, int length) throws SAXException
PrimitiveTypeContentHandler
The application must not attempt to read from the array outside of the specified range.
Such notifications will occur for a Fast Infoset SAX parser when processing data encoded using the "long" encoding algorithm, see subclause 10.6
.
longs
in interface PrimitiveTypeContentHandler
l
- the array of longstart
- the start position in the arraylength
- the number of long to read from the arraySAXException
- any SAX exception, possibly
wrapping another exceptionpublic final void booleans(boolean[] b, int start, int length) throws SAXException
PrimitiveTypeContentHandler
The application must not attempt to read from the array outside of the specified range.
Such notifications will occur for a Fast Infoset SAX parser when processing data encoded using the "boolean" encoding algorithm, see subclause 10.7
.
booleans
in interface PrimitiveTypeContentHandler
b
- the array of booleanstart
- the start position in the arraylength
- the number of boolean to read from the arraySAXException
- any SAX exception, possibly
wrapping another exceptionpublic final void floats(float[] f, int start, int length) throws SAXException
PrimitiveTypeContentHandler
The application must not attempt to read from the array outside of the specified range.
Such notifications will occur for a Fast Infoset SAX parser when processing data encoded using the "float" encoding algorithm, see subclause 10.8
.
floats
in interface PrimitiveTypeContentHandler
f
- the array of floatstart
- the start position in the arraylength
- the number of float to read from the arraySAXException
- any SAX exception, possibly
wrapping another exceptionpublic final void doubles(double[] d, int start, int length) throws SAXException
PrimitiveTypeContentHandler
The application must not attempt to read from the array outside of the specified range.
Such notifications will occur for a Fast Infoset SAX parser when processing data encoded using the "double" encoding algorithm, see subclause 10.9
.
doubles
in interface PrimitiveTypeContentHandler
d
- the array of doublestart
- the start position in the arraylength
- the number of double to read from the arraySAXException
- any SAX exception, possibly
wrapping another exceptionpublic void uuids(long[] msblsb, int start, int length) throws SAXException
PrimitiveTypeContentHandler
The application must not attempt to read from the array outside of the specified range.
Such notifications will occur for a Fast Infoset SAX parser when processing data encoded using the "uuid" encoding algorithm, see subclause 10.10
.
uuids
in interface PrimitiveTypeContentHandler
msblsb
- the array of long containing pairs of most signficant
bits and least significant bits of the UUIDsstart
- the start position in the arraylength
- the number of long to read from the array. This will
be twice the number of UUIDs, which are pairs of two long valuesSAXException
- any SAX exception, possibly
wrapping another exceptionpublic void numericCharacters(char[] ch, int start, int length) throws SAXException
numericCharacters
in interface RestrictedAlphabetContentHandler
SAXException
public void dateTimeCharacters(char[] ch, int start, int length) throws SAXException
dateTimeCharacters
in interface RestrictedAlphabetContentHandler
SAXException
public void alphabetCharacters(String alphabet, char[] ch, int start, int length) throws SAXException
alphabetCharacters
in interface RestrictedAlphabetContentHandler
SAXException
public void characters(char[] ch, int start, int length, boolean index) throws SAXException
ExtendedContentHandler
characters
in interface ExtendedContentHandler
ch
- the characters from the XML documentstart
- the start position in the arraylength
- the number of characters to read from the arrayindex
- true if the characters are indexed, otherwise false.SAXException
- any SAX exception, possibly
wrapping another exceptionContentHandler.characters(char[], int, int)
protected final int countAttributes(Attributes atts)
protected void encodeAttributes(Attributes atts) throws IOException, FastInfosetException
IOException
FastInfosetException
protected void encodeElement(String namespaceURI, String qName, String localName) throws IOException
IOException
protected boolean encodeAttribute(String namespaceURI, String qName, String localName) throws IOException
IOException
Copyright © 2012 Oracle Corpration. All Rights Reserved.