public abstract class BaseNsStreamWriter extends TypedStreamWriter
| Modifier and Type | Field and Description |
|---|---|
protected static java.lang.String |
ERR_NSDECL_WRONG_STATE |
protected boolean |
mAutomaticNS
True, if writer needs to automatically output namespace declarations
(we are in repairing mode)
|
(package private) static int |
MAX_POOL_SIZE
Although pooled objects are small, let's limit the pool size
nonetheless, to optimize memory usage for deeply nested
documents.
|
protected SimpleOutputElement |
mCurrElem |
protected EmptyElementHandler |
mEmptyElementHandler |
protected SimpleOutputElement |
mOutputElemPool |
protected int |
mPoolSize |
protected javax.xml.namespace.NamespaceContext |
mRootNsContext
Optional "root" namespace context that application can set.
|
protected static java.lang.String |
sPrefixXml |
protected static java.lang.String |
sPrefixXmlns |
mValueEncoderFactoryATTR_MIN_ARRAYCOPY, CHAR_SPACE, DEFAULT_COPYBUFFER_LEN, mAnyOutput, mCfgAutomaticEmptyElems, mCfgCDataAsText, mCfgCopyDefaultAttrs, mCheckAttrs, mCheckStructure, mConfig, mCopyBuffer, mDtdRootElem, mEmptyElement, mEncoding, MIN_ARRAYCOPY, mReturnNullForDefaultNamespace, mStartElementOpen, mState, mValidator, mVldContent, mVldProbHandler, mWriter, mXml11, STATE_EPILOG, STATE_PROLOG, STATE_TREECFG_ADD_SPACE_AFTER_EMPTY_ELEM, CFG_AUTO_CLOSE_OUTPUT, CFG_AUTOMATIC_EMPTY_ELEMENTS, CFG_AUTOMATIC_END_ELEMENTS, CFG_AUTOMATIC_NS, CFG_COPY_DEFAULT_ATTRS, CFG_ENABLE_NS, CFG_ESCAPE_CR, CFG_FIX_CONTENT, CFG_OUTPUT_CDATA_AS_TEXT, CFG_USE_DOUBLE_QUOTES_IN_XML_DECL, CFG_VALIDATE_ATTR, CFG_VALIDATE_CONTENT, CFG_VALIDATE_NAMES, CFG_VALIDATE_STRUCTURE| Constructor and Description |
|---|
BaseNsStreamWriter(XmlWriter xw,
java.lang.String enc,
WriterConfig cfg,
boolean repairing) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
checkStartElement(java.lang.String localName,
java.lang.String prefix)
Method that is called to ensure that we can start writing an
element, both from structural point of view, and from syntactic
(close previously open start element, if any).
|
protected void |
closeStartElement(boolean emptyElem)
Method called to close an open start element, when another
main-level element (not namespace declaration or attribute)
is being output; except for end element which is handled differently.
|
abstract void |
doSetPrefix(java.lang.String prefix,
java.lang.String uri) |
protected void |
doWriteAttr(java.lang.String localName,
java.lang.String nsURI,
java.lang.String prefix,
char[] buf,
int start,
int len) |
protected void |
doWriteAttr(java.lang.String localName,
java.lang.String nsURI,
java.lang.String prefix,
java.lang.String value) |
protected void |
doWriteDefaultNs(java.lang.String nsURI) |
protected void |
doWriteEndTag(javax.xml.namespace.QName expName,
boolean allowEmpty) |
protected void |
doWriteNamespace(java.lang.String prefix,
java.lang.String nsURI) |
protected void |
doWriteStartTag(java.lang.String localName) |
protected void |
doWriteStartTag(java.lang.String prefix,
java.lang.String localName) |
javax.xml.namespace.QName |
getCurrentElementName() |
javax.xml.namespace.NamespaceContext |
getNamespaceContext() |
java.lang.String |
getNamespaceURI(java.lang.String prefix) |
java.lang.String |
getPrefix(java.lang.String uri) |
protected java.lang.String |
getTopElementDesc()
Method needed for error message generation
|
abstract void |
setDefaultNamespace(java.lang.String uri) |
void |
setNamespaceContext(javax.xml.namespace.NamespaceContext ctxt)
Note: Root namespace context works best if automatic prefix
creation ("namespace/prefix repairing" in StAX lingo) is enabled.
|
void |
setPrefix(java.lang.String prefix,
java.lang.String uri) |
void |
writeAttribute(java.lang.String localName,
java.lang.String value)
It's assumed calling this method implies caller just wants to add
an attribute that does not belong to any namespace; as such no
namespace checking or prefix generation is needed.
|
abstract void |
writeAttribute(java.lang.String nsURI,
java.lang.String localName,
java.lang.String value) |
abstract void |
writeAttribute(java.lang.String prefix,
java.lang.String nsURI,
java.lang.String localName,
java.lang.String value) |
abstract void |
writeDefaultNamespace(java.lang.String nsURI) |
void |
writeEmptyElement(java.lang.String localName)
Note: It is assumed caller just wants the element to belong to whatever
is the current default namespace.
|
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 |
writeEndElement() |
void |
writeEndElement(javax.xml.namespace.QName name)
Method called by
XMLEventWriter implementation
(instead of the version
that takes no argument), so that we can verify it does match the
start element, if necessary |
void |
writeFullEndElement()
Similar to
writeEndElement(), but never allows implicit
creation of empty elements. |
abstract void |
writeNamespace(java.lang.String prefix,
java.lang.String nsURI) |
abstract void |
writeStartElement(javax.xml.stream.events.StartElement elem)
Convenience method needed by
XMLEventWriter
implementation, to use when
writing a start element, and possibly its attributes and namespace
declarations. |
void |
writeStartElement(java.lang.String localName)
This method is assumed to just use default namespace (if any),
and no further checks should be done.
|
void |
writeStartElement(java.lang.String nsURI,
java.lang.String localName) |
void |
writeStartElement(java.lang.String prefix,
java.lang.String localName,
java.lang.String nsURI) |
protected abstract void |
writeStartOrEmpty(java.lang.String localName,
java.lang.String nsURI) |
protected abstract void |
writeStartOrEmpty(java.lang.String prefix,
java.lang.String localName,
java.lang.String nsURI) |
protected void |
writeTypedAttribute(java.lang.String prefix,
java.lang.String nsURI,
java.lang.String localName,
org.codehaus.stax2.ri.typed.AsciiValueEncoder enc)
Method that will write attribute with value that is known not to
require additional escaping.
|
valueEncoderFactory, writeBinary, writeBinary, writeBinaryAttribute, writeBinaryAttribute, writeBoolean, writeBooleanAttribute, writeDecimal, writeDecimalAttribute, writeDouble, writeDoubleArray, writeDoubleArrayAttribute, writeDoubleAttribute, writeFloat, writeFloatArray, writeFloatArrayAttribute, writeFloatAttribute, writeInt, writeIntArray, writeIntArrayAttribute, writeIntAttribute, writeInteger, writeIntegerAttribute, writeLong, writeLongArray, writeLongArrayAttribute, writeLongAttribute, writeQName, writeQNameAttribute, writeTypedElementaddDefaultAttribute, close, closeCompletely, copyEventFromReader, copyStartElement, doReportProblem, doReportProblem, doWriteStartDocument, findAttributeIndex, flush, getAttributeCount, getAttributeLocalName, getAttributeNamespace, getAttributePrefix, getAttributeType, getAttributeValue, getAttributeValue, getBaseUri, getCopyBuffer, getCopyBuffer, getEncoding, getLocation, getProperty, getValidationLocation, getXmlVersion, inPrologOrEpilog, isNotationDeclared, isPropertySupported, isUnparsedEntityDeclared, isValidating, reportIllegalArg, reportIllegalMethod, reportInvalidContent, reportNwfAttr, reportNwfAttr, reportNwfContent, reportNwfContent, reportNwfStructure, reportNwfStructure, reportProblem, reportValidationProblem, reportValidationProblem, reportValidationProblem, reportValidationProblem, reportValidationProblem, reportValidationProblem, setProperty, setValidationProblemHandler, stopValidatingAgainst, stopValidatingAgainst, throwFromIOE, throwOutputError, throwOutputError, toString, validateAgainst, validateQNamePrefix, verifyRootElement, verifyWriteCData, verifyWriteDTD, wrapAsRawWriter, wrapAsTextWriter, writeCData, writeCData, writeCharacters, writeCharacters, writeCharacters, writeComment, writeDTD, writeDTD, writeDTD, writeEndDocument, writeEntityRef, writeProcessingInstruction, writeProcessingInstruction, writeRaw, writeRaw, writeRaw, writeSpace, writeSpace, writeStartDocument, writeStartDocument, writeStartDocument, writeStartDocumentprotected 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 boolean mAutomaticNS
protected final EmptyElementHandler mEmptyElementHandler
protected SimpleOutputElement mCurrElem
protected javax.xml.namespace.NamespaceContext mRootNsContext
protected SimpleOutputElement mOutputElemPool
static final int MAX_POOL_SIZE
protected int mPoolSize
public BaseNsStreamWriter(XmlWriter xw, java.lang.String enc, WriterConfig cfg, boolean repairing)
public javax.xml.namespace.NamespaceContext getNamespaceContext()
getNamespaceContext in interface javax.xml.stream.XMLStreamWritergetNamespaceContext in class BaseStreamWriterpublic java.lang.String getPrefix(java.lang.String uri)
getPrefix in interface javax.xml.stream.XMLStreamWritergetPrefix in class BaseStreamWriterpublic abstract void setDefaultNamespace(java.lang.String uri)
throws javax.xml.stream.XMLStreamException
setDefaultNamespace in interface javax.xml.stream.XMLStreamWritersetDefaultNamespace in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void setNamespaceContext(javax.xml.namespace.NamespaceContext ctxt)
throws javax.xml.stream.XMLStreamException
Note: Root namespace context works best if automatic prefix creation ("namespace/prefix repairing" in StAX lingo) is enabled.
setNamespaceContext in interface javax.xml.stream.XMLStreamWritersetNamespaceContext in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void setPrefix(java.lang.String prefix,
java.lang.String uri)
throws javax.xml.stream.XMLStreamException
setPrefix in interface javax.xml.stream.XMLStreamWritersetPrefix in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void writeAttribute(java.lang.String localName,
java.lang.String value)
throws javax.xml.stream.XMLStreamException
writeAttribute in interface javax.xml.stream.XMLStreamWriterwriteAttribute in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic abstract 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.XMLStreamWriterwriteAttribute in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic abstract 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.XMLStreamWriterwriteAttribute in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void writeEmptyElement(java.lang.String localName)
throws javax.xml.stream.XMLStreamException
Note: It is assumed caller just wants the element to belong to whatever is the current default namespace.
writeEmptyElement in interface javax.xml.stream.XMLStreamWriterwriteEmptyElement in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void writeEmptyElement(java.lang.String nsURI,
java.lang.String localName)
throws javax.xml.stream.XMLStreamException
writeEmptyElement in interface javax.xml.stream.XMLStreamWriterwriteEmptyElement in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic 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.XMLStreamWriterwriteEmptyElement in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void writeEndElement()
throws javax.xml.stream.XMLStreamException
writeEndElement in interface javax.xml.stream.XMLStreamWriterwriteEndElement in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void writeStartElement(java.lang.String localName)
throws javax.xml.stream.XMLStreamException
writeStartElement in interface javax.xml.stream.XMLStreamWriterwriteStartElement in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void writeStartElement(java.lang.String nsURI,
java.lang.String localName)
throws javax.xml.stream.XMLStreamException
writeStartElement in interface javax.xml.stream.XMLStreamWriterwriteStartElement in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic 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.XMLStreamWriterwriteStartElement in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionprotected void writeTypedAttribute(java.lang.String prefix,
java.lang.String nsURI,
java.lang.String localName,
org.codehaus.stax2.ri.typed.AsciiValueEncoder enc)
throws javax.xml.stream.XMLStreamException
TypedStreamWriterwriteTypedAttribute in class TypedStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void writeFullEndElement()
throws javax.xml.stream.XMLStreamException
writeEndElement(), but never allows implicit
creation of empty elements.writeFullEndElement in interface org.codehaus.stax2.XMLStreamWriter2writeFullEndElement in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic javax.xml.namespace.QName getCurrentElementName()
getCurrentElementName in interface org.codehaus.stax2.validation.ValidationContextgetCurrentElementName in class BaseStreamWriterpublic java.lang.String getNamespaceURI(java.lang.String prefix)
getNamespaceURI in interface org.codehaus.stax2.validation.ValidationContextgetNamespaceURI in class BaseStreamWriterpublic void writeEndElement(javax.xml.namespace.QName name)
throws javax.xml.stream.XMLStreamException
XMLEventWriter implementation
(instead of the version
that takes no argument), so that we can verify it does match the
start element, if necessarywriteEndElement in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionprotected void closeStartElement(boolean emptyElem)
throws javax.xml.stream.XMLStreamException
closeStartElement in class BaseStreamWriteremptyElem - If true, the element being closed is an empty
element; if false, a separate stand-alone start element.javax.xml.stream.XMLStreamExceptionprotected java.lang.String getTopElementDesc()
BaseStreamWritergetTopElementDesc in class BaseStreamWriterprotected void checkStartElement(java.lang.String localName,
java.lang.String prefix)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamExceptionprotected final void doWriteAttr(java.lang.String localName,
java.lang.String nsURI,
java.lang.String prefix,
java.lang.String value)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamExceptionprotected final void doWriteAttr(java.lang.String localName,
java.lang.String nsURI,
java.lang.String prefix,
char[] buf,
int start,
int len)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamExceptionprotected void doWriteNamespace(java.lang.String prefix,
java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamExceptionprotected void doWriteDefaultNs(java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamExceptionprotected final void doWriteStartTag(java.lang.String localName)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamExceptionprotected final void doWriteStartTag(java.lang.String prefix,
java.lang.String localName)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamExceptionprotected void doWriteEndTag(javax.xml.namespace.QName expName,
boolean allowEmpty)
throws javax.xml.stream.XMLStreamException
expName - Name that the closing element should have; null
if whatever is in stack should be usedallowEmpty - If true, is allowed to create the empty element
if the closing element was truly empty; if false, has to write
the full empty element no matter whatjavax.xml.stream.XMLStreamExceptionpublic abstract void doSetPrefix(java.lang.String prefix,
java.lang.String uri)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamExceptionpublic abstract void writeDefaultNamespace(java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
writeDefaultNamespace in interface javax.xml.stream.XMLStreamWriterwriteDefaultNamespace in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic abstract void writeNamespace(java.lang.String prefix,
java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
writeNamespace in interface javax.xml.stream.XMLStreamWriterwriteNamespace in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionpublic abstract void writeStartElement(javax.xml.stream.events.StartElement elem)
throws javax.xml.stream.XMLStreamException
BaseStreamWriterXMLEventWriter
implementation, to use when
writing a start element, and possibly its attributes and namespace
declarations.writeStartElement in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionprotected abstract void writeStartOrEmpty(java.lang.String localName,
java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamExceptionprotected abstract void writeStartOrEmpty(java.lang.String prefix,
java.lang.String localName,
java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException