类 XmlValidationModeDetector
java.lang.Object
cn.taketoday.util.xml.XmlValidationModeDetector
Detects whether an XML stream is using DTD- or XSD-based validation.
- 从以下版本开始:
- 4.0
- 作者:
- Rob Harrop, Juergen Hoeller, Sam Brannen
-
字段概要
字段修饰符和类型字段说明private static final StringThe token in an XML document that declares the DTD to use for validation and thus that DTD validation is being used.private static final StringThe token that indicates the end of an XML comment.private booleanIndicates whether or not the current parse position is inside an XML comment.private static final StringThe token that indicates the start of an XML comment.static final intIndicates that the validation mode should be auto-guessed, since we cannot find a clear indication (probably choked on some special characters, or the like).static final intIndicates that DTD validation should be used (we found a "DOCTYPE" declaration).static final intIndicates that the validation should be disabled.static final intIndicates that XSD validation should be used (found no "DOCTYPE" declaration). -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明private intcommentToken(String line, String token, boolean inCommentIfPresent) Try to consume the supplied token against the supplied content and update the "in comment" parse state to the supplied value.private StringConsume the next comment token, update the "inComment" flag, and return the remaining content.private StringconsumeCommentTokens(String line) Consume all comments in the given String and return the remaining content, which may be empty since the supplied content might be all comment data.intdetectValidationMode(InputStream inputStream) Detect the validation mode for the XML document in the suppliedInputStream.private intendComment(String line) Try to consume theEND_COMMENTtoken.private booleanhasDoctype(String content) Does the content contain the DTD DOCTYPE declaration?private booleanhasOpeningTag(String content) Determine if the supplied content contains an XML opening tag.private intstartComment(String line) Try to consume theSTART_COMMENTtoken.
-
字段详细资料
-
VALIDATION_NONE
public static final int VALIDATION_NONEIndicates that the validation should be disabled.- 另请参阅:
-
VALIDATION_AUTO
public static final int VALIDATION_AUTOIndicates that the validation mode should be auto-guessed, since we cannot find a clear indication (probably choked on some special characters, or the like).- 另请参阅:
-
VALIDATION_DTD
public static final int VALIDATION_DTDIndicates that DTD validation should be used (we found a "DOCTYPE" declaration).- 另请参阅:
-
VALIDATION_XSD
public static final int VALIDATION_XSDIndicates that XSD validation should be used (found no "DOCTYPE" declaration).- 另请参阅:
-
DOCTYPE
The token in an XML document that declares the DTD to use for validation and thus that DTD validation is being used.- 另请参阅:
-
START_COMMENT
The token that indicates the start of an XML comment.- 另请参阅:
-
END_COMMENT
The token that indicates the end of an XML comment.- 另请参阅:
-
inComment
private boolean inCommentIndicates whether or not the current parse position is inside an XML comment.
-
-
构造器详细资料
-
XmlValidationModeDetector
public XmlValidationModeDetector()
-
-
方法详细资料
-
detectValidationMode
Detect the validation mode for the XML document in the suppliedInputStream.Note that the supplied
InputStreamis closed by this method before returning.- 参数:
inputStream- the InputStream to parse- 抛出:
IOException- in case of I/O failure- 另请参阅:
-
hasDoctype
Does the content contain the DTD DOCTYPE declaration? -
hasOpeningTag
Determine if the supplied content contains an XML opening tag.It is expected that all comment tokens will have been consumed for the supplied content before passing the remainder to this method. However, as a sanity check, if the parse state is currently in an XML comment this method always returns
false. -
consumeCommentTokens
Consume all comments in the given String and return the remaining content, which may be empty since the supplied content might be all comment data.This method takes the current "in comment" parsing state into account.
-
consume
Consume the next comment token, update the "inComment" flag, and return the remaining content. -
startComment
Try to consume theSTART_COMMENTtoken. -
endComment
Try to consume theEND_COMMENTtoken. -
commentToken
Try to consume the supplied token against the supplied content and update the "in comment" parse state to the supplied value.Returns the index into the content which is after the token or -1 if the token is not found.
-