|
XenevaOS
|


Go to the source code of this file.
Classes | |
| struct | xml_char_range |
| struct | xml_char_group |
Macros | |
| #define | is_base_char(ch) _dom_is_character_in_group((ch), &base_char_group) |
| #define | is_char(ch) _dom_is_character_in_group((ch), &char_group) |
| #define | is_combining_char(ch) |
| #define | is_digit(ch) _dom_is_character_in_group((ch), &digit_char_group) |
| #define | is_extender(ch) _dom_is_character_in_group((ch), &extender_group) |
| #define | is_ideographic(ch) _dom_is_character_in_group((ch), &ideographic_group) |
| #define | is_letter(ch) (is_base_char(ch) || is_ideographic(ch)) |
Functions | |
| bool | _dom_is_character_in_group (unsigned int ch, const struct xml_char_group *group) |
Variables | |
| const struct xml_char_group | base_char_group |
| const struct xml_char_group | char_group |
| const struct xml_char_group | combining_char_group |
| const struct xml_char_group | digit_char_group |
| const struct xml_char_group | extender_group |
| const struct xml_char_group | ideographic_group |
| #define is_base_char | ( | ch | ) | _dom_is_character_in_group((ch), &base_char_group) |
| #define is_char | ( | ch | ) | _dom_is_character_in_group((ch), &char_group) |
| #define is_combining_char | ( | ch | ) |
| #define is_digit | ( | ch | ) | _dom_is_character_in_group((ch), &digit_char_group) |
| #define is_extender | ( | ch | ) | _dom_is_character_in_group((ch), &extender_group) |
| #define is_ideographic | ( | ch | ) | _dom_is_character_in_group((ch), &ideographic_group) |
| #define is_letter | ( | ch | ) | (is_base_char(ch) || is_ideographic(ch)) |
| bool _dom_is_character_in_group | ( | unsigned int | ch, |
| const struct xml_char_group * | group | ||
| ) |
Test whether certain character beint32_ts to some XML character group
| ch | The character being tested |
| group | The character group |
Generally, we use an algorithm like binary search to find the desired character in the group. The time complexity is about lg(n) and here n is at most 180, so, I think the algorithm is fast enough for name validation.
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |