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, writeStartElement
final 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.XMLStreamWriter
setDefaultNamespace
in class StreamWriterBase
javax.xml.stream.XMLStreamException
public void _setPrefix(java.lang.String prefix, java.lang.String uri)
_setPrefix
in class StreamWriterBase
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.XMLStreamWriter
writeAttribute
in class StreamWriterBase
javax.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.XMLStreamWriter
writeAttribute
in class StreamWriterBase
javax.xml.stream.XMLStreamException
public void writeDefaultNamespace(java.lang.String nsURI) throws javax.xml.stream.XMLStreamException
writeDefaultNamespace
in interface javax.xml.stream.XMLStreamWriter
writeDefaultNamespace
in class StreamWriterBase
javax.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.XMLStreamWriter
writeEmptyElement
in class StreamWriterBase
javax.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.XMLStreamWriter
writeEmptyElement
in class StreamWriterBase
javax.xml.stream.XMLStreamException
public void writeNamespace(java.lang.String prefix, java.lang.String nsURI) throws javax.xml.stream.XMLStreamException
writeNamespace
in interface javax.xml.stream.XMLStreamWriter
writeNamespace
in class StreamWriterBase
javax.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.XMLStreamWriter
writeStartElement
in class StreamWriterBase
javax.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.XMLStreamWriter
writeStartElement
in class StreamWriterBase
javax.xml.stream.XMLStreamException
public 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
StreamWriterBase
writeTypedAttribute
in class StreamWriterBase
javax.xml.stream.XMLStreamException
protected java.lang.String _serializeQName(javax.xml.namespace.QName name) throws javax.xml.stream.XMLStreamException
_serializeQName
in class StreamWriterBase
javax.xml.stream.XMLStreamException
protected 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.XMLStreamException
public void _writeStartOrEmpty(java.lang.String prefix, java.lang.String localName, java.lang.String nsURI, boolean isEmpty) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
private 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.XMLStreamException
protected final java.lang.String _generateElemPrefix(java.lang.String uri) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException