## org.jibx.runtime
Interface IXMLWriter

All Known Implementing Classes:
  GenericXMLWriter, ISO88591StreamWriter, JDOMWriter, StAXWriter, StreamWriterBase, UTF8StreamWriter, XMLWriterBase, XMLWriterNamespaceBase

    public interface IXMLWriter

XML writer interface used for output of marshalled document. This interface allows easy substitution of different output formats, including parse event stream equivalents. This makes heavy use of state information, so each method call defined is only valid in certain states.

Author:
  Dennis M. Sosnoski

Method Summary
`void` `addAttribute(int index, java.lang.String name, java.lang.String value)` Add attribute to current open start tag.
`void` `close()` Close document output.
`void` `closeEmptyTag()` Close the current open start tag as an empty element.
`void` `closeStartTag()` Close the current open start tag.
`void` `endTag(int index, java.lang.String name)` Generate end tag.
`void` `flush()` Flush document output.
`java.lang.String[][]` `getExtensionNamespaces()` Get extension namespace URIs added to those in mapping.
`int` `getNamespaceCount()` Get the number of namespaces currently defined.
`java.lang.String` `getNamespacePrefix(int index)` Get current prefix defined for namespace.
`java.lang.String[]` `getNamespaces()` Get namespace URIs for mapping.
`java.lang.String` `getNamespaceUri(int index)` Get URI for namespace.
`int` `getNestingDepth()` Get the current element nesting depth.
`int` `getPrefixIndex(java.lang.String prefix)` Get index of namespace mapped to prefix.
`void` `indent()` Request output indent.
`int[]` `openNamespaces(int[] nums, java.lang.String[] prefs)` Open the specified namespaces for use.
`void` `popExtensionNamespaces()` Remove extension namespace URIs.
`void` `pushExtensionNamespaces(java.lang.String[] uris)` Append extension namespace URIs to those in mapping.
`void` `reset()` Reset to initial state for reuse.
`void` `setIndentSpaces(int count, java.lang.String newline, char indent)` Set nesting indentation.
`void` `startTagClosed(int index, java.lang.String name)` Generate closed start tag.
`void` `startTagNamespaces(int index, java.lang.String name, int[] nums, java.lang.String[] prefs)` Generate start tag for element with namespaces.
`void` `startTagOpen(int index, java.lang.String name)` Generate open start tag.
`void` `writeCData(java.lang.String text)` Write CDATA text to document.
`void` `writeComment(java.lang.String text)` Write comment to document.
`void` `writeDocType(java.lang.String name, java.lang.String sys, java.lang.String pub, java.lang.String subset)` Write DOCTYPE declaration to document.
`void` `writeEntityRef(java.lang.String name)` Write entity reference to document.
`void` `writePI(java.lang.String target, java.lang.String data)` Write processing instruction to document.
`void` `writeTextContent(java.lang.String text)` Write ordinary character data text content to document.
`void` `writeXMLDecl(java.lang.String version, java.lang.String encoding, java.lang.String standalone)` Write XML declaration to document.

Method Detail

### getNestingDepth

    int getNestingDepth()

  Get the current element nesting depth. Elements are only counted in the depth returned when they're officially open - after the start tag has been output and before the end tag has been output.

  Returns:
    number of nested elements at current point in output

### getNamespaceCount

    int getNamespaceCount()

  Get the number of namespaces currently defined. This is equivalent to the index of the next extension namespace added.

  Returns:
    namespace count

### setIndentSpaces

    void setIndentSpaces(int count,
                         java.lang.String newline,
                         char indent)

  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.

  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

    void writeXMLDecl(java.lang.String version,
                      java.lang.String encoding,
                      java.lang.String standalone)
                      throws java.io.IOException

  Write XML declaration to document. This can only be called before any other methods in the interface are called.

  Parameters:
    `version` - XML version text
    `encoding` - text for encoding attribute (unspecified if `null`)
    `standalone` - text for standalone attribute (unspecified if `null`)
  Throws:
    `java.io.IOException` - on error writing to document

### startTagOpen

    void startTagOpen(int index,
                      java.lang.String name)
                      throws java.io.IOException

  Generate open start tag. This allows attributes and/or namespace declarations to be added to the start tag, but must be followed by a `closeStartTag()` call.

  Parameters:
    `index` - namespace URI index number
    `name` - unqualified element name
  Throws:
    `java.io.IOException` - on error writing to document

### startTagNamespaces

    void startTagNamespaces(int index,
                            java.lang.String name,
                            int[] nums,
                            java.lang.String[] prefs)
                            throws java.io.IOException

  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.

  Parameters:
    `index` - namespace URI index number
    `name` - element name
    `nums` - 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 (no `null` values, use "" for default namespace declaration)
  Throws:
    `java.io.IOException` - on error writing to document

### addAttribute

    void addAttribute(int index,
                      java.lang.String name,
                      java.lang.String value)
                      throws java.io.IOException

  Add attribute to current open start tag. This is only valid after a call to `startTagOpen(int, java.lang.String)` and before the corresponding call to `closeStartTag()`.

  Parameters:
    `index` - namespace URI index number
    `name` - unqualified attribute name
    `value` - text value for attribute
  Throws:
    `java.io.IOException` - on error writing to document

### closeStartTag

    void closeStartTag()
                       throws java.io.IOException

  Close the current open start tag. This is only valid after a call to `startTagOpen(int, java.lang.String)`.

  Throws:
    `java.io.IOException` - on error writing to document

### closeEmptyTag

    void closeEmptyTag()
                       throws java.io.IOException

  Close the current open start tag as an empty element. This is only valid after a call to `startTagOpen(int, java.lang.String)`.

  Throws:
    `java.io.IOException` - on error writing to document

### startTagClosed

    void startTagClosed(int index,
                        java.lang.String name)
                        throws java.io.IOException

  Generate closed start tag. No attributes or namespaces can be added to a start tag written using this call.

  Parameters:
    `index` - namespace URI index number
    `name` - unqualified element name
  Throws:
    `java.io.IOException` - on error writing to document

### endTag

    void endTag(int index,
                java.lang.String name)
                throws java.io.IOException

  Generate end tag.

  Parameters:
    `index` - namespace URI index number
    `name` - unqualified element name
  Throws:
    `java.io.IOException` - on error writing to document

### writeTextContent

    void writeTextContent(java.lang.String text)
                          throws java.io.IOException

  Write ordinary character data text content to document.

  Parameters:
    `text` - content value text (must not be `null`)
  Throws:
    `java.io.IOException` - on error writing to document

### writeCData

    void writeCData(java.lang.String text)
                    throws java.io.IOException

  Write CDATA text to document.

  Parameters:
    `text` - content value text (must not be `null`)
  Throws:
    `java.io.IOException` - on error writing to document

### writeComment

    void writeComment(java.lang.String text)
                      throws java.io.IOException

  Write comment to document.

  Parameters:
    `text` - comment text (must not be `null`)
  Throws:
    `java.io.IOException` - on error writing to document

### writeEntityRef

    void writeEntityRef(java.lang.String name)
                        throws java.io.IOException

  Write entity reference to document.

  Parameters:
    `name` - entity name (must not be `null`)
  Throws:
    `java.io.IOException` - on error writing to document

### writeDocType

    void writeDocType(java.lang.String name,
                      java.lang.String sys,
                      java.lang.String pub,
                      java.lang.String subset)
                      throws java.io.IOException

  Write DOCTYPE declaration to document.

  Parameters:
    `name` - root element name
    `sys` - 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:
    `java.io.IOException` - on error writing to document

### writePI

    void writePI(java.lang.String target,
                 java.lang.String data)
                 throws java.io.IOException

  Write processing instruction to document.

  Parameters:
    `target` - processing instruction target name (must not be `null`)
    `data` - processing instruction data (must not be `null`)
  Throws:
    `java.io.IOException` - on error writing to document

### indent

    void indent()
                throws java.io.IOException

  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.

  Throws:
    `java.io.IOException` - on error writing to document

### flush

    void flush()
               throws java.io.IOException

  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.

  Throws:
    `java.io.IOException` - on error writing to document

### close

    void close()
               throws java.io.IOException

  Close document output. Completes writing of document output, including flushing and closing the output medium.

  Throws:
    `java.io.IOException` - on error writing to document

### reset

    void reset()

  Reset to initial state for reuse. The context is serially reusable, as long as this method is called to clear any retained state information between uses. It is automatically called when output is set.

### getNamespaces

    java.lang.String[] getNamespaces()

  Get namespace URIs for mapping. This gets the full ordered array of namespaces known in the binding used for this marshalling, where the index number of each namespace URI is the namespace index used to lookup the prefix when marshalling a name in that namespace. The returned array must not be modified.

  Returns:
    array of namespaces

### getNamespaceUri

    java.lang.String getNamespaceUri(int index)

  Get URI for namespace.

  Parameters:
    `index` - namespace URI index number
  Returns:
    namespace URI text, or `null` if the namespace index is invalid

### getNamespacePrefix

    java.lang.String getNamespacePrefix(int index)

  Get current prefix defined for namespace.

  Parameters:
    `index` - namespace URI index number
  Returns:
    current prefix text, or `null` if the namespace is not currently mapped

### getPrefixIndex

    int getPrefixIndex(java.lang.String prefix)

  Get index of namespace mapped to prefix. This can be an expensive operation with time proportional to the number of namespaces defined, so it should be used with care.

  Parameters:
    `prefix` - text to match (non-`null`, use "" for default prefix)
  Returns:
    index namespace URI index number mapped to prefix

### pushExtensionNamespaces

    void pushExtensionNamespaces(java.lang.String[] uris)

  Append extension namespace URIs to those in mapping.

  Parameters:
    `uris` - namespace URIs to extend those in mapping

### popExtensionNamespaces

    void popExtensionNamespaces()

  Remove extension namespace URIs. This removes the last set of extension namespaces pushed using `pushExtensionNamespaces(java.lang.String[])`.

### getExtensionNamespaces

    java.lang.String[][] getExtensionNamespaces()

  Get extension namespace URIs added to those in mapping. This gets the current set of extension definitions. The returned arrays must not be modified.

  Returns:
    array of arrays of extension namespaces (`null` if none)

### openNamespaces

    int[] openNamespaces(int[] nums,
                         java.lang.String[] prefs)
                         throws java.io.IOException

  Open the specified namespaces for use. This method is normally only called internally, when namespace declarations are actually written to output. It is exposed as part of this interface to allow for special circumstances where namespaces are being written outside the usual processing. The namespaces will remain open for use until the current element is closed.

  Parameters:
    `nums` - array of namespace indexes defined by this element (must be constant, reference is kept until namespaces are closed)
    `prefs` - array of namespace prefixes mapped by this element (no `null` values, use "" for default namespace declaration)
  Returns:
    array of indexes for namespaces not previously active (the ones actually needing to be declared, in the case of text output)
  Throws:
    `java.io.IOException` - on error writing to document

Project Web Site |