public final class RepairingNsStreamWriter extends BaseNsStreamWriter
XMLStreamWriter, that does
namespace repairing, ie resolves possible conflicts between prefixes
(add new bindings as necessary), as well as automatically creates
namespace declarations as necessary.| Modifier and Type | Field and Description |
|---|---|
protected java.lang.String |
mAutomaticNsPrefix |
protected int[] |
mAutoNsSeq
Sequence number used for generating dynamic namespace prefixes.
|
protected java.lang.String |
mSuggestedDefNs |
protected java.util.HashMap<java.lang.String,java.lang.String> |
mSuggestedPrefixes
Map that contains URI-to-prefix entries that point out suggested
prefixes for URIs.
|
ERR_NSDECL_WRONG_STATE, mAutomaticNS, MAX_POOL_SIZE, mCurrElem, mEmptyElementHandler, mOutputElemPool, mPoolSize, mRootNsContext, sPrefixXml, sPrefixXmlnsmValueEncoderFactoryATTR_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 |
|---|
RepairingNsStreamWriter(XmlWriter xw,
java.lang.String enc,
WriterConfig cfg) |
| Modifier and Type | Method and Description |
|---|---|
void |
copyStartElement(InputElementStack elemStack,
AttributeCollector ac)
Element copier method implementation suitable for use with
namespace-aware writers in repairing mode.
|
void |
doSetPrefix(java.lang.String prefix,
java.lang.String uri) |
protected java.lang.String |
findElemPrefix(java.lang.String nsURI,
SimpleOutputElement 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,
SimpleOutputElement 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.String |
generateElemPrefix(java.lang.String suggPrefix,
java.lang.String nsURI,
SimpleOutputElement elem)
Method called after
findElemPrefix(java.lang.String, com.ctc.wstx.sw.SimpleOutputElement) has returned null,
to create and bind a namespace mapping for specified namespace. |
void |
setDefaultNamespace(java.lang.String uri)
With repairing writer, this is only taken as a suggestion as to how
the caller would prefer prefixes to be mapped.
|
private java.lang.String |
validateElemPrefix(java.lang.String prefix,
java.lang.String nsURI,
SimpleOutputElement elem) |
java.lang.String |
validateQNamePrefix(javax.xml.namespace.QName name)
Method called before writing a QName via Typed Access API.
|
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 |
writeDefaultNamespace(java.lang.String nsURI) |
void |
writeNamespace(java.lang.String prefix,
java.lang.String nsURI) |
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. |
protected void |
writeStartOrEmpty(java.lang.String localName,
java.lang.String nsURI) |
protected void |
writeStartOrEmpty(java.lang.String suggPrefix,
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.
|
checkStartElement, closeStartElement, doWriteAttr, doWriteAttr, doWriteDefaultNs, doWriteEndTag, doWriteNamespace, doWriteStartTag, doWriteStartTag, getCurrentElementName, getNamespaceContext, getNamespaceURI, getPrefix, getTopElementDesc, setNamespaceContext, setPrefix, writeAttribute, writeEmptyElement, writeEmptyElement, writeEmptyElement, writeEndElement, writeEndElement, writeFullEndElement, writeStartElement, writeStartElement, writeStartElementvalueEncoderFactory, 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, 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, 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 final java.lang.String mAutomaticNsPrefix
protected int[] mAutoNsSeq
protected java.lang.String mSuggestedDefNs
protected java.util.HashMap<java.lang.String,java.lang.String> mSuggestedPrefixes
BaseNsStreamWriter.setPrefix(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.public RepairingNsStreamWriter(XmlWriter xw, java.lang.String enc, WriterConfig cfg)
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.XMLStreamWriterwriteAttribute in class BaseNsStreamWriterjavax.xml.stream.XMLStreamExceptionpublic 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 BaseNsStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void writeDefaultNamespace(java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
writeDefaultNamespace in interface javax.xml.stream.XMLStreamWriterwriteDefaultNamespace in class BaseNsStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void writeNamespace(java.lang.String prefix,
java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
writeNamespace in interface javax.xml.stream.XMLStreamWriterwriteNamespace in class BaseNsStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void setDefaultNamespace(java.lang.String uri)
throws javax.xml.stream.XMLStreamException
setDefaultNamespace in interface javax.xml.stream.XMLStreamWritersetDefaultNamespace in class BaseNsStreamWriterjavax.xml.stream.XMLStreamExceptionpublic void doSetPrefix(java.lang.String prefix,
java.lang.String uri)
throws javax.xml.stream.XMLStreamException
doSetPrefix in class BaseNsStreamWriterjavax.xml.stream.XMLStreamExceptionpublic 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 BaseNsStreamWriterjavax.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 BaseNsStreamWriterjavax.xml.stream.XMLStreamExceptionprotected void writeStartOrEmpty(java.lang.String localName,
java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
writeStartOrEmpty in class BaseNsStreamWriterjavax.xml.stream.XMLStreamExceptionprotected void writeStartOrEmpty(java.lang.String suggPrefix,
java.lang.String localName,
java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
writeStartOrEmpty in class BaseNsStreamWriterjavax.xml.stream.XMLStreamExceptionpublic final void copyStartElement(InputElementStack elemStack, AttributeCollector ac) throws java.io.IOException, javax.xml.stream.XMLStreamException
setPrefix, writeNamespace
and writeStartElement; the order writers expect is
bit different from the order in which element information is
passed in.copyStartElement in class BaseStreamWriterjava.io.IOExceptionjavax.xml.stream.XMLStreamExceptionpublic java.lang.String validateQNamePrefix(javax.xml.namespace.QName name)
throws javax.xml.stream.XMLStreamException
BaseStreamWritervalidateQNamePrefix in class BaseStreamWriterjavax.xml.stream.XMLStreamExceptionprotected final java.lang.String findElemPrefix(java.lang.String nsURI,
SimpleOutputElement elem)
throws javax.xml.stream.XMLStreamException
nsURI - URI of namespace for which we need a prefixjavax.xml.stream.XMLStreamExceptionprotected final java.lang.String generateElemPrefix(java.lang.String suggPrefix,
java.lang.String nsURI,
SimpleOutputElement elem)
throws javax.xml.stream.XMLStreamException
findElemPrefix(java.lang.String, com.ctc.wstx.sw.SimpleOutputElement) has returned null,
to create and bind a namespace mapping for specified namespace.javax.xml.stream.XMLStreamExceptionprotected final java.lang.String findOrCreateAttrPrefix(java.lang.String suggPrefix,
java.lang.String nsURI,
SimpleOutputElement 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.XMLStreamExceptionprivate final java.lang.String validateElemPrefix(java.lang.String prefix,
java.lang.String nsURI,
SimpleOutputElement elem)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException