public static final class Config.CompatibilityMode
extends java.lang.Object
The predefined compatibility modes IE
, MOZILLA
, OPERA
and XHTML
provide an easy means of
ensuring the library interprets the markup in a way consistent with some of the most commonly used browsers,
at least in relation to the behaviour described by the properties in this class.
The properties of any CompatibilityMode
object can be modified individually, including those in
the predefined instances as well as newly constructed instances.
Take note however that modifying the properties of the predefined instances has a global affect.
The currently active compatibility mode is stored in the static Config.CurrentCompatibilityMode
property.
Modifier and Type | Field and Description |
---|---|
static int |
CODE_POINTS_ALL
Indicates the recognition of all unicode code points.
|
static int |
CODE_POINTS_NONE
Indicates the recognition of no unicode code points.
|
static Config.CompatibilityMode |
IE
Microsoft Internet Explorer compatibility mode.
|
static Config.CompatibilityMode |
MOZILLA
|
static Config.CompatibilityMode |
OPERA
Opera compatibility mode.
|
static Config.CompatibilityMode |
XHTML
XHTML compatibility mode.
|
Constructor and Description |
---|
Config.CompatibilityMode(java.lang.String name)
Constructs a new
CompatibilityMode with the given name. |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getDebugInfo()
Returns a string representation of this object useful for debugging purposes.
|
java.lang.String |
getName()
Returns the name of this compatibility mode.
|
int |
getUnterminatedCharacterEntityReferenceMaxCodePoint(boolean insideAttributeValue)
Returns the maximum unicode code point of an unterminated
character entity reference which is to be recognised in the specified context.
|
int |
getUnterminatedDecimalCharacterReferenceMaxCodePoint(boolean insideAttributeValue)
Returns the maximum unicode code point of an unterminated
decimal character reference which is to be recognised in the specified context.
|
int |
getUnterminatedHexadecimalCharacterReferenceMaxCodePoint(boolean insideAttributeValue)
Returns the maximum unicode code point of an unterminated
hexadecimal character reference which is to be recognised in the specified context.
|
boolean |
isFormFieldNameCaseInsensitive()
Indicates whether form field names are treated as case insensitive.
|
void |
setFormFieldNameCaseInsensitive(boolean value)
Sets whether form field names are treated as case insensitive.
|
void |
setUnterminatedCharacterEntityReferenceMaxCodePoint(boolean insideAttributeValue,
int maxCodePoint)
Sets the maximum unicode code point of an unterminated
character entity reference which is to be recognised in the specified context.
|
void |
setUnterminatedDecimalCharacterReferenceMaxCodePoint(boolean insideAttributeValue,
int maxCodePoint)
Sets the maximum unicode code point of an unterminated
decimal character reference which is to be recognised in the specified context.
|
void |
setUnterminatedHexadecimalCharacterReferenceMaxCodePoint(boolean insideAttributeValue,
int maxCodePoint)
Sets the maximum unicode code point of an unterminated
headecimal character reference which is to be recognised in the specified context.
|
java.lang.String |
toString()
Returns the name of this compatibility mode.
|
public static final int CODE_POINTS_ALL
This value is used in properties which specify a maximum unicode code point to be recognised by the parser.
public static final int CODE_POINTS_NONE
This value is used in properties which specify a maximum unicode code point to be recognised by the parser.
public static final Config.CompatibilityMode IE
Name
= IE
FormFieldNameCaseInsensitive
= true
Recognition of unterminated character references: | (inside attribute) | (outside attribute) | |
---|---|---|---|
UnterminatedCharacterEntityReferenceMaxCodePoint | = | U+00FF | U+00FF |
UnterminatedDecimalCharacterReferenceMaxCodePoint | = | All | All |
UnterminatedHexadecimalCharacterReferenceMaxCodePoint | = | All | None |
public static final Config.CompatibilityMode MOZILLA
Name
= Mozilla
FormFieldNameCaseInsensitive
= false
Recognition of unterminated character references: | (inside attribute) | (outside attribute) | |
---|---|---|---|
UnterminatedCharacterEntityReferenceMaxCodePoint | = | U+00FF | All |
UnterminatedDecimalCharacterReferenceMaxCodePoint | = | All | All |
UnterminatedHexadecimalCharacterReferenceMaxCodePoint | = | All | All |
public static final Config.CompatibilityMode OPERA
Name
= Opera
FormFieldNameCaseInsensitive
= true
Recognition of unterminated character references: | (inside attribute) | (outside attribute) | |
---|---|---|---|
UnterminatedCharacterEntityReferenceMaxCodePoint | = | U+003E | All |
UnterminatedDecimalCharacterReferenceMaxCodePoint | = | All | All |
UnterminatedHexadecimalCharacterReferenceMaxCodePoint | = | All | All |
public static final Config.CompatibilityMode XHTML
Name
= XHTML
FormFieldNameCaseInsensitive
= false
Recognition of unterminated character references: | (inside attribute) | (outside attribute) | |
---|---|---|---|
UnterminatedCharacterEntityReferenceMaxCodePoint | = | None | None |
UnterminatedDecimalCharacterReferenceMaxCodePoint | = | None | None |
UnterminatedHexadecimalCharacterReferenceMaxCodePoint | = | None | None |
public Config.CompatibilityMode(java.lang.String name)
CompatibilityMode
with the given name.
All properties in the new instance are initially assigned their default values, which are the same as the strict
rules of the XHTML
compatibility mode.
name
- the name of the new compatibility modepublic java.lang.String getName()
public boolean isFormFieldNameCaseInsensitive()
Microsoft Internet Explorer treats field names as case insensitive, while Mozilla treats them as case sensitive.
The value of this property in the current compatibility mode
affects all instances of the FormFields
class.
It should be set to the desired configuration before any instances of FormFields
are created.
true
if form field names are treated as case insensitive, otherwise false
.setFormFieldNameCaseInsensitive(boolean)
public void setFormFieldNameCaseInsensitive(boolean value)
See isFormFieldNameCaseInsensitive()
for the documentation of this property.
value
- the new value of the propertypublic int getUnterminatedCharacterEntityReferenceMaxCodePoint(boolean insideAttributeValue)
For example, if getUnterminatedCharacterEntityReferenceMaxCodePoint(true)
has the value 0xFF
(U+00FF)
in the current compatibility mode, then:
CharacterReference.decode(">",true)
returns ">
".>
despite the fact that it is unterminated,
because its unicode code point U+003E is below the maximum of U+00FF set by this property.
CharacterReference.decode("&euro",true)
returns "&euro
".€
because it is unterminated
and its unicode code point U+20AC is above the maximum of U+00FF set by this property.
See the documentation of the Attribute.getValue()
method for further discussion.
insideAttributeValue
- the context within an HTML document - true
if inside an attribute value or false
if outside an attribute value.setUnterminatedCharacterEntityReferenceMaxCodePoint(boolean insideAttributeValue, int maxCodePoint)
public void setUnterminatedCharacterEntityReferenceMaxCodePoint(boolean insideAttributeValue, int maxCodePoint)
See getUnterminatedCharacterEntityReferenceMaxCodePoint(boolean insideAttributeValue)
for the documentation of this property.
insideAttributeValue
- the context within an HTML document - true
if inside an attribute value or false
if outside an attribute value.maxCodePoint
- the maximum unicode code point.public int getUnterminatedDecimalCharacterReferenceMaxCodePoint(boolean insideAttributeValue)
For example, if getUnterminatedDecimalCharacterReferenceMaxCodePoint(true)
had the hypothetical value 0xFF
(U+00FF)
in the current compatibility mode, then:
CharacterReference.decode(">",true)
returns ">
".>
despite the fact that it is unterminated,
because its unicode code point U+003E is below the maximum of U+00FF set by this property.
CharacterReference.decode("€",true)
returns "€
".€
because it is unterminated
and its unicode code point U+20AC is above the maximum of U+00FF set by this property.
insideAttributeValue
- the context within an HTML document - true
if inside an attribute value or false
if outside an attribute value.setUnterminatedDecimalCharacterReferenceMaxCodePoint(boolean insideAttributeValue, int maxCodePoint)
public void setUnterminatedDecimalCharacterReferenceMaxCodePoint(boolean insideAttributeValue, int maxCodePoint)
See getUnterminatedDecimalCharacterReferenceMaxCodePoint(boolean insideAttributeValue)
for the documentation of this property.
insideAttributeValue
- the context within an HTML document - true
if inside an attribute value or false
if outside an attribute value.maxCodePoint
- the maximum unicode code point.public int getUnterminatedHexadecimalCharacterReferenceMaxCodePoint(boolean insideAttributeValue)
For example, if getUnterminatedHexadecimalCharacterReferenceMaxCodePoint(true)
had the hypothetical value 0xFF
(U+00FF)
in the current compatibility mode, then:
CharacterReference.decode(">",true)
returns ">
".>
despite the fact that it is unterminated,
because its unicode code point U+003E is below the maximum of U+00FF set by this property.
CharacterReference.decode("€",true)
returns "€
".ac;
because it is unterminated
and its unicode code point U+20AC is above the maximum of U+00FF set by this property.
insideAttributeValue
- the context within an HTML document - true
if inside an attribute value or false
if outside an attribute value.setUnterminatedHexadecimalCharacterReferenceMaxCodePoint(boolean insideAttributeValue, int maxCodePoint)
public void setUnterminatedHexadecimalCharacterReferenceMaxCodePoint(boolean insideAttributeValue, int maxCodePoint)
See getUnterminatedHexadecimalCharacterReferenceMaxCodePoint(boolean insideAttributeValue)
for the documentation of this property.
insideAttributeValue
- the context within an HTML document - true
if inside an attribute value or false
if outside an attribute value.maxCodePoint
- the maximum unicode code point.public java.lang.String getDebugInfo()