Interface StAXFilter

All Known Implementing Classes:
DefaultStAXFilter

public interface StAXFilter
In StAX Processing it is possible to read fragments of XML. JDOM supports reading JDOM Content from StAX Readers in fragments. JDOM users can influence the content that is processed by the return values in this interface.

Using the StAXStreamBuilder or StAXEventBuilder you can parse a List of JDOM content by filtering that content with an instance of this filter.

There are two significant states in which methods in this interface will be called:

  • We are not currently including any content, and we want to know whether the current StAX content should be included.
  • We are currently inside an Element that this filter has indicated should be included, but perhaps you want to prune some content.
Author:
Rolf Lear
  • Method Summary

    Modifier and Type
    Method
    Description
    includeCDATA(int depth, String text)
    The current event is a CDATA event.
    includeComment(int depth, String comment)
    The current event is a Comment event.
    boolean
    The current event is a DocType event.
    boolean
    includeElement(int depth, String name, Namespace ns)
    The current event is an Element event.
    boolean
    includeEntityRef(int depth, String name)
    The current event is an EntityRef event.
    boolean
    The current event is a ProcessingInstruction event.
    includeText(int depth, String text)
    The current event is a TEXT event.
    pruneCDATA(int depth, String text)
    An Element is being included, and this is a child CDATA event of the included parent Element.
    pruneComment(int depth, String comment)
    An Element is being included, and this is a child Comment event of the included parent Element.
    boolean
    pruneElement(int depth, String name, Namespace ns)
    An Element is being included, and this is a child Element event of the included parent Element.
    boolean
    pruneEntityRef(int depth, String name)
    An Element is being included, and this is a child EntityRef event of the included parent Element.
    boolean
    pruneProcessingInstruction(int depth, String target)
    An Element is being included, and this is a child ProcessingInstruction event of the included parent Element.
    pruneText(int depth, String text)
    An Element is being included, and this is a child Text event of the included parent Element.
  • Method Details

    • includeDocType

      boolean includeDocType()
      The current event is a DocType event.
      Returns:
      true if the DocType should become a JDOM Fragment.
    • includeElement

      boolean includeElement(int depth, String name, Namespace ns)
      The current event is an Element event.

      If the return value of this call is true, then this Element will be processed as a JDOM fragment. You may then get calls to the prune* methods to determine whether child content of this Element should be pruned.

      Parameters:
      depth - The depth of this content from the document root (the root Element is at depth 0)
      name - The XML tag name of this Element
      ns - The Namespace of this Element
      Returns:
      true if the Element should become a JDOM Fragment.
    • includeComment

      String includeComment(int depth, String comment)
      The current event is a Comment event.

      A null return value will cause the Comment to be ignored, and a non-null return value will become the Comment's text.

      To include the comment as-is, do:

       public String includeComment(int depth, String comment) {
           return comment;
       }
       
      Parameters:
      depth - The depth of this content from the document root (the root Element is at depth 0)
      comment - The Comment value
      Returns:
      null if you want to exclude this comment, or a non-null value which will become the new comment value.
    • includeEntityRef

      boolean includeEntityRef(int depth, String name)
      The current event is an EntityRef event.

      Parameters:
      depth - The depth of this content from the document root (the root Element is at depth 0)
      name - The EntityRef name
      Returns:
      true if you want to include this EntityRef.
    • includeCDATA

      String includeCDATA(int depth, String text)
      The current event is a CDATA event.

      A null return value will cause the Comment to be ignored, and a non-null return value will become the CDATA's text.

      To include the CDATA as-is, do:

       public String includeCDATA(int depth, String text) {
           return text;
       }
       
      Parameters:
      depth - The depth of this content from the document root (the root Element is at depth 0)
      text - The CDATA text value
      Returns:
      null if you want to exclude this CDATA, or a non-null value which will become the new CDATA text value.
    • includeText

      String includeText(int depth, String text)
      The current event is a TEXT event.

      A null return value will cause the Comment to be ignored, and a non-null return value will become the Text's text.

      To include the Text as-is, do:

       public String includeText(int depth, String text) {
           return text;
       }
       
      Parameters:
      depth - The depth of this content from the document root (the root Element is at depth 0)
      text - The Text value
      Returns:
      null if you want to exclude this Text, or a non-null value which will become the new Text value.
    • includeProcessingInstruction

      boolean includeProcessingInstruction(int depth, String target)
      The current event is a ProcessingInstruction event.

      Parameters:
      depth - The depth of this content from the document root (the root Element is at depth 0)
      target - The ProcessingInstruction Target value
      Returns:
      true if you want to include this ProcessingInstruction.
    • pruneElement

      boolean pruneElement(int depth, String name, Namespace ns)
      An Element is being included, and this is a child Element event of the included parent Element. Should this Child Element be pruned from the parent fragment?
      Parameters:
      depth - The depth of this content from the document root (the root Element is at depth 0)
      name - The XML tag name of this child Element
      ns - The Namespace of this child Element
      Returns:
      true if the child Element should be excluded.
    • pruneComment

      String pruneComment(int depth, String comment)
      An Element is being included, and this is a child Comment event of the included parent Element. Should this child Comment be pruned from the parent fragment?

      A non-null return value will become the Comment value. Return null to skip the Comment.

      To include the Comment as-is, do:

       public String pruneComment(int depth, String comment) {
           return comment;
       }
       
      Parameters:
      depth - The depth of this content from the document root (the root Element is at depth 0)
      comment - The Comment value
      Returns:
      null if you want to exclude this Comment, or a non-null value which will become the new Comment value.
    • pruneEntityRef

      boolean pruneEntityRef(int depth, String name)
      An Element is being included, and this is a child EntityRef event of the included parent Element. Should this child EntityRef be pruned from the parent fragment?

      Parameters:
      depth - The depth of this content from the document root (the root Element is at depth 0)
      name - The EntityRef name
      Returns:
      true if you want to exclude this EntityRef.
    • pruneCDATA

      String pruneCDATA(int depth, String text)
      An Element is being included, and this is a child CDATA event of the included parent Element. Should this child CDATA be pruned from the parent fragment?

      A non-null return value will become the CDATA text. Return null to skip the CDATA.

      To include the CDATA as-is, do:

       public String pruneCDATA(int depth, String text) {
           return text;
       }
       
      Parameters:
      depth - The depth of this content from the document root (the root Element is at depth 0)
      text - The CDATA text value
      Returns:
      null if you want to exclude this CDATA, or a non-null value which will become the new CDATA text value.
    • pruneText

      String pruneText(int depth, String text)
      An Element is being included, and this is a child Text event of the included parent Element. Should this child Text be pruned from the parent fragment?

      A non-null return value will become the Text. Return null to skip the Text.

      To include the Text as-is, do:

       public String pruneText(int depth, String text) {
           return text;
       }
       
      Parameters:
      depth - The depth of this content from the document root (the root Element is at depth 0)
      text - The Text value
      Returns:
      null if you want to exclude this Text, or a non-null value which will become the new Text value.
    • pruneProcessingInstruction

      boolean pruneProcessingInstruction(int depth, String target)
      An Element is being included, and this is a child ProcessingInstruction event of the included parent Element. Should this ProcessingInstruction be pruned from the parent fragment?

      Parameters:
      depth - The depth of this content from the document root (the root Element is at depth 0)
      target - The ProcessingInstruction Target value
      Returns:
      true if you want to exclude this ProcessingInstruction.