public final class DOMWriterImpl
extends org.codehaus.stax2.ri.dom.DOMWrappingWriter
XMLStreamWriter
interface.
Note that the implementation is only to be used for use with
javax.xml.transform.dom.DOMResult
.
Some notes regarding missing/incomplete functionality:
Modifier and Type | Field and Description |
---|---|
protected java.lang.String |
_automaticNsPrefix |
protected int[] |
_autoNsSeq
for NsRepairing mode
|
protected WriterConfig |
_config |
protected DOMOutputElement |
_currElem
This element is the current context element, under which
all other nodes are added, until matching end element
is output.
|
protected DOMOutputElement |
_openElement
This element is non-null right after a call to
either
writeStartElement and
writeEmptyElement , and can be used to
add attributes and namespace declarations. |
protected java.lang.String |
_suggestedDefNs |
(package private) java.util.HashMap<java.lang.String,java.lang.String> |
_suggestedPrefixes
Map that contains URI-to-prefix entries that point out suggested
prefixes for URIs.
|
Modifier | Constructor and Description |
---|---|
private |
DOMWriterImpl(WriterConfig cfg,
org.w3c.dom.Node treeRoot) |
Modifier and Type | Method and Description |
---|---|
protected void |
appendLeaf(org.w3c.dom.Node n) |
static DOMWriterImpl |
createFrom(WriterConfig cfg,
javax.xml.transform.dom.DOMResult dst) |
protected void |
createStartElem(java.lang.String nsURI,
java.lang.String prefix,
java.lang.String localName,
boolean isEmpty)
Method called by all start element write methods.
|
protected java.lang.String |
findElemPrefix(java.lang.String nsURI,
DOMOutputElement elem)
Method called to find an existing prefix for the given namespace,
if any exists in the scope.
|
protected java.lang.String |
findOrCreateAttrPrefix(java.lang.String suggPrefix,
java.lang.String nsURI,
DOMOutputElement elem)
Method called to somehow find a prefix for given namespace, to be
used for a new start element; either use an existing one, or
generate a new one.
|
protected java.lang.String |
generateElemPrefix(java.lang.String suggPrefix,
java.lang.String nsURI,
DOMOutputElement elem)
Method called after
findElemPrefix(java.lang.String, com.fasterxml.aalto.dom.DOMOutputElement) has returned null,
to create and bind a namespace mapping for specified namespace. |
javax.xml.namespace.NamespaceContext |
getNamespaceContext() |
java.lang.String |
getPrefix(java.lang.String uri) |
java.lang.Object |
getProperty(java.lang.String name) |
boolean |
isPropertySupported(java.lang.String name) |
protected void |
outputAttribute(java.lang.String nsURI,
java.lang.String prefix,
java.lang.String localName,
java.lang.String value) |
void |
setDefaultNamespace(java.lang.String uri) |
void |
setPrefix(java.lang.String prefix,
java.lang.String uri) |
boolean |
setProperty(java.lang.String name,
java.lang.Object value) |
private java.lang.String |
validateElemPrefix(java.lang.String prefix,
java.lang.String nsURI,
DOMOutputElement elem) |
void |
writeAttribute(java.lang.String localName,
java.lang.String value) |
void |
writeAttribute(java.lang.String nsURI,
java.lang.String localName,
java.lang.String value) |
void |
writeAttribute(java.lang.String prefix,
java.lang.String nsURI,
java.lang.String localName,
java.lang.String value) |
void |
writeDefaultNamespace(java.lang.String nsURI) |
void |
writeDTD(java.lang.String rootName,
java.lang.String systemId,
java.lang.String publicId,
java.lang.String internalSubset) |
void |
writeEmptyElement(java.lang.String localName) |
void |
writeEmptyElement(java.lang.String nsURI,
java.lang.String localName) |
void |
writeEmptyElement(java.lang.String prefix,
java.lang.String localName,
java.lang.String nsURI) |
void |
writeEndDocument() |
void |
writeEndElement() |
void |
writeNamespace(java.lang.String prefix,
java.lang.String nsURI) |
void |
writeStartElement(java.lang.String localName) |
void |
writeStartElement(java.lang.String nsURI,
java.lang.String localName) |
void |
writeStartElement(java.lang.String prefix,
java.lang.String localName,
java.lang.String nsURI) |
close, closeCompletely, copyEventFromReader, flush, getEncoding, getLocation, getValueEncoder, reportUnsupported, serializeQNameValue, setNamespaceContext, setValidationProblemHandler, stopValidatingAgainst, stopValidatingAgainst, throwOutputError, throwOutputError, validateAgainst, writeBinary, writeBinary, writeBinaryAttribute, writeBinaryAttribute, writeBoolean, writeBooleanAttribute, writeCData, writeCData, writeCharacters, writeCharacters, writeComment, writeDecimal, writeDecimalAttribute, writeDouble, writeDoubleArray, writeDoubleArrayAttribute, writeDoubleAttribute, writeDTD, writeEntityRef, writeFloat, writeFloatArray, writeFloatArrayAttribute, writeFloatAttribute, writeFullEndElement, writeInt, writeIntArray, writeIntArrayAttribute, writeIntAttribute, writeInteger, writeIntegerAttribute, writeLong, writeLongArray, writeLongArrayAttribute, writeLongAttribute, writeProcessingInstruction, writeProcessingInstruction, writeQName, writeQNameAttribute, writeRaw, writeRaw, writeRaw, writeSpace, writeSpace, writeStartDocument, writeStartDocument, writeStartDocument, writeStartDocument
protected final WriterConfig _config
protected DOMOutputElement _currElem
Note: explicit empty element (written using
writeEmptyElement
) will never become
current element.
protected DOMOutputElement _openElement
writeStartElement
and
writeEmptyElement
, and can be used to
add attributes and namespace declarations.
Note: while this is often the same as _currElem
,
it's not always. Specifically, an empty element (written
explicitly using writeEmptyElement
) will
become open element but NOT current element. Conversely,
regular elements will remain current element when
non elements are written (text, comments, PI), but
not the open element.
protected int[] _autoNsSeq
protected java.lang.String _suggestedDefNs
protected java.lang.String _automaticNsPrefix
java.util.HashMap<java.lang.String,java.lang.String> _suggestedPrefixes
setPrefix(java.lang.String, java.lang.String)
, and they are only used as hints for binding;
if there are conflicts, repairing writer can just use some other
prefix.private DOMWriterImpl(WriterConfig cfg, org.w3c.dom.Node treeRoot) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public static DOMWriterImpl createFrom(WriterConfig cfg, javax.xml.transform.dom.DOMResult dst) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public javax.xml.namespace.NamespaceContext getNamespaceContext()
getNamespaceContext
in interface javax.xml.stream.XMLStreamWriter
getNamespaceContext
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
public java.lang.String getPrefix(java.lang.String uri)
getPrefix
in interface javax.xml.stream.XMLStreamWriter
getPrefix
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
public java.lang.Object getProperty(java.lang.String name)
getProperty
in interface javax.xml.stream.XMLStreamWriter
getProperty
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
public void setDefaultNamespace(java.lang.String uri)
setDefaultNamespace
in interface javax.xml.stream.XMLStreamWriter
setDefaultNamespace
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
public void setPrefix(java.lang.String prefix, java.lang.String uri) throws javax.xml.stream.XMLStreamException
setPrefix
in interface javax.xml.stream.XMLStreamWriter
setPrefix
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
javax.xml.stream.XMLStreamException
public void writeAttribute(java.lang.String localName, java.lang.String value) throws javax.xml.stream.XMLStreamException
writeAttribute
in interface javax.xml.stream.XMLStreamWriter
writeAttribute
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
javax.xml.stream.XMLStreamException
public void writeAttribute(java.lang.String nsURI, java.lang.String localName, java.lang.String value) throws javax.xml.stream.XMLStreamException
writeAttribute
in interface javax.xml.stream.XMLStreamWriter
writeAttribute
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
javax.xml.stream.XMLStreamException
public void writeAttribute(java.lang.String prefix, java.lang.String nsURI, java.lang.String localName, java.lang.String value) throws javax.xml.stream.XMLStreamException
writeAttribute
in interface javax.xml.stream.XMLStreamWriter
writeAttribute
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
javax.xml.stream.XMLStreamException
public void writeDefaultNamespace(java.lang.String nsURI)
writeDefaultNamespace
in interface javax.xml.stream.XMLStreamWriter
writeDefaultNamespace
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
public void writeEmptyElement(java.lang.String localName) throws javax.xml.stream.XMLStreamException
writeEmptyElement
in interface javax.xml.stream.XMLStreamWriter
writeEmptyElement
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
javax.xml.stream.XMLStreamException
public void writeEmptyElement(java.lang.String nsURI, java.lang.String localName) throws javax.xml.stream.XMLStreamException
writeEmptyElement
in interface javax.xml.stream.XMLStreamWriter
writeEmptyElement
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
javax.xml.stream.XMLStreamException
public void writeEmptyElement(java.lang.String prefix, java.lang.String localName, java.lang.String nsURI) throws javax.xml.stream.XMLStreamException
writeEmptyElement
in interface javax.xml.stream.XMLStreamWriter
writeEmptyElement
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
javax.xml.stream.XMLStreamException
public void writeEndDocument()
writeEndDocument
in interface javax.xml.stream.XMLStreamWriter
writeEndDocument
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
public void writeEndElement()
public void writeNamespace(java.lang.String prefix, java.lang.String nsURI) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public void writeStartElement(java.lang.String localName) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public void writeStartElement(java.lang.String nsURI, java.lang.String localName) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public void writeStartElement(java.lang.String prefix, java.lang.String localName, java.lang.String nsURI) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public boolean isPropertySupported(java.lang.String name)
isPropertySupported
in interface org.codehaus.stax2.XMLStreamWriter2
isPropertySupported
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
public boolean setProperty(java.lang.String name, java.lang.Object value)
setProperty
in interface org.codehaus.stax2.XMLStreamWriter2
setProperty
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
public void writeDTD(java.lang.String rootName, java.lang.String systemId, java.lang.String publicId, java.lang.String internalSubset) throws javax.xml.stream.XMLStreamException
writeDTD
in interface org.codehaus.stax2.XMLStreamWriter2
writeDTD
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
javax.xml.stream.XMLStreamException
protected void appendLeaf(org.w3c.dom.Node n) throws java.lang.IllegalStateException
appendLeaf
in class org.codehaus.stax2.ri.dom.DOMWrappingWriter
java.lang.IllegalStateException
protected void createStartElem(java.lang.String nsURI, java.lang.String prefix, java.lang.String localName, boolean isEmpty) throws javax.xml.stream.XMLStreamException
nsURI
- Namespace URI to use: null and empty String denote 'no namespace'javax.xml.stream.XMLStreamException
protected void outputAttribute(java.lang.String nsURI, java.lang.String prefix, java.lang.String localName, java.lang.String value) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
private final java.lang.String validateElemPrefix(java.lang.String prefix, java.lang.String nsURI, DOMOutputElement elem) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
protected final java.lang.String findElemPrefix(java.lang.String nsURI, DOMOutputElement elem) throws javax.xml.stream.XMLStreamException
nsURI
- URI of namespace for which we need a prefixjavax.xml.stream.XMLStreamException
protected final java.lang.String generateElemPrefix(java.lang.String suggPrefix, java.lang.String nsURI, DOMOutputElement elem) throws javax.xml.stream.XMLStreamException
findElemPrefix(java.lang.String, com.fasterxml.aalto.dom.DOMOutputElement)
has returned null,
to create and bind a namespace mapping for specified namespace.javax.xml.stream.XMLStreamException
protected final java.lang.String findOrCreateAttrPrefix(java.lang.String suggPrefix, java.lang.String nsURI, DOMOutputElement elem) throws javax.xml.stream.XMLStreamException
suggPrefix
- Suggested prefix to bind, if any; may be null
to indicate "no preference"nsURI
- URI of namespace for which we need a prefixelem
- Currently open start element, on which the attribute
will be added.javax.xml.stream.XMLStreamException