Package com.ctc.wstx.sw
Class NonNsStreamWriter
- java.lang.Object
-
- org.codehaus.stax2.ri.Stax2WriterImpl
-
- com.ctc.wstx.sw.BaseStreamWriter
-
- com.ctc.wstx.sw.TypedStreamWriter
-
- com.ctc.wstx.sw.NonNsStreamWriter
-
- All Implemented Interfaces:
OutputConfigFlags,javax.xml.stream.XMLStreamConstants,javax.xml.stream.XMLStreamWriter,org.codehaus.stax2.typed.TypedXMLStreamWriter,org.codehaus.stax2.validation.Validatable,org.codehaus.stax2.validation.ValidationContext,org.codehaus.stax2.XMLStreamWriter2
public class NonNsStreamWriter extends TypedStreamWriter
Implementation ofXMLStreamWriterused when namespace support is not enabled. This means that only local names are used for elements and attributes; and if rudimentary namespace declarations need to be output, they are output using attribute writing methods.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.TreeSet<java.lang.String>mAttrNamesContainer for attribute names for current element; used only if uniqueness of attribute names is to be enforced.(package private) StringVectormElementsStack of currently open start elements; only local names are included.-
Fields inherited from class com.ctc.wstx.sw.TypedStreamWriter
mValueEncoderFactory
-
Fields inherited from class com.ctc.wstx.sw.BaseStreamWriter
ATTR_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_TREE
-
Fields inherited from interface com.ctc.wstx.cfg.OutputConfigFlags
CFG_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 Summary
Constructors Constructor Description NonNsStreamWriter(XmlWriter xw, java.lang.String enc, WriterConfig cfg)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcloseStartElement(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.voidcopyStartElement(InputElementStack elemStack, AttributeCollector attrCollector)Element copier method implementation suitable to be used with non-namespace-aware writers.private voiddoWriteEndTag(java.lang.String expName, boolean allowEmpty)Note: Caller has to do actual removal of the element from element stack, before calling this method.private voiddoWriteStartElement(java.lang.String localName)javax.xml.namespace.QNamegetCurrentElementName()javax.xml.namespace.NamespaceContextgetNamespaceContext()java.lang.StringgetNamespaceURI(java.lang.String prefix)java.lang.StringgetPrefix(java.lang.String uri)protected java.lang.StringgetTopElementDesc()Method needed for error message generationvoidsetDefaultNamespace(java.lang.String uri)voidsetNamespaceContext(javax.xml.namespace.NamespaceContext context)voidsetPrefix(java.lang.String prefix, java.lang.String uri)java.lang.StringvalidateQNamePrefix(javax.xml.namespace.QName name)Method called before writing a QName via Typed Access API.voidwriteAttribute(java.lang.String localName, java.lang.String value)voidwriteAttribute(java.lang.String nsURI, java.lang.String localName, java.lang.String value)voidwriteAttribute(java.lang.String prefix, java.lang.String nsURI, java.lang.String localName, java.lang.String value)voidwriteDefaultNamespace(java.lang.String nsURI)voidwriteEmptyElement(java.lang.String localName)voidwriteEmptyElement(java.lang.String nsURI, java.lang.String localName)voidwriteEmptyElement(java.lang.String prefix, java.lang.String localName, java.lang.String nsURI)voidwriteEndElement()voidwriteEndElement(javax.xml.namespace.QName name)Method called byXMLEventWriterimplementation (instead of the version that takes no argument), so that we can verify it does match the start element, if necessaryvoidwriteFullEndElement()Similar towriteEndElement(), but never allows implicit creation of empty elements.voidwriteNamespace(java.lang.String prefix, java.lang.String nsURI)voidwriteStartElement(java.lang.String localName)voidwriteStartElement(java.lang.String nsURI, java.lang.String localName)voidwriteStartElement(java.lang.String prefix, java.lang.String localName, java.lang.String nsURI)voidwriteStartElement(javax.xml.stream.events.StartElement elem)Convenience method needed byXMLEventWriterimplementation, to use when writing a start element, and possibly its attributes and namespace declarations.protected voidwriteTypedAttribute(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.-
Methods inherited from class com.ctc.wstx.sw.TypedStreamWriter
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, writeTypedElement
-
Methods inherited from class com.ctc.wstx.sw.BaseStreamWriter
addDefaultAttribute, 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, writeStartDocument
-
-
-
-
Field Detail
-
mElements
final StringVector mElements
Stack of currently open start elements; only local names are included.
-
mAttrNames
java.util.TreeSet<java.lang.String> mAttrNames
Container for attribute names for current element; used only if uniqueness of attribute names is to be enforced.TreeSet is used mostly because clearing it up is faster than clearing up HashSet, and the only access is done by adding entries and see if an value was already set.
-
-
Constructor Detail
-
NonNsStreamWriter
public NonNsStreamWriter(XmlWriter xw, java.lang.String enc, WriterConfig cfg)
-
-
Method Detail
-
getNamespaceContext
public javax.xml.namespace.NamespaceContext getNamespaceContext()
- Specified by:
getNamespaceContextin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
getNamespaceContextin classBaseStreamWriter
-
getPrefix
public java.lang.String getPrefix(java.lang.String uri)
- Specified by:
getPrefixin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
getPrefixin classBaseStreamWriter
-
setDefaultNamespace
public void setDefaultNamespace(java.lang.String uri) throws javax.xml.stream.XMLStreamException- Specified by:
setDefaultNamespacein interfacejavax.xml.stream.XMLStreamWriter- Specified by:
setDefaultNamespacein classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
setNamespaceContext
public void setNamespaceContext(javax.xml.namespace.NamespaceContext context)
- Specified by:
setNamespaceContextin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
setNamespaceContextin classBaseStreamWriter
-
setPrefix
public void setPrefix(java.lang.String prefix, java.lang.String uri) throws javax.xml.stream.XMLStreamException- Specified by:
setPrefixin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
setPrefixin classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeAttribute
public void writeAttribute(java.lang.String localName, java.lang.String value) throws javax.xml.stream.XMLStreamException- Specified by:
writeAttributein interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeAttributein classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeAttribute
public void writeAttribute(java.lang.String nsURI, java.lang.String localName, java.lang.String value) throws javax.xml.stream.XMLStreamException- Specified by:
writeAttributein interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeAttributein classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeAttribute
public void writeAttribute(java.lang.String prefix, java.lang.String nsURI, java.lang.String localName, java.lang.String value) throws javax.xml.stream.XMLStreamException- Specified by:
writeAttributein interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeAttributein classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeDefaultNamespace
public void writeDefaultNamespace(java.lang.String nsURI) throws javax.xml.stream.XMLStreamException- Specified by:
writeDefaultNamespacein interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeDefaultNamespacein classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeEmptyElement
public void writeEmptyElement(java.lang.String localName) throws javax.xml.stream.XMLStreamException- Specified by:
writeEmptyElementin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeEmptyElementin classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeEmptyElement
public void writeEmptyElement(java.lang.String nsURI, java.lang.String localName) throws javax.xml.stream.XMLStreamException- Specified by:
writeEmptyElementin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeEmptyElementin classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeEmptyElement
public void writeEmptyElement(java.lang.String prefix, java.lang.String localName, java.lang.String nsURI) throws javax.xml.stream.XMLStreamException- Specified by:
writeEmptyElementin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeEmptyElementin classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeEndElement
public void writeEndElement() throws javax.xml.stream.XMLStreamException- Specified by:
writeEndElementin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeEndElementin classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeNamespace
public void writeNamespace(java.lang.String prefix, java.lang.String nsURI) throws javax.xml.stream.XMLStreamException- Specified by:
writeNamespacein interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeNamespacein classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeStartElement
public void writeStartElement(java.lang.String localName) throws javax.xml.stream.XMLStreamException- Specified by:
writeStartElementin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeStartElementin classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeStartElement
public void writeStartElement(java.lang.String nsURI, java.lang.String localName) throws javax.xml.stream.XMLStreamException- Specified by:
writeStartElementin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeStartElementin classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeStartElement
public void writeStartElement(java.lang.String prefix, java.lang.String localName, java.lang.String nsURI) throws javax.xml.stream.XMLStreamException- Specified by:
writeStartElementin interfacejavax.xml.stream.XMLStreamWriter- Specified by:
writeStartElementin classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeFullEndElement
public void writeFullEndElement() throws javax.xml.stream.XMLStreamExceptionSimilar towriteEndElement(), but never allows implicit creation of empty elements.- Specified by:
writeFullEndElementin interfaceorg.codehaus.stax2.XMLStreamWriter2- Specified by:
writeFullEndElementin classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
getCurrentElementName
public javax.xml.namespace.QName getCurrentElementName()
- Specified by:
getCurrentElementNamein interfaceorg.codehaus.stax2.validation.ValidationContext- Specified by:
getCurrentElementNamein classBaseStreamWriter
-
getNamespaceURI
public java.lang.String getNamespaceURI(java.lang.String prefix)
- Specified by:
getNamespaceURIin interfaceorg.codehaus.stax2.validation.ValidationContext- Specified by:
getNamespaceURIin classBaseStreamWriter
-
writeStartElement
public void writeStartElement(javax.xml.stream.events.StartElement elem) throws javax.xml.stream.XMLStreamExceptionDescription copied from class:BaseStreamWriterConvenience method needed byXMLEventWriterimplementation, to use when writing a start element, and possibly its attributes and namespace declarations.- Specified by:
writeStartElementin classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeEndElement
public void writeEndElement(javax.xml.namespace.QName name) throws javax.xml.stream.XMLStreamExceptionMethod called byXMLEventWriterimplementation (instead of the version that takes no argument), so that we can verify it does match the start element, if necessary- Specified by:
writeEndElementin classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
writeTypedAttribute
protected 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.XMLStreamExceptionDescription copied from class:TypedStreamWriterMethod that will write attribute with value that is known not to require additional escaping.- Specified by:
writeTypedAttributein classTypedStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
closeStartElement
protected void closeStartElement(boolean emptyElem) throws javax.xml.stream.XMLStreamExceptionMethod 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.- Specified by:
closeStartElementin classBaseStreamWriter- Throws:
javax.xml.stream.XMLStreamException
-
copyStartElement
public void copyStartElement(InputElementStack elemStack, AttributeCollector attrCollector) throws java.io.IOException, javax.xml.stream.XMLStreamException
Element copier method implementation suitable to be used with non-namespace-aware writers. The only special thing here is that the copier can convert namespace declarations to equivalent attribute writes.- Specified by:
copyStartElementin classBaseStreamWriter- Throws:
java.io.IOExceptionjavax.xml.stream.XMLStreamException
-
getTopElementDesc
protected java.lang.String getTopElementDesc()
Description copied from class:BaseStreamWriterMethod needed for error message generation- Specified by:
getTopElementDescin classBaseStreamWriter
-
validateQNamePrefix
public java.lang.String validateQNamePrefix(javax.xml.namespace.QName name)
Description copied from class:BaseStreamWriterMethod called before writing a QName via Typed Access API. In namespace-repairing mode it should take appropriate actions to ensure that the given namespace URI is bound to a namespace and return whatever it maps to. In non-repairing work no additional work is to be done and methods- Specified by:
validateQNamePrefixin classBaseStreamWriter- Returns:
- Prefix to use when writing out given QName as an element or attribute value
-
doWriteStartElement
private void doWriteStartElement(java.lang.String localName) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
doWriteEndTag
private void doWriteEndTag(java.lang.String expName, boolean allowEmpty) throws javax.xml.stream.XMLStreamExceptionNote: Caller has to do actual removal of the element from element stack, before calling this method.
- Parameters:
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 what- Throws:
javax.xml.stream.XMLStreamException
-
-