Class 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 of XMLStreamWriter used 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 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:
        getNamespaceContext in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        getNamespaceContext in class BaseStreamWriter
      • getPrefix

        public java.lang.String getPrefix​(java.lang.String uri)
        Specified by:
        getPrefix in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        getPrefix in class BaseStreamWriter
      • setDefaultNamespace

        public void setDefaultNamespace​(java.lang.String uri)
                                 throws javax.xml.stream.XMLStreamException
        Specified by:
        setDefaultNamespace in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        setDefaultNamespace in class BaseStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • setNamespaceContext

        public void setNamespaceContext​(javax.xml.namespace.NamespaceContext context)
        Specified by:
        setNamespaceContext in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        setNamespaceContext in class BaseStreamWriter
      • setPrefix

        public void setPrefix​(java.lang.String prefix,
                              java.lang.String uri)
                       throws javax.xml.stream.XMLStreamException
        Specified by:
        setPrefix in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        setPrefix in class BaseStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeAttribute

        public void writeAttribute​(java.lang.String localName,
                                   java.lang.String value)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeAttribute in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        writeAttribute in class BaseStreamWriter
        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:
        writeAttribute in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        writeAttribute in class BaseStreamWriter
        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:
        writeAttribute in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        writeAttribute in class BaseStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeDefaultNamespace

        public void writeDefaultNamespace​(java.lang.String nsURI)
                                   throws javax.xml.stream.XMLStreamException
        Specified by:
        writeDefaultNamespace in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        writeDefaultNamespace in class BaseStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeEmptyElement

        public void writeEmptyElement​(java.lang.String localName)
                               throws javax.xml.stream.XMLStreamException
        Specified by:
        writeEmptyElement in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        writeEmptyElement in class BaseStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeEmptyElement

        public void writeEmptyElement​(java.lang.String nsURI,
                                      java.lang.String localName)
                               throws javax.xml.stream.XMLStreamException
        Specified by:
        writeEmptyElement in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        writeEmptyElement in class BaseStreamWriter
        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:
        writeEmptyElement in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        writeEmptyElement in class BaseStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeEndElement

        public void writeEndElement()
                             throws javax.xml.stream.XMLStreamException
        Specified by:
        writeEndElement in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        writeEndElement in class BaseStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeNamespace

        public void writeNamespace​(java.lang.String prefix,
                                   java.lang.String nsURI)
                            throws javax.xml.stream.XMLStreamException
        Specified by:
        writeNamespace in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        writeNamespace in class BaseStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeStartElement

        public void writeStartElement​(java.lang.String localName)
                               throws javax.xml.stream.XMLStreamException
        Specified by:
        writeStartElement in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        writeStartElement in class BaseStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeStartElement

        public void writeStartElement​(java.lang.String nsURI,
                                      java.lang.String localName)
                               throws javax.xml.stream.XMLStreamException
        Specified by:
        writeStartElement in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        writeStartElement in class BaseStreamWriter
        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:
        writeStartElement in interface javax.xml.stream.XMLStreamWriter
        Specified by:
        writeStartElement in class BaseStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeFullEndElement

        public void writeFullEndElement()
                                 throws javax.xml.stream.XMLStreamException
        Similar to writeEndElement(), but never allows implicit creation of empty elements.
        Specified by:
        writeFullEndElement in interface org.codehaus.stax2.XMLStreamWriter2
        Specified by:
        writeFullEndElement in class BaseStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • getCurrentElementName

        public javax.xml.namespace.QName getCurrentElementName()
        Specified by:
        getCurrentElementName in interface org.codehaus.stax2.validation.ValidationContext
        Specified by:
        getCurrentElementName in class BaseStreamWriter
      • getNamespaceURI

        public java.lang.String getNamespaceURI​(java.lang.String prefix)
        Specified by:
        getNamespaceURI in interface org.codehaus.stax2.validation.ValidationContext
        Specified by:
        getNamespaceURI in class BaseStreamWriter
      • writeStartElement

        public void writeStartElement​(javax.xml.stream.events.StartElement elem)
                               throws javax.xml.stream.XMLStreamException
        Description copied from class: BaseStreamWriter
        Convenience method needed by XMLEventWriter implementation, to use when writing a start element, and possibly its attributes and namespace declarations.
        Specified by:
        writeStartElement in class BaseStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • writeEndElement

        public void writeEndElement​(javax.xml.namespace.QName name)
                             throws javax.xml.stream.XMLStreamException
        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
        Specified by:
        writeEndElement in class BaseStreamWriter
        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.XMLStreamException
        Description copied from class: TypedStreamWriter
        Method that will write attribute with value that is known not to require additional escaping.
        Specified by:
        writeTypedAttribute in class TypedStreamWriter
        Throws:
        javax.xml.stream.XMLStreamException
      • closeStartElement

        protected void closeStartElement​(boolean emptyElem)
                                  throws javax.xml.stream.XMLStreamException
        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.
        Specified by:
        closeStartElement in class BaseStreamWriter
        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:
        copyStartElement in class BaseStreamWriter
        Throws:
        java.io.IOException
        javax.xml.stream.XMLStreamException
      • validateQNamePrefix

        public java.lang.String validateQNamePrefix​(javax.xml.namespace.QName name)
        Description copied from class: BaseStreamWriter
        Method 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:
        validateQNamePrefix in class BaseStreamWriter
        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.XMLStreamException

        Note: 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 used
        allowEmpty - 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