|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.ctc.wstx.dom.DOMWrappingWriter
This is an adapter class that allows building a DOM tree using
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:
| Field Summary | |
protected static java.lang.String |
ERR_NSDECL_WRONG_STATE
|
protected java.lang.String |
mAutomaticNsPrefix
|
protected int[] |
mAutoNsSeq
for NsRepairing mode |
protected WriterConfig |
mConfig
|
protected DOMOutputElement |
mCurrElem
This element is the current context element, under which all other nodes are added, until matching end element is output. |
protected org.w3c.dom.Document |
mDocument
We need a reference to the document hosting nodes to be able to create new nodes |
protected java.lang.String |
mEncoding
This member variable is to keep information about encoding that seems to be used for the document (or fragment) to output, if known. |
protected boolean |
mNsAware
|
protected javax.xml.namespace.NamespaceContext |
mNsContext
If we are being given info about existing bindings, it'll come as a NamespaceContet. |
protected boolean |
mNsRepairing
|
protected DOMOutputElement |
mOpenElement
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 |
mSuggestedDefNs
|
protected static java.lang.String |
sPrefixXml
|
protected static java.lang.String |
sPrefixXmlns
|
| Method Summary | |
protected void |
appendLeaf(org.w3c.dom.Node n)
|
void |
close()
|
void |
copyEventFromReader(XMLStreamReader2 r,
boolean preserveEventData)
Method that essentially copies event that the specified reader has just read. |
static DOMWrappingWriter |
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)
|
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. |
void |
flush()
|
protected java.lang.String |
generateElemPrefix(java.lang.String suggPrefix,
java.lang.String nsURI,
DOMOutputElement elem)
Method called after findElemPrefix(java.lang.String, com.ctc.wstx.dom.DOMOutputElement) has returned null,
to create and bind a namespace mapping for specified namespace. |
java.lang.String |
getEncoding()
Method that can be called to get information about encoding that this writer is using (or at least claims is using). |
XMLStreamLocation2 |
getLocation()
Method that should return current output location, if the writer keeps track of it; null if it does not. |
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)
Method similar to XMLOutputFactory.isPropertySupported(java.lang.String), used
to determine whether a property is supported by the Writer
instance. |
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 |
setNamespaceContext(javax.xml.namespace.NamespaceContext context)
|
void |
setPrefix(java.lang.String prefix,
java.lang.String uri)
|
boolean |
setProperty(java.lang.String name,
java.lang.Object value)
Method that can be used to set per-writer properties; a subset of properties one can set via matching XMLOutputFactory2
instance. |
ValidationProblemHandler |
setValidationProblemHandler(ValidationProblemHandler h)
Method that application can call to define a custom handler for validation problems encountered during validation process. |
XMLValidator |
stopValidatingAgainst(XMLValidationSchema schema)
Method that can be called by application to stop validating output against a schema, for which validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema)
was called earlier. |
XMLValidator |
stopValidatingAgainst(XMLValidator validator)
Method that can be called by application to stop validating output using specified validator. |
protected static void |
throwOutputError(java.lang.String msg)
|
protected static void |
throwOutputError(java.lang.String format,
java.lang.Object arg)
|
XMLValidator |
validateAgainst(XMLValidationSchema schema)
Method that will construct a XMLValidator instance from the
given schema (unless a validator for that schema has already been
added),
initialize it if necessary, and make validatable object (reader,
writer)
call appropriate validation methods from this point on until the
end of the document (that is, it's not scoped with sub-trees), or until
validator is removed by an explicit call to
stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidationSchema). |
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 |
writeCData(char[] text,
int start,
int len)
|
void |
writeCData(java.lang.String data)
|
void |
writeCharacters(char[] text,
int start,
int len)
|
void |
writeCharacters(java.lang.String text)
|
void |
writeComment(java.lang.String data)
|
void |
writeDefaultNamespace(java.lang.String nsURI)
|
void |
writeDTD(java.lang.String dtd)
|
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 |
writeEntityRef(java.lang.String name)
|
void |
writeFullEndElement()
Method similar to writeEndElement(), but that will always
write the full end element, instead of empty element. |
void |
writeNamespace(java.lang.String prefix,
java.lang.String nsURI)
|
void |
writeProcessingInstruction(java.lang.String target)
|
void |
writeProcessingInstruction(java.lang.String target,
java.lang.String data)
|
void |
writeRaw(char[] text,
int offset,
int length)
Method that writes specified content as is, without encoding or deciphering it in any way. |
void |
writeRaw(java.lang.String text)
Method that writes specified content as is, without encoding or deciphering it in any way. |
void |
writeRaw(java.lang.String text,
int start,
int offset)
|
void |
writeSpace(char[] text,
int start,
int len)
Method that can be called to write whitespace-only content. |
void |
writeSpace(java.lang.String text)
Method that can be called to write whitespace-only content. |
void |
writeStartDocument()
|
void |
writeStartDocument(java.lang.String version)
|
void |
writeStartDocument(java.lang.String encoding,
java.lang.String version)
|
void |
writeStartDocument(java.lang.String version,
java.lang.String encoding,
boolean standAlone)
|
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)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected static final java.lang.String sPrefixXml
protected static final java.lang.String sPrefixXmlns
protected static final java.lang.String ERR_NSDECL_WRONG_STATE
protected final WriterConfig mConfig
protected final boolean mNsAware
protected final boolean mNsRepairing
protected java.lang.String mEncoding
protected javax.xml.namespace.NamespaceContext mNsContext
protected final org.w3c.dom.Document mDocument
protected DOMOutputElement mCurrElem
Note: explicit empty element (written using
writeEmptyElement) will never become
current element.
protected DOMOutputElement mOpenElement
writeStartElement and
writeEmptyElement, 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 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[] mAutoNsSeq
protected java.lang.String mSuggestedDefNs
protected java.lang.String mAutomaticNsPrefix
| Method Detail |
public static DOMWrappingWriter createFrom(WriterConfig cfg,
javax.xml.transform.dom.DOMResult dst)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamExceptionpublic void close()
close in interface javax.xml.stream.XMLStreamWriterpublic void flush()
flush in interface javax.xml.stream.XMLStreamWriterpublic javax.xml.namespace.NamespaceContext getNamespaceContext()
getNamespaceContext in interface javax.xml.stream.XMLStreamWriterpublic java.lang.String getPrefix(java.lang.String uri)
getPrefix in interface javax.xml.stream.XMLStreamWriterpublic java.lang.Object getProperty(java.lang.String name)
getProperty in interface javax.xml.stream.XMLStreamWriterpublic void setDefaultNamespace(java.lang.String uri)
setDefaultNamespace in interface javax.xml.stream.XMLStreamWriterpublic void setNamespaceContext(javax.xml.namespace.NamespaceContext context)
setNamespaceContext in interface javax.xml.stream.XMLStreamWriter
public void setPrefix(java.lang.String prefix,
java.lang.String uri)
throws javax.xml.stream.XMLStreamException
setPrefix in interface javax.xml.stream.XMLStreamWriterjavax.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.XMLStreamWriterjavax.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.XMLStreamWriterjavax.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.XMLStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void writeCData(java.lang.String data)
writeCData in interface javax.xml.stream.XMLStreamWriter
public void writeCharacters(char[] text,
int start,
int len)
writeCharacters in interface javax.xml.stream.XMLStreamWriterpublic void writeCharacters(java.lang.String text)
writeCharacters in interface javax.xml.stream.XMLStreamWriterpublic void writeComment(java.lang.String data)
writeComment in interface javax.xml.stream.XMLStreamWriterpublic void writeDefaultNamespace(java.lang.String nsURI)
writeDefaultNamespace in interface javax.xml.stream.XMLStreamWriterpublic void writeDTD(java.lang.String dtd)
writeDTD in interface javax.xml.stream.XMLStreamWriter
public void writeEmptyElement(java.lang.String localName)
throws javax.xml.stream.XMLStreamException
writeEmptyElement in interface javax.xml.stream.XMLStreamWriterjavax.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.XMLStreamWriterjavax.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.XMLStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void writeEndDocument()
writeEndDocument in interface javax.xml.stream.XMLStreamWriterpublic void writeEndElement()
writeEndElement in interface javax.xml.stream.XMLStreamWriterpublic void writeEntityRef(java.lang.String name)
writeEntityRef in interface javax.xml.stream.XMLStreamWriter
public void writeNamespace(java.lang.String prefix,
java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
writeNamespace in interface javax.xml.stream.XMLStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void writeProcessingInstruction(java.lang.String target)
writeProcessingInstruction in interface javax.xml.stream.XMLStreamWriter
public void writeProcessingInstruction(java.lang.String target,
java.lang.String data)
writeProcessingInstruction in interface javax.xml.stream.XMLStreamWriter
public void writeSpace(char[] text,
int start,
int len)
XMLStreamWriter2This method is useful for things like outputting indentation.
writeSpace in interface XMLStreamWriter2public void writeSpace(java.lang.String text)
XMLStreamWriter2This method is useful for things like outputting indentation.
writeSpace in interface XMLStreamWriter2public void writeStartDocument()
writeStartDocument in interface javax.xml.stream.XMLStreamWriterpublic void writeStartDocument(java.lang.String version)
writeStartDocument in interface javax.xml.stream.XMLStreamWriter
public void writeStartDocument(java.lang.String encoding,
java.lang.String version)
writeStartDocument in interface javax.xml.stream.XMLStreamWriter
public void writeStartElement(java.lang.String localName)
throws javax.xml.stream.XMLStreamException
writeStartElement in interface javax.xml.stream.XMLStreamWriterjavax.xml.stream.XMLStreamException
public void writeStartElement(java.lang.String nsURI,
java.lang.String localName)
throws javax.xml.stream.XMLStreamException
writeStartElement in interface javax.xml.stream.XMLStreamWriterjavax.xml.stream.XMLStreamException
public void writeStartElement(java.lang.String prefix,
java.lang.String localName,
java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
writeStartElement in interface javax.xml.stream.XMLStreamWriterjavax.xml.stream.XMLStreamExceptionpublic boolean isPropertySupported(java.lang.String name)
XMLStreamWriter2XMLOutputFactory.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.
isPropertySupported in interface XMLStreamWriter2
public boolean setProperty(java.lang.String name,
java.lang.Object value)
XMLStreamWriter2XMLOutputFactory2
instance. Exactly which methods are mutable is implementation
specific.
setProperty in interface XMLStreamWriter2name - Name of the property to setvalue - Value to set property to.
public XMLValidator validateAgainst(XMLValidationSchema schema)
throws javax.xml.stream.XMLStreamException
ValidatableXMLValidator instance from the
given schema (unless a validator for that schema has already been
added),
initialize it if necessary, and make validatable object (reader,
writer)
call appropriate validation methods from this point on until the
end of the document (that is, it's not scoped with sub-trees), or until
validator is removed by an explicit call to
Validatable.stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidationSchema).
Note that while this method can be called at any point in output processing, validator instances are not required to be able to handle addition at other points than right before outputting the root element.
validateAgainst in interface Validatablejavax.xml.stream.XMLStreamException
public XMLValidator stopValidatingAgainst(XMLValidationSchema schema)
throws javax.xml.stream.XMLStreamException
ValidatableValidatable.validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema)
was called earlier.
stopValidatingAgainst in interface Validatablejavax.xml.stream.XMLStreamException
public XMLValidator stopValidatingAgainst(XMLValidator validator)
throws javax.xml.stream.XMLStreamException
ValidatableValidatable.validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema).
Note: the specified validator is compared for identity with validators in use, not for equality.
stopValidatingAgainst in interface Validatablevalidator)
if it was being used for validating current document; null if not.
javax.xml.stream.XMLStreamExceptionpublic ValidationProblemHandler setValidationProblemHandler(ValidationProblemHandler h)
Validatable
setValidationProblemHandler in interface Validatableh - Handler to install, if non null; if null, indicates that
the default (implementation-specific) handling should be used
public XMLStreamLocation2 getLocation()
XMLStreamWriter2
getLocation in interface XMLStreamWriter2public java.lang.String getEncoding()
XMLStreamWriter2XMLOutputFactory
writeStartDocument method (explicitly
or implicity; latter in cases where defaults are imposed
by Stax specification)
getEncoding in interface XMLStreamWriter2
public void writeCData(char[] text,
int start,
int len)
throws javax.xml.stream.XMLStreamException
writeCData in interface XMLStreamWriter2javax.xml.stream.XMLStreamException
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 XMLStreamWriter2javax.xml.stream.XMLStreamException
public void writeFullEndElement()
throws javax.xml.stream.XMLStreamException
XMLStreamWriter2XMLStreamWriter.writeEndElement(), but that will always
write the full end element, instead of empty element. This only
matters for cases where the element itself has no content, and
if writer is allowed to write empty elements when it encounters
such start/end element write pairs.
writeFullEndElement in interface XMLStreamWriter2javax.xml.stream.XMLStreamException
public void writeStartDocument(java.lang.String version,
java.lang.String encoding,
boolean standAlone)
throws javax.xml.stream.XMLStreamException
writeStartDocument in interface XMLStreamWriter2javax.xml.stream.XMLStreamException
public void writeRaw(java.lang.String text)
throws javax.xml.stream.XMLStreamException
XMLStreamWriter2Method is usually used when encapsulating output from another writer as a sub-tree, or when passing through XML fragments.
writeRaw in interface XMLStreamWriter2javax.xml.stream.XMLStreamException
public void writeRaw(java.lang.String text,
int start,
int offset)
throws javax.xml.stream.XMLStreamException
writeRaw in interface XMLStreamWriter2javax.xml.stream.XMLStreamException
public void writeRaw(char[] text,
int offset,
int length)
throws javax.xml.stream.XMLStreamException
XMLStreamWriter2Method is usually used when encapsulating output from another writer as a sub-tree, or when passing through XML fragments.
writeRaw in interface XMLStreamWriter2javax.xml.stream.XMLStreamException
public void copyEventFromReader(XMLStreamReader2 r,
boolean preserveEventData)
throws javax.xml.stream.XMLStreamException
XMLStreamWriter2
copyEventFromReader in interface XMLStreamWriter2r - Reader to use for accessing event to copypreserveEventData - If true, writer is not allowed to change
the state of the reader (so that all the data associated with the
current event has to be preserved); if false, writer is allowed
to use methods that may cause some data to be discarded. Setting
this to false may improve the performance, since it may allow
full no-copy streaming of data, especially textual contents.
javax.xml.stream.XMLStreamException
protected void appendLeaf(org.w3c.dom.Node n)
throws java.lang.IllegalStateException
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
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
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 prefix
javax.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.ctc.wstx.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
protected static void throwOutputError(java.lang.String msg)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
protected static void throwOutputError(java.lang.String format,
java.lang.Object arg)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||