Package gnu.xml

Class XMLFilter

    • Field Detail

      • out

        public Consumer out
        The specified target Consumer that accepts the output. In contrast, base may be either ==out or ==tlist.
      • COPY_NAMESPACES_PRESERVE

        public static final int COPY_NAMESPACES_PRESERVE
        See Also:
        Constant Field Values
      • COPY_NAMESPACES_INHERIT

        public static final int COPY_NAMESPACES_INHERIT
        See Also:
        Constant Field Values
      • copyNamespacesMode

        public transient int copyNamespacesMode
      • nesting

        protected int nesting
        Twice the number of active startElement and startDocument calls.
      • stringizingLevel

        protected int stringizingLevel
        If stringizingLevel > 0 then stringize rather than copy nodes. It counts the number of nested startAttributes that are active. (In the future it should also count begun comment and processing-instruction constructors, when those support nesting.)
      • stringizingElementNesting

        protected int stringizingElementNesting
        Value of nesting just before outermost startElement while stringizingLevel > 0. I.e. if we're nested inside a element nested inside an attribute then stringizingElementNesting >= 0, otherwise stringizingElementNesting == -1.
      • ignoringLevel

        protected int ignoringLevel
        Positive if all output should be ignored. This happens if we're inside an attribute value inside an element which is stringized because it is in turn inside an outer attribute. Phew. It gets incremented by nested attributes so we can tell when to stop.
      • namespacePrefixes

        public boolean namespacePrefixes
        True if namespace declarations should be passed through as attributes. Like SAX2's http://xml.org/features/namespace-prefixes.
    • Constructor Detail

      • XMLFilter

        public XMLFilter​(Consumer out)
    • Method Detail

      • setSourceLocator

        public void setSourceLocator​(gnu.kawa.io.InPort in)
      • setSourceLocator

        public void setSourceLocator​(SourceLocator locator)
      • findNamespaceBinding

        public NamespaceBinding findNamespaceBinding​(String prefix,
                                                     String uri,
                                                     NamespaceBinding oldBindings)
        Functionally equivalent to new NamespaceBinding(prefix, uri, oldBindings, but uses "hash consing".
      • lookupNamespaceBinding

        public gnu.xml.MappingInfo lookupNamespaceBinding​(String prefix,
                                                          char[] uriChars,
                                                          int uriStart,
                                                          int uriLength,
                                                          int uriHash,
                                                          NamespaceBinding oldBindings)
        Return a MappingInfo containing a match namespaces. Specifically, return a MappingInfo info is such that info.namespaces is equal to new NamespaceBinding(prefix, uri, oldBindings), where uri is new String(uriChars, uriStart, uriLength).intern()).
      • endAttribute

        public void endAttribute()
        Description copied from interface: Consumer
        End of an attribute or end of an actual parameter. The former use matches a startAttribute; the latter may not, and can be used to separate parameters in a parameter list. This double duty suggsts the method should at least be re-named.
        Specified by:
        endAttribute in interface Consumer
      • checkWriteAtomic

        protected boolean checkWriteAtomic()
      • write

        public void write​(int v)
        Specified by:
        write in interface Consumer
      • writeBoolean

        public void writeBoolean​(boolean v)
        Specified by:
        writeBoolean in interface Consumer
      • writeFloat

        public void writeFloat​(float v)
        Specified by:
        writeFloat in interface Consumer
      • writeDouble

        public void writeDouble​(double v)
        Specified by:
        writeDouble in interface Consumer
      • writeInt

        public void writeInt​(int v)
        Specified by:
        writeInt in interface Consumer
      • writeLong

        public void writeLong​(long v)
        Specified by:
        writeLong in interface Consumer
      • writeDocumentUri

        public void writeDocumentUri​(Object uri)
      • writePosition

        public void writePosition​(SeqPosition position)
        Description copied from interface: PositionConsumer
        Consume node at current position. The caller may invalidate or change the position after consume returns, so if the consumer wants to save it, it needs to copy it.
        Specified by:
        writePosition in interface PositionConsumer
      • writePosition

        public void writePosition​(AbstractSequence seq,
                                  int ipos)
        Description copied from interface: PositionConsumer
        Consume a single position pair. This PositionConsumer may assume the sequence does no reference management; i.e. that copyPos is trivial and releasePos is a no-op. If that is not the case, use consume(TreePosition) instead.
        Specified by:
        writePosition in interface PositionConsumer
      • writeObject

        public void writeObject​(Object v)
        If v is a node, make a copy of it.
        Specified by:
        writeObject in interface Consumer
      • write

        public void write​(char[] data,
                          int start,
                          int length)
        Process raw text.
        Specified by:
        write in interface Consumer
      • linefeedFromParser

        public void linefeedFromParser()
      • textFromParser

        public void textFromParser​(char[] data,
                                   int start,
                                   int length)
      • writeJoiner

        protected void writeJoiner()
      • writeCDATA

        public void writeCDATA​(char[] data,
                               int start,
                               int length)
        Process a CDATA section. The data (starting at start for length char). Does not include the delimiters (i.e. "<![CDATA[" and "]]>" are excluded).
        Specified by:
        writeCDATA in interface XConsumer
      • startElementCommon

        protected void startElementCommon()
      • emitStartElement

        public void emitStartElement​(char[] data,
                                     int start,
                                     int count)
        Process a start tag, with the given element name.
      • startAttribute

        public void startAttribute​(Object attrType)
        Description copied from interface: Consumer
        Write a attribute for the current element. This is only allowed immediately after a startElement.
        Specified by:
        startAttribute in interface Consumer
      • emitStartAttribute

        public void emitStartAttribute​(char[] data,
                                       int start,
                                       int count)
        Process an attribute, with the given attribute name. The attribute value is given using write. The value is terminated by either another emitStartAttribute or an emitEndAttributes.
      • emitEndAttributes

        public void emitEndAttributes()
        Process the end of a start tag. There are no more attributes.
      • emitEndElement

        public void emitEndElement​(char[] data,
                                   int start,
                                   int length)
        Process an end tag. An abbreviated tag (such as '<br/>') has a name==null.
      • emitEntityReference

        public void emitEntityReference​(char[] name,
                                        int start,
                                        int length)
        Process an entity reference. The entity name is given. This handles the predefined entities, such as "<" and """.
      • emitCharacterReference

        public void emitCharacterReference​(int value,
                                           char[] name,
                                           int start,
                                           int length)
        Process a character entity reference. The string encoding of the character (e.g. "xFF" or "255") is given, as well as the character value.
      • checkValidComment

        protected void checkValidComment​(char[] chars,
                                         int offset,
                                         int length)
      • writeComment

        public void writeComment​(char[] chars,
                                 int start,
                                 int length)
        Process a comment. The data (starting at start for length chars). Does not include the delimiters (i.e. "" are excluded).
        Specified by:
        writeComment in interface XConsumer
      • commentFromParser

        public void commentFromParser​(char[] chars,
                                      int start,
                                      int length)
        Process a comment, when called from an XML parser. The data (starting at start for length chars). Does not include the delimiters (i.e. "" are excluded).
      • processingInstructionFromParser

        public void processingInstructionFromParser​(char[] buffer,
                                                    int tstart,
                                                    int tlength,
                                                    int dstart,
                                                    int dlength)
        Process a processing instruction.
      • emitDoctypeDecl

        public void emitDoctypeDecl​(char[] buffer,
                                    int target,
                                    int tlength,
                                    int data,
                                    int dlength)
        Process a DOCTYPE declaration.
      • duplicateAttributeMessage

        public static String duplicateAttributeMessage​(Symbol attrSymbol,
                                                       Object elementName)
      • error

        public void error​(char severity,
                          String message)
      • ignoring

        public boolean ignoring()
        Description copied from interface: Consumer
        True if consumer is ignoring rest of element. The producer can use this information to skip ahead.
        Specified by:
        ignoring in interface Consumer
      • getStartLine

        public int getStartLine()
        Description copied from interface: SourceLocator
        Line number (one-origin) of start of range; unknown/unspecified is -1.
        Specified by:
        getStartLine in interface SourceLocator
      • getStartColumn

        public int getStartColumn()
        Description copied from interface: SourceLocator
        Column (one-origin) of start of range; unknown/unspecified is -1.
        Specified by:
        getStartColumn in interface SourceLocator
      • getEndLine

        public int getEndLine()
        Description copied from interface: SourceLocator
        Line number (one-origin) of end of range; unknown/unspecified is -1.
        Specified by:
        getEndLine in interface SourceLocator
      • getEndColumn

        public int getEndColumn()
        Description copied from interface: SourceLocator
        Column (one-origin) of end of range; unknown/unspecified is -1.
        Specified by:
        getEndColumn in interface SourceLocator
      • isStableSourceLocation

        public boolean isStableSourceLocation()
        Description copied from interface: SourceLocator
        True if position is unlikely to change. True for an expression but not an input file.
        Specified by:
        isStableSourceLocation in interface SourceLocator