Package org.jibx.runtime.impl
Class StAXWriter
java.lang.Object
org.jibx.runtime.impl.XMLWriterNamespaceBase
org.jibx.runtime.impl.StAXWriter
- All Implemented Interfaces:
IExtensibleWriter
,IXMLWriter
Writer generating StAX parse event stream output.
- Author:
- Dennis M. Sosnoski
-
Field Summary
FieldsFields inherited from class org.jibx.runtime.impl.XMLWriterNamespaceBase
m_prefixes, m_uris
-
Constructor Summary
ConstructorsConstructorDescriptionStAXWriter
(String[] uris) Constructor.StAXWriter
(String[] uris, XMLStreamWriter wrtr) Constructor with writer supplied.StAXWriter
(StAXWriter base, String[] uris) Copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAttribute
(int index, String name, String value) Add attribute to current open start tag.void
close()
Close document output.void
Close the current open start tag as an empty element.void
Close the current open start tag.createChildWriter
(String[] uris) Create a child writer instance to be used for a separate binding.protected void
defineNamespace
(int index, String prefix) Report to subclass that namespace has been defined.void
Generate end tag.void
flush()
Flush document output.void
indent()
Request output indent.void
init()
Initialize writer.void
setIndentSpaces
(int count, String newline, char indent) Set nesting indentation.void
setWriter
(XMLStreamWriter wrtr) Set StAX writer.void
startTagClosed
(int index, String name) Generate closed start tag.void
startTagNamespaces
(int index, String name, int[] nums, String[] prefs) Generate start tag for element with namespaces.void
startTagOpen
(int index, String name) Generate open start tag.protected void
undefineNamespace
(int index) Report to subclass that namespace has been undefined.void
writeCData
(String text) Write CDATA text to document.void
writeComment
(String text) Write comment to document.void
writeDocType
(String name, String sys, String pub, String subset) Write DOCTYPE declaration to document.void
writeEntityRef
(String name) Write entity reference to document.void
Write processing instruction to document.void
writeTextContent
(String text) Write ordinary character data text content to document.void
writeXMLDecl
(String version, String encoding, String standalone) Write XML declaration to document.Methods inherited from class org.jibx.runtime.impl.XMLWriterNamespaceBase
decrementNesting, getExtensionNamespaces, getNamespaceCount, getNamespacePrefix, getNamespaces, getNamespaceUri, getNestingDepth, getPrefixIndex, growArray, incrementNesting, internalNamespacePrefix, internalNamespaceUri, internalSetUris, openNamespaces, popExtensionNamespaces, popTranslationTable, pushExtensionNamespaces, pushTranslationTable, reset, shrinkArray, translateNamespace
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.jibx.runtime.IXMLWriter
getExtensionNamespaces, getNamespaceCount, getNamespacePrefix, getNamespaces, getNamespaceUri, getNestingDepth, getPrefixIndex, openNamespaces, popExtensionNamespaces, popTranslationTable, pushExtensionNamespaces, pushTranslationTable, reset
-
Field Details
-
m_writer
Target for parse event stream.
-
-
Constructor Details
-
StAXWriter
Constructor.- Parameters:
uris
- ordered array of URIs for namespaces used in document (must be constant; the value in position 0 must always be the empty string "", and the value in position 1 must always be the XML namespace "http://www.w3.org/XML/1998/namespace")
-
StAXWriter
Constructor with writer supplied.- Parameters:
uris
- ordered array of URIs for namespaces used in document (must be constant; the value in position 0 must always be the empty string "", and the value in position 1 must always be the XML namespace "http://www.w3.org/XML/1998/namespace")wrtr
- StAX writer for parse event output
-
StAXWriter
Copy constructor. This initializes the writer and extension namespace information from an existing instance.- Parameters:
base
- existing instanceuris
- ordered array of URIs for namespaces used in document
-
-
Method Details
-
init
public void init()Initialize writer.- Specified by:
init
in interfaceIXMLWriter
-
setWriter
Set StAX writer.- Parameters:
wrtr
- StAX writer for parse event output
-
defineNamespace
Description copied from class:XMLWriterNamespaceBase
Report to subclass that namespace has been defined.- Specified by:
defineNamespace
in classXMLWriterNamespaceBase
- Parameters:
index
- post-translation namespace URI index numberprefix
- prefix used for namespace- Throws:
IOException
- if error writing to document
-
undefineNamespace
protected void undefineNamespace(int index) Description copied from class:XMLWriterNamespaceBase
Report to subclass that namespace has been undefined.- Specified by:
undefineNamespace
in classXMLWriterNamespaceBase
- Parameters:
index
- post-translation namespace URI index number
-
setIndentSpaces
Description copied from interface:IXMLWriter
Set nesting indentation. This is advisory only, and implementations of this interface are free to ignore it. The intent is to indicate that the generated output should use indenting to illustrate element nesting.- Specified by:
setIndentSpaces
in interfaceIXMLWriter
- Parameters:
count
- number of character to indent per level, or disable indentation if negative (zero means new line only)newline
- sequence of characters used for a line ending (null
means use the single character '\n')indent
- whitespace character used for indentation
-
writeXMLDecl
Description copied from interface:IXMLWriter
Write XML declaration to document. This can only be called before any other methods in the interface are called.- Specified by:
writeXMLDecl
in interfaceIXMLWriter
- Parameters:
version
- XML version textencoding
- text for encoding attribute (unspecified ifnull
)standalone
- text for standalone attribute (unspecified ifnull
)- Throws:
IOException
- on error writing to document
-
startTagOpen
Description copied from interface:IXMLWriter
Generate open start tag. This allows attributes and/or namespace declarations to be added to the start tag, but must be followed by aIXMLWriter.closeStartTag()
call.- Specified by:
startTagOpen
in interfaceIXMLWriter
- Parameters:
index
- namespace URI index numbername
- unqualified element name- Throws:
IOException
- on error writing to document
-
startTagNamespaces
public void startTagNamespaces(int index, String name, int[] nums, String[] prefs) throws IOException Description copied from interface:IXMLWriter
Generate start tag for element with namespaces. This creates the actual start tag, along with any necessary namespace declarations. Previously active namespace declarations are not duplicated. The tag is left incomplete, allowing other attributes to be added.- Specified by:
startTagNamespaces
in interfaceIXMLWriter
- Parameters:
index
- namespace URI index numbername
- element namenums
- array of namespace indexes defined by this element (must be constant, reference is kept until end of element)prefs
- array of namespace prefixes mapped by this element (nonull
values, use "" for default namespace declaration)- Throws:
IOException
- on error writing to document
-
addAttribute
Description copied from interface:IXMLWriter
Add attribute to current open start tag. This is only valid after a call toIXMLWriter.startTagOpen(int, java.lang.String)
and before the corresponding call toIXMLWriter.closeStartTag()
.- Specified by:
addAttribute
in interfaceIXMLWriter
- Parameters:
index
- namespace URI index numbername
- unqualified attribute namevalue
- text value for attribute- Throws:
IOException
- on error writing to document
-
closeStartTag
Description copied from interface:IXMLWriter
Close the current open start tag. This is only valid after a call toIXMLWriter.startTagOpen(int, java.lang.String)
.- Specified by:
closeStartTag
in interfaceIXMLWriter
- Throws:
IOException
- on error writing to document
-
closeEmptyTag
Description copied from interface:IXMLWriter
Close the current open start tag as an empty element. This is only valid after a call toIXMLWriter.startTagOpen(int, java.lang.String)
.- Specified by:
closeEmptyTag
in interfaceIXMLWriter
- Throws:
IOException
- on error writing to document
-
startTagClosed
Description copied from interface:IXMLWriter
Generate closed start tag. No attributes or namespaces can be added to a start tag written using this call.- Specified by:
startTagClosed
in interfaceIXMLWriter
- Parameters:
index
- namespace URI index numbername
- unqualified element name- Throws:
IOException
- on error writing to document
-
endTag
Description copied from interface:IXMLWriter
Generate end tag.- Specified by:
endTag
in interfaceIXMLWriter
- Parameters:
index
- namespace URI index numbername
- unqualified element name- Throws:
IOException
- on error writing to document
-
writeTextContent
Description copied from interface:IXMLWriter
Write ordinary character data text content to document.- Specified by:
writeTextContent
in interfaceIXMLWriter
- Parameters:
text
- content value text (must not benull
)- Throws:
IOException
- on error writing to document
-
writeCData
Description copied from interface:IXMLWriter
Write CDATA text to document.- Specified by:
writeCData
in interfaceIXMLWriter
- Parameters:
text
- content value text (must not benull
)- Throws:
IOException
- on error writing to document
-
writeComment
Description copied from interface:IXMLWriter
Write comment to document.- Specified by:
writeComment
in interfaceIXMLWriter
- Parameters:
text
- comment text (must not benull
)- Throws:
IOException
- on error writing to document
-
writeEntityRef
Description copied from interface:IXMLWriter
Write entity reference to document.- Specified by:
writeEntityRef
in interfaceIXMLWriter
- Parameters:
name
- entity name (must not benull
)- Throws:
IOException
- on error writing to document
-
writeDocType
Description copied from interface:IXMLWriter
Write DOCTYPE declaration to document.- Specified by:
writeDocType
in interfaceIXMLWriter
- Parameters:
name
- root element namesys
- system ID (null
if none, must be non-null
for public ID to be used)pub
- public ID (null
if none)subset
- internal subset (null
if none)- Throws:
IOException
- on error writing to document
-
writePI
Description copied from interface:IXMLWriter
Write processing instruction to document.- Specified by:
writePI
in interfaceIXMLWriter
- Parameters:
target
- processing instruction target name (must not benull
)data
- processing instruction data (must not benull
)- Throws:
IOException
- on error writing to document
-
indent
Description copied from interface:IXMLWriter
Request output indent. The writer implementation should normally indent output as appropriate. This method can be used to request indenting of output that might otherwise not be indented. The normal effect when used with a text-oriented writer should be to output the appropriate line end sequence followed by the appropriate number of indent characters for the current nesting level.- Specified by:
indent
in interfaceIXMLWriter
- Throws:
IOException
- on error writing to document
-
flush
Description copied from interface:IXMLWriter
Flush document output. Writes any buffered data to the output medium. This does not flush the output medium itself, only any internal buffering within the writer.- Specified by:
flush
in interfaceIXMLWriter
- Throws:
IOException
- on error writing to document
-
close
Description copied from interface:IXMLWriter
Close document output. Completes writing of document output, including flushing and closing the output medium.- Specified by:
close
in interfaceIXMLWriter
- Throws:
IOException
- on error writing to document
-
createChildWriter
Create a child writer instance to be used for a separate binding. The child writer inherits the output handling from this writer, while using the supplied namespace URIs.- Specified by:
createChildWriter
in interfaceIExtensibleWriter
- Parameters:
uris
- ordered array of URIs for namespaces used in document (seeStAXWriter(String[])
)- Returns:
- child writer
-