Package com.fasterxml.aalto.dom
Class DOMWriterImpl
- java.lang.Object
-
- org.codehaus.stax2.ri.dom.DOMWrappingWriter
-
- com.fasterxml.aalto.dom.DOMWriterImpl
-
- All Implemented Interfaces:
javax.xml.stream.XMLStreamWriter,org.codehaus.stax2.typed.TypedXMLStreamWriter,org.codehaus.stax2.validation.Validatable,org.codehaus.stax2.XMLStreamWriter2
public final class DOMWriterImpl extends org.codehaus.stax2.ri.dom.DOMWrappingWriterThis is an adapter class that allows building a DOM tree usingXMLStreamWriterinterface.Note that the implementation is only to be used for use with
javax.xml.transform.dom.DOMResult.Some notes regarding missing/incomplete functionality:
- Namespace-repairing mode not implemented
- Validation functionality not implemented
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String_automaticNsPrefixprotected int[]_autoNsSeqfor NsRepairing modeprotected WriterConfig_configprotected DOMOutputElement_currElemThis element is the current context element, under which all other nodes are added, until matching end element is output.protected DOMOutputElement_openElementThis element is non-null right after a call to eitherwriteStartElementandwriteEmptyElement, 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>_suggestedPrefixesMap that contains URI-to-prefix entries that point out suggested prefixes for URIs.
-
Constructor Summary
Constructors Modifier Constructor Description privateDOMWriterImpl(WriterConfig cfg, org.w3c.dom.Node treeRoot)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappendLeaf(org.w3c.dom.Node n)static DOMWriterImplcreateFrom(WriterConfig cfg, javax.xml.transform.dom.DOMResult dst)protected voidcreateStartElem(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.StringfindElemPrefix(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.StringfindOrCreateAttrPrefix(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.StringgenerateElemPrefix(java.lang.String suggPrefix, java.lang.String nsURI, DOMOutputElement elem)Method called afterfindElemPrefix(java.lang.String, com.fasterxml.aalto.dom.DOMOutputElement)has returned null, to create and bind a namespace mapping for specified namespace.javax.xml.namespace.NamespaceContextgetNamespaceContext()java.lang.StringgetPrefix(java.lang.String uri)java.lang.ObjectgetProperty(java.lang.String name)booleanisPropertySupported(java.lang.String name)protected voidoutputAttribute(java.lang.String nsURI, java.lang.String prefix, java.lang.String localName, java.lang.String value)voidsetDefaultNamespace(java.lang.String uri)voidsetPrefix(java.lang.String prefix, java.lang.String uri)booleansetProperty(java.lang.String name, java.lang.Object value)private java.lang.StringvalidateElemPrefix(java.lang.String prefix, java.lang.String nsURI, DOMOutputElement elem)voidwriteAttribute(java.lang.String localName, java.lang.String value)voidwriteAttribute(java.lang.String nsURI, java.lang.String localName, java.lang.String value)voidwriteAttribute(java.lang.String prefix, java.lang.String nsURI, java.lang.String localName, java.lang.String value)voidwriteDefaultNamespace(java.lang.String nsURI)voidwriteDTD(java.lang.String rootName, java.lang.String systemId, java.lang.String publicId, java.lang.String internalSubset)voidwriteEmptyElement(java.lang.String localName)voidwriteEmptyElement(java.lang.String nsURI, java.lang.String localName)voidwriteEmptyElement(java.lang.String prefix, java.lang.String localName, java.lang.String nsURI)voidwriteEndDocument()voidwriteEndElement()voidwriteNamespace(java.lang.String prefix, java.lang.String nsURI)voidwriteStartElement(java.lang.String localName)voidwriteStartElement(java.lang.String nsURI, java.lang.String localName)voidwriteStartElement(java.lang.String prefix, java.lang.String localName, java.lang.String nsURI)-
Methods inherited from class org.codehaus.stax2.ri.dom.DOMWrappingWriter
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
-
-
-
-
Field Detail
-
_config
protected final WriterConfig _config
-
_currElem
protected DOMOutputElement _currElem
This element is the current context element, under which all other nodes are added, until matching end element is output. Null outside of the main element tree.Note: explicit empty element (written using
writeEmptyElement) will never become current element.
-
_openElement
protected DOMOutputElement _openElement
This element is non-null right after a call to eitherwriteStartElementandwriteEmptyElement, 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 usingwriteEmptyElement) 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.
-
_autoNsSeq
protected int[] _autoNsSeq
for NsRepairing mode
-
_suggestedDefNs
protected java.lang.String _suggestedDefNs
-
_automaticNsPrefix
protected java.lang.String _automaticNsPrefix
-
_suggestedPrefixes
java.util.HashMap<java.lang.String,java.lang.String> _suggestedPrefixes
Map that contains URI-to-prefix entries that point out suggested prefixes for URIs. These are populated by calls tosetPrefix(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.
-
-
Constructor Detail
-
DOMWriterImpl
private DOMWriterImpl(WriterConfig cfg, org.w3c.dom.Node treeRoot) throws javax.xml.stream.XMLStreamException
- Throws:
javax.xml.stream.XMLStreamException
-
-
Method Detail
-
createFrom
public static DOMWriterImpl createFrom(WriterConfig cfg, javax.xml.transform.dom.DOMResult dst) throws javax.xml.stream.XMLStreamException
- Throws:
javax.xml.stream.XMLStreamException
-
getNamespaceContext
public javax.xml.namespace.NamespaceContext getNamespaceContext()
- Specified by:
getNamespaceContextin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
getNamespaceContextin classorg.codehaus.stax2.ri.dom.DOMWrappingWriter
-
getPrefix
public java.lang.String getPrefix(java.lang.String uri)
- Specified by:
getPrefixin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
getPrefixin classorg.codehaus.stax2.ri.dom.DOMWrappingWriter
-
getProperty
public java.lang.Object getProperty(java.lang.String name)
- Specified by:
getPropertyin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
getPropertyin classorg.codehaus.stax2.ri.dom.DOMWrappingWriter
-
setDefaultNamespace
public void setDefaultNamespace(java.lang.String uri)
- Specified by:
setDefaultNamespacein interfacejavax.xml.stream.XMLStreamWriter- Specified by:
setDefaultNamespacein classorg.codehaus.stax2.ri.dom.DOMWrappingWriter
-
setPrefix
public void setPrefix(java.lang.String prefix, java.lang.String uri) throws javax.xml.stream.XMLStreamException- Specified by:
setPrefixin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
setPrefixin classorg.codehaus.stax2.ri.dom.DOMWrappingWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeAttribute
public void writeAttribute(java.lang.String localName, java.lang.String value) throws javax.xml.stream.XMLStreamException- Specified by:
writeAttributein interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeAttributein classorg.codehaus.stax2.ri.dom.DOMWrappingWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeAttribute
public void writeAttribute(java.lang.String nsURI, java.lang.String localName, java.lang.String value) throws javax.xml.stream.XMLStreamException- Specified by:
writeAttributein interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeAttributein classorg.codehaus.stax2.ri.dom.DOMWrappingWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeAttribute
public void writeAttribute(java.lang.String prefix, java.lang.String nsURI, java.lang.String localName, java.lang.String value) throws javax.xml.stream.XMLStreamException- Specified by:
writeAttributein interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeAttributein classorg.codehaus.stax2.ri.dom.DOMWrappingWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeDefaultNamespace
public void writeDefaultNamespace(java.lang.String nsURI)
- Specified by:
writeDefaultNamespacein interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeDefaultNamespacein classorg.codehaus.stax2.ri.dom.DOMWrappingWriter
-
writeEmptyElement
public void writeEmptyElement(java.lang.String localName) throws javax.xml.stream.XMLStreamException- Specified by:
writeEmptyElementin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeEmptyElementin classorg.codehaus.stax2.ri.dom.DOMWrappingWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeEmptyElement
public void writeEmptyElement(java.lang.String nsURI, java.lang.String localName) throws javax.xml.stream.XMLStreamException- Specified by:
writeEmptyElementin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeEmptyElementin classorg.codehaus.stax2.ri.dom.DOMWrappingWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeEmptyElement
public void writeEmptyElement(java.lang.String prefix, java.lang.String localName, java.lang.String nsURI) throws javax.xml.stream.XMLStreamException- Specified by:
writeEmptyElementin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeEmptyElementin classorg.codehaus.stax2.ri.dom.DOMWrappingWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeEndDocument
public void writeEndDocument()
- Specified by:
writeEndDocumentin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeEndDocumentin classorg.codehaus.stax2.ri.dom.DOMWrappingWriter
-
writeEndElement
public void writeEndElement()
-
writeNamespace
public void writeNamespace(java.lang.String prefix, java.lang.String nsURI) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
writeStartElement
public void writeStartElement(java.lang.String localName) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
writeStartElement
public void writeStartElement(java.lang.String nsURI, java.lang.String localName) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
writeStartElement
public void writeStartElement(java.lang.String prefix, java.lang.String localName, java.lang.String nsURI) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
isPropertySupported
public boolean isPropertySupported(java.lang.String name)
- Specified by:
isPropertySupportedin interfaceorg.codehaus.stax2.XMLStreamWriter2- Specified by:
isPropertySupportedin classorg.codehaus.stax2.ri.dom.DOMWrappingWriter
-
setProperty
public boolean setProperty(java.lang.String name, java.lang.Object value)- Specified by:
setPropertyin interfaceorg.codehaus.stax2.XMLStreamWriter2- Specified by:
setPropertyin classorg.codehaus.stax2.ri.dom.DOMWrappingWriter
-
writeDTD
public void writeDTD(java.lang.String rootName, java.lang.String systemId, java.lang.String publicId, java.lang.String internalSubset) throws javax.xml.stream.XMLStreamException- Specified by:
writeDTDin interfaceorg.codehaus.stax2.XMLStreamWriter2- Specified by:
writeDTDin classorg.codehaus.stax2.ri.dom.DOMWrappingWriter- Throws:
javax.xml.stream.XMLStreamException
-
appendLeaf
protected void appendLeaf(org.w3c.dom.Node n) throws java.lang.IllegalStateException- Specified by:
appendLeafin classorg.codehaus.stax2.ri.dom.DOMWrappingWriter- Throws:
java.lang.IllegalStateException
-
createStartElem
protected void createStartElem(java.lang.String nsURI, java.lang.String prefix, java.lang.String localName, boolean isEmpty) throws javax.xml.stream.XMLStreamExceptionMethod called by all start element write methods.- Parameters:
nsURI- Namespace URI to use: null and empty String denote 'no namespace'- Throws:
javax.xml.stream.XMLStreamException
-
outputAttribute
protected void outputAttribute(java.lang.String nsURI, java.lang.String prefix, java.lang.String localName, java.lang.String value) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
validateElemPrefix
private final java.lang.String validateElemPrefix(java.lang.String prefix, java.lang.String nsURI, DOMOutputElement elem) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
findElemPrefix
protected final java.lang.String findElemPrefix(java.lang.String nsURI, DOMOutputElement elem) throws javax.xml.stream.XMLStreamExceptionMethod called to find an existing prefix for the given namespace, if any exists in the scope. If one is found, it's returned (including "" for the current default namespace); if not, null is returned.- Parameters:
nsURI- URI of namespace for which we need a prefix- Throws:
javax.xml.stream.XMLStreamException
-
generateElemPrefix
protected final java.lang.String generateElemPrefix(java.lang.String suggPrefix, java.lang.String nsURI, DOMOutputElement elem) throws javax.xml.stream.XMLStreamExceptionMethod called afterfindElemPrefix(java.lang.String, com.fasterxml.aalto.dom.DOMOutputElement)has returned null, to create and bind a namespace mapping for specified namespace.- Throws:
javax.xml.stream.XMLStreamException
-
findOrCreateAttrPrefix
protected final java.lang.String findOrCreateAttrPrefix(java.lang.String suggPrefix, java.lang.String nsURI, DOMOutputElement elem) throws javax.xml.stream.XMLStreamExceptionMethod 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. If a new mapping needs to be generated, it will also be automatically bound, and necessary namespace declaration output.- Parameters:
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.- Throws:
javax.xml.stream.XMLStreamException
-
-