public final class RepairingStreamWriter extends StreamWriterBase
StreamWriterBase, which
implements the "namespace repairing" mode of operation.
This means that the writer ensures correctness and validity
of namespace bindings, as based on namespace URIs caller
passes, by adding necessary namespace declarations and using
prefixes as required to obtain expected results.StreamWriterBase.State| Modifier and Type | Field and Description |
|---|---|
(package private) int[] |
_autoNsSeq
Sequence number used for generating dynamic namespace prefixes.
|
(package private) java.lang.String |
_cfgAutomaticNsPrefix |
(package private) java.lang.String |
_suggestedDefNs |
(package private) java.util.HashMap<java.lang.String,java.lang.String> |
_suggestedPrefixes
Map that contains URI-to-prefix entries that point out suggested
prefixes for URIs.
|
_cfgCDataAsText, _cfgCheckAttrs, _cfgCheckContent, _cfgCheckStructure, _config, _currElem, _dtdRootElemName, _outputElemPool, _poolSize, _rootNsContext, _state, _stateAnyOutput, _stateEmptyElement, _stateStartElementOpen, _symbols, _validator, _valueEncoderFactory, _vldContent, _vldProblemHandler, _xmlWriter, MAX_POOL_SIZE| Constructor and Description |
|---|
RepairingStreamWriter(WriterConfig cfg,
XmlWriter writer,
WNameTable symbols) |
| Modifier and Type | Method and Description |
|---|---|
protected WName |
_generateAttrName(java.lang.String suggPrefix,
java.lang.String localName,
java.lang.String uri) |
protected java.lang.String |
_generateElemPrefix(java.lang.String uri)
Method called if given URI is not yet bound, and no suggested prefix
is given (or one given can't be used).
|
protected java.lang.String |
_serializeQName(javax.xml.namespace.QName name) |
void |
_setPrefix(java.lang.String prefix,
java.lang.String uri) |
private boolean |
_writeStartAndVerify(java.lang.String prefix,
java.lang.String localName,
java.lang.String nsURI,
boolean isEmpty) |
void |
_writeStartOrEmpty(java.lang.String prefix,
java.lang.String localName,
java.lang.String nsURI,
boolean isEmpty) |
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.
|
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 |
writeEmptyElement(java.lang.String nsURI,
java.lang.String localName) |
void |
writeEmptyElement(java.lang.String prefix,
java.lang.String localName,
java.lang.String nsURI) |
void |
writeNamespace(java.lang.String prefix,
java.lang.String nsURI) |
void |
writeStartElement(java.lang.String nsURI,
java.lang.String localName) |
void |
writeStartElement(java.lang.String prefix,
java.lang.String localName,
java.lang.String nsURI) |
void |
writeTypedAttribute(java.lang.String prefix,
java.lang.String nsURI,
java.lang.String localName,
org.codehaus.stax2.ri.typed.AsciiValueEncoder enc)
Need to leave implementation of this method abstract, because
repairing and non-repairing modes differ in how names are
handled.
|
_closeStartElement, _reportInvalidContent, _reportNwfAttr, _reportNwfAttr, _reportNwfContent, _reportNwfContent, _reportNwfName, _reportNwfStructure, _reportNwfStructure, _reportValidationProblem, _verifyRootElement, _verifyStartElement, _verifyWriteAttr, _verifyWriteCData, _verifyWriteDTD, _writeAttribute, _writeAttribute, _writeDefaultNamespace, _writeNamespace, _writeStartDocument, _writeStartTag, _writeStartTag, addDefaultAttribute, close, closeCompletely, findAttributeIndex, flush, getAttributeCount, getAttributeLocalName, getAttributeNamespace, getAttributePrefix, getAttributeType, getAttributeValue, getAttributeValue, getBaseUri, getCurrentElementName, getEncoding, getLocation, getNamespaceContext, getNamespaceURI, getPrefix, getPrefixes, getProperty, getValidationLocation, getXmlVersion, inPrologOrEpilog, isNotationDeclared, isPropertySupported, isUnparsedEntityDeclared, reportIllegalArg, reportIllegalMethod, reportProblem, setNamespaceContext, setPrefix, setProperty, setValidationProblemHandler, stopValidatingAgainst, stopValidatingAgainst, throwFromIOE, throwOutputError, throwOutputError, toString, validateAgainst, valueEncoderFactory, writeAttribute, writeBinary, writeBinary, writeBinaryAttribute, writeBinaryAttribute, writeBoolean, writeBooleanAttribute, writeCData, writeCData, writeCharacters, writeCharacters, writeComment, writeDecimal, writeDecimalAttribute, writeDouble, writeDoubleArray, writeDoubleArrayAttribute, writeDoubleAttribute, writeDTD, writeDTD, writeDTD, writeEmptyElement, writeEndDocument, writeEndElement, 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, writeStartElementfinal java.lang.String _cfgAutomaticNsPrefix
int[] _autoNsSeq
java.lang.String _suggestedDefNs
java.util.HashMap<java.lang.String,java.lang.String> _suggestedPrefixes
StreamWriterBase.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 RepairingStreamWriter(WriterConfig cfg, XmlWriter writer, WNameTable symbols)
public void setDefaultNamespace(java.lang.String uri)
throws javax.xml.stream.XMLStreamException
setDefaultNamespace in interface javax.xml.stream.XMLStreamWritersetDefaultNamespace in class StreamWriterBasejavax.xml.stream.XMLStreamExceptionpublic void _setPrefix(java.lang.String prefix,
java.lang.String uri)
_setPrefix in class StreamWriterBasepublic 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 StreamWriterBasejavax.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 StreamWriterBasejavax.xml.stream.XMLStreamExceptionpublic void writeDefaultNamespace(java.lang.String nsURI)
throws javax.xml.stream.XMLStreamException
writeDefaultNamespace in interface javax.xml.stream.XMLStreamWriterwriteDefaultNamespace in class StreamWriterBasejavax.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 StreamWriterBasejavax.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 StreamWriterBasejavax.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 StreamWriterBasejavax.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 StreamWriterBasejavax.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 StreamWriterBasejavax.xml.stream.XMLStreamExceptionpublic 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
StreamWriterBasewriteTypedAttribute in class StreamWriterBasejavax.xml.stream.XMLStreamExceptionprotected java.lang.String _serializeQName(javax.xml.namespace.QName name)
throws javax.xml.stream.XMLStreamException
_serializeQName in class StreamWriterBasejavax.xml.stream.XMLStreamExceptionprotected WName _generateAttrName(java.lang.String suggPrefix, java.lang.String localName, java.lang.String uri) throws javax.xml.stream.XMLStreamException
uri - Non-empty namespace URI that will be used for the
attributejavax.xml.stream.XMLStreamExceptionpublic void _writeStartOrEmpty(java.lang.String prefix,
java.lang.String localName,
java.lang.String nsURI,
boolean isEmpty)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamExceptionprivate final boolean _writeStartAndVerify(java.lang.String prefix,
java.lang.String localName,
java.lang.String nsURI,
boolean isEmpty)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamExceptionprotected final java.lang.String _generateElemPrefix(java.lang.String uri)
throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException