public final class MicrosoftConditionalCommentTagTypes
extends java.lang.Object
Officially there are only two types of conditional comment,
downlevel-hidden and
downlevel-revealed,
with each defining a start tag containing an "if
" expression and an end tag containing the text "endif
".
These four official tags are represented by the tag types
DOWNLEVEL_HIDDEN_IF
, DOWNLEVEL_HIDDEN_ENDIF
, DOWNLEVEL_REVEALED_IF
and DOWNLEVEL_REVEALED_ENDIF
.
The conditional expression of an instance of any of the "if
" tag types can be extracted using the StartTag.getTagContent()
method.
For example, if the variable conditionalCommentIfTag
represents the tag <![if !IE]>
, then the expression
conditionalCommentIfTag.getTagContent().toString().trim()
yields the string "!IE
".
Conditional comments are only recognised by Internet Explorer. All other browsers recognise downlevel-hidden conditional comments as normal comments, and ignore downlevel-revealed conditional comment tags as unrecognised.
The use of downlevel-revealed conditional comments
is generally avoided because they represent invalid HTML code. They can however be replaced by functionally equivalent syntactical constructs based on
downlevel-hidden conditional comments
so that the HTML remains valid.
These composite constructs are represented by the tag types
DOWNLEVEL_REVEALED_VALIDATING_IF
, DOWNLEVEL_REVEALED_VALIDATING_ENDIF
and DOWNLEVEL_REVEALED_VALIDATING_SIMPLIFIED_IF
.
Because none of the conditional comment end tags start with "</
", they are represented in this library as
start tag types, and the parser makes no attempt to match if-endif tag pairs to form elements.
The tag types defined in this class are not registered by default.
Modifier and Type | Field and Description |
---|---|
static StartTagType |
DOWNLEVEL_HIDDEN_ENDIF
|
static StartTagType |
DOWNLEVEL_HIDDEN_IF
|
static StartTagType |
DOWNLEVEL_REVEALED_ENDIF
|
static StartTagType |
DOWNLEVEL_REVEALED_IF
|
static StartTagType |
DOWNLEVEL_REVEALED_VALIDATING_ENDIF
The tag type given to a validating downlevel-revealed conditional comment
endif tag
(<!--<![endif]--> ). |
static StartTagType |
DOWNLEVEL_REVEALED_VALIDATING_IF
The tag type given to a validating downlevel-revealed conditional comment
if tag
(<!--[if ... ]><!--> ). |
static StartTagType |
DOWNLEVEL_REVEALED_VALIDATING_SIMPLIFIED_IF
The tag type given to a validating simplified downlevel-revealed conditional comment
if tag
(<!--[if ... ]>--> ). |
Modifier and Type | Method and Description |
---|---|
static boolean |
defines(TagType tagType)
Indicates whether the specified tag type is defined in this class.
|
static void |
deregister()
Deregisters all of the tag types defined in this class at once.
|
static void |
register()
Registers all of the tag types defined in this class at once.
|
public static final StartTagType DOWNLEVEL_HIDDEN_IF
if
tag
(<!--[if ... ]>
).
The corresponding end tag is represented by the tag type DOWNLEVEL_HIDDEN_ENDIF
.
Property | Value |
---|---|
Description | Microsoft downlevel-hidden conditional comment IF |
StartDelimiter | <!--[if
|
ClosingDelimiter | ]>
|
IsServerTag | false
|
NamePrefix | !--[if
|
CorrespondingEndTagType | null
|
HasAttributes | false
|
IsNameAfterPrefixRequired | false
|
<!--[if IE]>
public static final StartTagType DOWNLEVEL_HIDDEN_ENDIF
endif
tag
(<![endif]-->
).
The corresponding start tag is represented by the tag type DOWNLEVEL_HIDDEN_IF
.
Although this functions as an end tag, it is represented in this library as a start tag type because it does not start with the characters "</
".
Property | Value |
---|---|
Description | Microsoft downlevel-hidden conditional comment ENDIF |
StartDelimiter | <![endif]-->
|
ClosingDelimiter | (empty string) |
IsServerTag | false
|
NamePrefix | ![endif]-->
|
CorrespondingEndTagType | null
|
HasAttributes | false
|
IsNameAfterPrefixRequired | false
|
<![endif]>
public static final StartTagType DOWNLEVEL_REVEALED_IF
if
tag
(<![if ... ]>
).
The corresponding end tag is represented by the tag type DOWNLEVEL_REVEALED_ENDIF
.
Property | Value |
---|---|
Description | Microsoft downlevel-revealed conditional comment IF |
StartDelimiter | <![if
|
ClosingDelimiter | ]>
|
IsServerTag | false
|
NamePrefix | ![if
|
CorrespondingEndTagType | null
|
HasAttributes | false
|
IsNameAfterPrefixRequired | false
|
<![if !IE]>
public static final StartTagType DOWNLEVEL_REVEALED_ENDIF
endif
tag
(<![endif]>
).
The corresponding start tag is represented by the tag type DOWNLEVEL_REVEALED_IF
.
Although this functions as an end tag, it is represented in this library as a start tag type because it does not start with the characters "</
".
Property | Value |
---|---|
Description | Microsoft downlevel-revealed conditional comment ENDIF |
StartDelimiter | <![endif]>
|
ClosingDelimiter | (empty string) |
IsServerTag | false
|
NamePrefix | ![endif]>
|
CorrespondingEndTagType | null
|
HasAttributes | false
|
IsNameAfterPrefixRequired | false
|
<![endif]>
public static final StartTagType DOWNLEVEL_REVEALED_VALIDATING_IF
if
tag
(<!--[if ... ]><!-->
).
The corresponding end tag is represented by the tag type DOWNLEVEL_REVEALED_VALIDATING_ENDIF
.
This tag is actually a composite syntactical construct containing a
downlevel-hidden conditional comment if
tag.
Property | Value |
---|---|
Description | Microsoft downlevel-revealed validating conditional comment IF |
StartDelimiter | <!--[if
|
ClosingDelimiter | ]><!-->
|
IsServerTag | false
|
NamePrefix | !--[if
|
CorrespondingEndTagType | null
|
HasAttributes | false
|
IsNameAfterPrefixRequired | false
|
<!--[if !(IE 5)]><!-->
public static final StartTagType DOWNLEVEL_REVEALED_VALIDATING_ENDIF
endif
tag
(<!--<![endif]-->
).
The corresponding start tag is represented by the tag type DOWNLEVEL_REVEALED_VALIDATING_IF
.
This tag is actually a composite syntactical construct containing a
downlevel-hidden conditional comment endif
tag.
Although this functions as an end tag, it is represented in this library as a start tag type because it does not start with the characters "</
".
Property | Value |
---|---|
Description | Microsoft downlevel-revealed validating conditional comment ENDIF |
StartDelimiter | <!--<![endif]-->
|
ClosingDelimiter | (empty string) |
IsServerTag | false
|
NamePrefix | !--<![endif]-->
|
CorrespondingEndTagType | null
|
HasAttributes | false
|
IsNameAfterPrefixRequired | false
|
<!--<![endif]-->
public static final StartTagType DOWNLEVEL_REVEALED_VALIDATING_SIMPLIFIED_IF
if
tag
(<!--[if ... ]>-->
).
This form of validating downlevel-revealed conditional comment must only be used when the condition always evaluated to false in Internet Explorer,
which means the condition should be either "false
" or "!IE
".
The corresponding end tag is represented by the tag type DOWNLEVEL_REVEALED_VALIDATING_ENDIF
, which is identical to the corresponding end tag of DOWNLEVEL_REVEALED_VALIDATING_IF
.
This tag is actually a composite syntactical construct containing a
downlevel-hidden conditional comment if
tag.
Property | Value |
---|---|
Description | Microsoft downlevel-revealed validating simplified conditional comment IF |
StartDelimiter | <!--[if
|
ClosingDelimiter | ]>-->
|
IsServerTag | false
|
NamePrefix | !--[if
|
CorrespondingEndTagType | null
|
HasAttributes | false
|
IsNameAfterPrefixRequired | false
|
<!--[if !IE]>-->
public static void register()
The tag types must be registered before the parser will recognise them.
public static void deregister()