Package com.ctc.wstx.dom
Class WstxDOMWrappingWriter
- java.lang.Object
-
- org.codehaus.stax2.ri.dom.DOMWrappingWriter
-
- com.ctc.wstx.dom.WstxDOMWrappingWriter
-
- All Implemented Interfaces:
javax.xml.stream.XMLStreamWriter,org.codehaus.stax2.typed.TypedXMLStreamWriter,org.codehaus.stax2.validation.Validatable,org.codehaus.stax2.XMLStreamWriter2
public class WstxDOMWrappingWriter 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:
- Validation functionality not implemented
- Author:
- Tatu Saloranta, Dan Diephouse
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.StringERR_NSDECL_WRONG_STATEprotected java.lang.StringmAutomaticNsPrefixprotected int[]mAutoNsSeqfor NsRepairing modeprotected WriterConfigmConfigprotected DOMOutputElementmCurrElemThis element is the current context element, under which all other nodes are added, until matching end element is output.protected DOMOutputElementmOpenElementThis element is non-null right after a call to eitherwriteStartElementandwriteEmptyElement, and can be used to add attributes and namespace declarations.protected java.lang.StringmSuggestedDefNs(package private) java.util.HashMap<java.lang.String,java.lang.String>mSuggestedPrefixesMap that contains URI-to-prefix entries that point out suggested prefixes for URIs.
-
Constructor Summary
Constructors Modifier Constructor Description privateWstxDOMWrappingWriter(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 WstxDOMWrappingWritercreateFrom(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.ctc.wstx.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
-
ERR_NSDECL_WRONG_STATE
protected static final java.lang.String ERR_NSDECL_WRONG_STATE
- See Also:
- Constant Field Values
-
mConfig
protected final WriterConfig mConfig
-
mCurrElem
protected DOMOutputElement mCurrElem
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.
-
mOpenElement
protected DOMOutputElement mOpenElement
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
mCurrElem, 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.
-
mAutoNsSeq
protected int[] mAutoNsSeq
for NsRepairing mode
-
mSuggestedDefNs
protected java.lang.String mSuggestedDefNs
-
mAutomaticNsPrefix
protected java.lang.String mAutomaticNsPrefix
-
mSuggestedPrefixes
java.util.HashMap<java.lang.String,java.lang.String> mSuggestedPrefixes
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
-
WstxDOMWrappingWriter
private WstxDOMWrappingWriter(WriterConfig cfg, org.w3c.dom.Node treeRoot) throws javax.xml.stream.XMLStreamException
- Throws:
javax.xml.stream.XMLStreamException
-
-
Method Detail
-
createFrom
public static WstxDOMWrappingWriter 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.ctc.wstx.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
-
-