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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.String
includeCDATA(int depth, java.lang.String text)
The current event is a CDATA event.java.lang.String
includeComment(int depth, java.lang.String comment)
The current event is a Comment event.boolean
includeDocType()
The current event is a DocType event.boolean
includeElement(int depth, java.lang.String name, Namespace ns)
The current event is an Element event.boolean
includeEntityRef(int depth, java.lang.String name)
The current event is an EntityRef event.boolean
includeProcessingInstruction(int depth, java.lang.String target)
The current event is a ProcessingInstruction event.java.lang.String
includeText(int depth, java.lang.String text)
The current event is a TEXT event.java.lang.String
pruneCDATA(int depth, java.lang.String text)
An Element is being included, and this is a child CDATA event of the included parent Element.java.lang.String
pruneComment(int depth, java.lang.String comment)
An Element is being included, and this is a child Comment event of the included parent Element.boolean
pruneElement(int depth, java.lang.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, java.lang.String name)
An Element is being included, and this is a child EntityRef event of the included parent Element.boolean
pruneProcessingInstruction(int depth, java.lang.String target)
An Element is being included, and this is a child ProcessingInstruction event of the included parent Element.java.lang.String
pruneText(int depth, java.lang.String text)
An Element is being included, and this is a child Text event of the included parent Element.
-
-
-
Method Detail
-
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, java.lang.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 Elementns
- The Namespace of this Element- Returns:
- true if the Element should become a JDOM Fragment.
-
includeComment
java.lang.String includeComment(int depth, java.lang.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, java.lang.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
java.lang.String includeCDATA(int depth, java.lang.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
java.lang.String includeText(int depth, java.lang.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, java.lang.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, java.lang.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 Elementns
- The Namespace of this child Element- Returns:
- true if the child Element should be excluded.
-
pruneComment
java.lang.String pruneComment(int depth, java.lang.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, java.lang.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
java.lang.String pruneCDATA(int depth, java.lang.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
java.lang.String pruneText(int depth, java.lang.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, java.lang.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.
-
-