Package com.ctc.wstx.dom
Class WstxDOMWrappingWriter
- java.lang.Object
-
- org.codehaus.stax2.ri.dom.DOMWrappingWriter
-
- com.ctc.wstx.dom.WstxDOMWrappingWriter
-
- All Implemented Interfaces:
XMLStreamWriter,TypedXMLStreamWriter,Validatable,XMLStreamWriter2
public class WstxDOMWrappingWriter extends DOMWrappingWriter
This 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 StringERR_NSDECL_WRONG_STATEprotected 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 StringmSuggestedDefNs-
Fields inherited from class org.codehaus.stax2.ri.dom.DOMWrappingWriter
mDocument, mEncoding, mNsAware, mNsContext, mNsRepairing, mValueEncoder
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappendLeaf(Node n)static WstxDOMWrappingWritercreateFrom(WriterConfig cfg, DOMResult dst)protected voidcreateStartElem(String nsURI, String prefix, String localName, boolean isEmpty)Method called by all start element write methods.protected StringfindElemPrefix(String nsURI, DOMOutputElement elem)Method called to find an existing prefix for the given namespace, if any exists in the scope.protected StringfindOrCreateAttrPrefix(String suggPrefix, 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 StringgenerateElemPrefix(String suggPrefix, 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.NamespaceContextgetNamespaceContext()StringgetPrefix(String uri)ObjectgetProperty(String name)booleanisPropertySupported(String name)Method similar toXMLOutputFactory.isPropertySupported(java.lang.String), used to determine whether a property is supported by the Writer instance.protected voidoutputAttribute(String nsURI, String prefix, String localName, String value)voidsetDefaultNamespace(String uri)voidsetPrefix(String prefix, String uri)booleansetProperty(String name, Object value)Method that can be used to set per-writer properties; a subset of properties one can set via matchingXMLOutputFactory2instance.voidwriteAttribute(String localName, String value)voidwriteAttribute(String nsURI, String localName, String value)voidwriteAttribute(String prefix, String nsURI, String localName, String value)voidwriteDefaultNamespace(String nsURI)voidwriteDTD(String rootName, String systemId, String publicId, String internalSubset)voidwriteEmptyElement(String localName)voidwriteEmptyElement(String nsURI, String localName)voidwriteEmptyElement(String prefix, String localName, String nsURI)voidwriteEndDocument()voidwriteEndElement()voidwriteNamespace(String prefix, String nsURI)voidwriteStartElement(String localName)voidwriteStartElement(String nsURI, String localName)voidwriteStartElement(String prefix, String localName, 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 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 String mSuggestedDefNs
-
mAutomaticNsPrefix
protected String mAutomaticNsPrefix
-
-
Method Detail
-
createFrom
public static WstxDOMWrappingWriter createFrom(WriterConfig cfg, DOMResult dst) throws XMLStreamException
- Throws:
XMLStreamException
-
getNamespaceContext
public NamespaceContext getNamespaceContext()
- Specified by:
getNamespaceContextin interfaceXMLStreamWriter- Specified by:
getNamespaceContextin classDOMWrappingWriter
-
getPrefix
public String getPrefix(String uri)
- Specified by:
getPrefixin interfaceXMLStreamWriter- Specified by:
getPrefixin classDOMWrappingWriter
-
getProperty
public Object getProperty(String name)
- Specified by:
getPropertyin interfaceXMLStreamWriter- Specified by:
getPropertyin classDOMWrappingWriter
-
setDefaultNamespace
public void setDefaultNamespace(String uri)
- Specified by:
setDefaultNamespacein interfaceXMLStreamWriter- Specified by:
setDefaultNamespacein classDOMWrappingWriter
-
setPrefix
public void setPrefix(String prefix, String uri) throws XMLStreamException
- Specified by:
setPrefixin interfaceXMLStreamWriter- Specified by:
setPrefixin classDOMWrappingWriter- Throws:
XMLStreamException
-
writeAttribute
public void writeAttribute(String localName, String value) throws XMLStreamException
- Specified by:
writeAttributein interfaceXMLStreamWriter- Specified by:
writeAttributein classDOMWrappingWriter- Throws:
XMLStreamException
-
writeAttribute
public void writeAttribute(String nsURI, String localName, String value) throws XMLStreamException
- Specified by:
writeAttributein interfaceXMLStreamWriter- Specified by:
writeAttributein classDOMWrappingWriter- Throws:
XMLStreamException
-
writeAttribute
public void writeAttribute(String prefix, String nsURI, String localName, String value) throws XMLStreamException
- Specified by:
writeAttributein interfaceXMLStreamWriter- Specified by:
writeAttributein classDOMWrappingWriter- Throws:
XMLStreamException
-
writeDefaultNamespace
public void writeDefaultNamespace(String nsURI)
- Specified by:
writeDefaultNamespacein interfaceXMLStreamWriter- Specified by:
writeDefaultNamespacein classDOMWrappingWriter
-
writeEmptyElement
public void writeEmptyElement(String localName) throws XMLStreamException
- Specified by:
writeEmptyElementin interfaceXMLStreamWriter- Specified by:
writeEmptyElementin classDOMWrappingWriter- Throws:
XMLStreamException
-
writeEmptyElement
public void writeEmptyElement(String nsURI, String localName) throws XMLStreamException
- Specified by:
writeEmptyElementin interfaceXMLStreamWriter- Specified by:
writeEmptyElementin classDOMWrappingWriter- Throws:
XMLStreamException
-
writeEmptyElement
public void writeEmptyElement(String prefix, String localName, String nsURI) throws XMLStreamException
- Specified by:
writeEmptyElementin interfaceXMLStreamWriter- Specified by:
writeEmptyElementin classDOMWrappingWriter- Throws:
XMLStreamException
-
writeEndDocument
public void writeEndDocument()
- Specified by:
writeEndDocumentin interfaceXMLStreamWriter- Specified by:
writeEndDocumentin classDOMWrappingWriter
-
writeEndElement
public void writeEndElement()
-
writeNamespace
public void writeNamespace(String prefix, String nsURI) throws XMLStreamException
- Throws:
XMLStreamException
-
writeStartElement
public void writeStartElement(String localName) throws XMLStreamException
- Throws:
XMLStreamException
-
writeStartElement
public void writeStartElement(String nsURI, String localName) throws XMLStreamException
- Throws:
XMLStreamException
-
writeStartElement
public void writeStartElement(String prefix, String localName, String nsURI) throws XMLStreamException
- Throws:
XMLStreamException
-
isPropertySupported
public boolean isPropertySupported(String name)
Description copied from interface:XMLStreamWriter2Method similar toXMLOutputFactory.isPropertySupported(java.lang.String), used to determine whether a property is supported by the Writer instance. This means that this method may return false for some properties that the output factory does support: specifically, it should only return true if the value is mutable on per-instance basis. False means that either the property is not recognized, or is not mutable via writer instance.- Specified by:
isPropertySupportedin interfaceXMLStreamWriter2- Specified by:
isPropertySupportedin classDOMWrappingWriter
-
setProperty
public boolean setProperty(String name, Object value)
Description copied from interface:XMLStreamWriter2Method that can be used to set per-writer properties; a subset of properties one can set via matchingXMLOutputFactory2instance. Exactly which methods are mutable is implementation specific.- Specified by:
setPropertyin interfaceXMLStreamWriter2- Specified by:
setPropertyin classDOMWrappingWriter- Parameters:
name- Name of the property to setvalue- Value to set property to.- Returns:
- True, if the specified property was succesfully set to specified value; false if its value was not changed
-
writeDTD
public void writeDTD(String rootName, String systemId, String publicId, String internalSubset) throws XMLStreamException
- Specified by:
writeDTDin interfaceXMLStreamWriter2- Specified by:
writeDTDin classDOMWrappingWriter- Throws:
XMLStreamException
-
appendLeaf
protected void appendLeaf(Node n) throws IllegalStateException
- Specified by:
appendLeafin classDOMWrappingWriter- Throws:
IllegalStateException
-
createStartElem
protected void createStartElem(String nsURI, String prefix, String localName, boolean isEmpty) throws XMLStreamException
Method called by all start element write methods.- Parameters:
nsURI- Namespace URI to use: null and empty String denote 'no namespace'- Throws:
XMLStreamException
-
outputAttribute
protected void outputAttribute(String nsURI, String prefix, String localName, String value) throws XMLStreamException
- Throws:
XMLStreamException
-
findElemPrefix
protected final String findElemPrefix(String nsURI, DOMOutputElement elem) throws XMLStreamException
Method 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:
XMLStreamException
-
generateElemPrefix
protected final String generateElemPrefix(String suggPrefix, String nsURI, DOMOutputElement elem) throws XMLStreamException
Method called afterfindElemPrefix(java.lang.String, com.ctc.wstx.dom.DOMOutputElement)has returned null, to create and bind a namespace mapping for specified namespace.- Throws:
XMLStreamException
-
findOrCreateAttrPrefix
protected final String findOrCreateAttrPrefix(String suggPrefix, String nsURI, DOMOutputElement elem) throws XMLStreamException
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. 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:
XMLStreamException
-
-