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()