Copyright © 2011 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
This document lists the names of character categories and character blocks defined by Unicode and used in the regular expression language defined by XSD 1.0 and XSD 1.1.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This document is a W3C Working Group Note as described in the World Wide Web Consortium Process Document. It contains a definition of a precisionDecimal datatype designed for compatibility with IEEE 754 floating-point decimal numbers.
In its current state, this document lists the block names that have appeared in various versions of the Unicode database. Some of this material has appeared in working drafts of [XSD 1.1 Part 2: Datatypes]; some has not. This document is substantially complete in its current form; future updates, if any, may include changes made in later versions of the Unicode database.
Comments on this document should be sent to the W3C XML Schema comments mailing list, [email protected] (archive). Each email message should contain only one comment.
Publication as a Working Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document has been produced by the W3C XML Schema Working Group as part of the W3C XML Activity. The authors of this document are the members of the XML Schema Working Group.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
XSD (the XML Schema Definition Language) defines a notation
for regular expressions to be used in the pattern
facet of simple type definitions; this regular-expression
language has also been used, with some modifications, in other
specifications.
The character-class escapes of XSD regular expressions allow regular expressions to refer conveniently to all UCS characters which share values for certain properties; in particular, XSD provides category escapes, which allow reference to the "general category" property of an entry in the Unicode database, and block escapes, which identify characters on the basis of named UCS blocks.
Experience has shown that it is cumbersome to revise the relevant passages in the [XSD 1.1 Part 2: Datatypes] each time the Unicode database is revised, so the version-specific information about Unicode block names present in earlier descriptions of XSD regular expressions has been factored out of [XSD 1.1 Part 2: Datatypes] and moved into this document for more convenient updates.
This document does not, however, contain any normative information. The normative specification of the XSD regular expression language is in [XSD 1.1 Part 2: Datatypes]. The normative specification of Unicode block names for any version of Unicode is in the Unicode database for that version.
The Unicode database [Unicode Database] groups the code points of the Universal Character Set (UCS) into a number of blocks such as Basic Latin (i.e., ASCII), Latin-1 Supplement, Hangul Jamo, CJK Compatibility, etc. The block-escape construct allows regular expressions to refer to sets of characters by the name of the block in which they appear, using a ·normalized block name·.
[Definition:] For any Unicode block, the normalized block name of that block is the string of characters formed by stripping out white space and underbar characters from the block name as given in [Unicode Database], while retaining hyphens and preserving case distinctions.
[Definition:]
A block escape expression denotes the set of characters
in a given Unicode block. For any Unicode block B;, with ·normalized block name· X, the set containing all
characters defined in block B can be identified with the block
escape \p{Is
X}
(using lower-case
'p
'). The complement of this set is denoted by the
block escape
\P{Is
X}
(using upper-case
'P
'). For all X, if X is a normalized block name
recognized by the processor, then
[\P{Is
X}]
=
[^\p{Is
X}]
.
For example, the block escape for identifying the ASCII
characters is
"\p{IsBasicLatin}
".
BasicLatin
'
and the string '-- basic LATIN --
' will match
the block name "Basic Latin".
Latin-1
Supplement
', for example, is thus
'Latin-1Supplement
', not
'latin1supplement
' or
'LATIN1SUPPLEMENT
'. Second, XSD processors
are not required to perform any normalization at all upon
the block name as given in the block escape, so
'\p{IsLatin-1Supplement}
' will be recognized as
a reference to the Latin-1 Supplement block, but
'\p{Is Latin-1 supplement}
' will not.
Editorial Note: What happens when X is not a recognized block name? It's not an error, strictly speaking, since the grammar accepts any sequence of Basic Latin alphanumerics and hyphens.
The following table lists the block names in the versions of [Unicode Database] cited in the references (References (§A)); the normative authority for any given version of [Unicode Database] is the Unicode database itself; in current versions, see the "Blocks.txt" file. The "Versions" column indicates which versions of [Unicode Database] have a block with the name and endpoints indicated; if the column is blank, all versions have such a block.
When these block names are used in block escapes, blanks and
underbars should be removed and the letters
"Is
" should be prepended: the block
name "Basic Latin" appears in a block escape as
"\p{IsBasicLatin}
".
Start–End, Block name | Versions |
---|---|
#x0000–#x007F Basic Latin | |
#x0080–#x00FF Latin-1 Supplement | |
#x0100–#x017F Latin Extended-A | |
#x0180–#x024F Latin Extended-B | |
#x0250–#x02AF IPA Extensions | |
#x02B0–#x02FF Spacing Modifier Letters | |
#x0300–#x036F Combining Diacritical Marks | |
#x0370–#x03FF Greek | before 3.2.0 (i.e. 2.0.0 through 3.1.1) |
#x0370–#x03FF Greek and Coptic | 3.2.0 and later |
#x0400–#x04FF Cyrillic | |
#x0500–#x052F Cyrillic Supplementary | 3.2.0, 4.0.0 |
#x0500–#x052F Cyrillic Supplement | 4.0.1 and later |
#x0530–#x058F Armenian | |
#x0590–#x05FF Hebrew | |
#x0600–#x06FF Arabic | |
#x0700–#x074F Syriac | 3.2.0 and later |
#x0750–#x077F Arabic Supplement | 4.1.0 and later |
#x0780–#x07BF Thaana | 3.0.0 and later |
#x07C0–#x07FF NKo | 5.0.0 and later |
#x0800–#x083F Samaritan | 5.2.0 and later |
#x0840–#x085F Mandaic | 6.0.0 |
#x0900–#x097F Devanagari | |
#x0980–#x09FF Bengali | |
#x0A00–#x0A7F Gurmukhi | |
#x0A80–#x0AFF Gujarati | |
#x0B00–#x0B7F Oriya | |
#x0B80–#x0BFF Tamil | |
#x0C00–#x0C7F Telugu | |
#x0C80–#x0CFF Kannada | |
#x0D00–#x0D7F Malayalam | |
#x0D80–#x0DFF Sinhala | 3.0.0 and later |
#x0E00–#x0E7F Thai | |
#x0E80–#x0EFF Lao | |
#x0F00–#x0FBF Tibetan | 2.0.0 through 2.1.9 |
#x0F00–#x0FFF Tibetan | 3.0.0 and later |
#x1000–#x109F Myanmar | 3.2.0 and later |
#x10A0–#x10FF Georgian | |
#x1100–#x11FF Hangul Jamo | |
#x1200–#x137F Ethiopic | 3.0.0 and later |
#x1380–#x139F Ethiopic Supplement | 4.1.0 and later |
#x13A0–#x13FF Cherokee | 3.0.0 and later |
#x1400–#x167F Unified Canadian Aboriginal Syllabics | 3.0.0 and later |
#x1680–#x169F Ogham | 3.0.0 and later |
#x16A0–#x16FF Runic | 3.0.0 and later |
#x1700–#x171F Tagalog | 3.2.0 and later |
#x1720–#x173F Hanunoo | 3.2.0 and later |
#x1740–#x175F Buhid | 3.2.0 and later |
#x1760–#x177F Tagbanwa | 3.2.0 and later |
#x1780–#x17FF Khmer | 3.0.0 and later |
#x1800–#x18AF Mongolian | 3.0.0 and later |
#x18B0–#x18FF Unified Canadian Aboriginal Syllabics Extended | 5.2.0 and later |
#x1900–#x194F Limbu | 4.0.0 and later |
#x1950–#x197F Tai Le | 4.0.0 and later |
#x1980–#x19DF New Tai Lue | 4.1.0 and later |
#x19E0–#x19FF Khmer Symbols | 4.0.0 and later |
#x1A00–#x1A1F Buginese | 4.1.0 and later |
#x1A20–#x1AAF Tai Tham | 5.2.0 and later |
#x1B00–#x1B7F Balinese | 5.0.0 and later |
#x1B80–#x1BBF Sundanese | 5.1.0 and later |
#x1BC0–#x1BFF Batak | 6.0.0 |
#x1C00–#x1C4F Lepcha | 5.1.0 and later |
#x1C50–#x1C7F Ol Chiki | 5.1.0 and later |
#x1CD0–#x1CFF Vedic Extensions | 5.2.0 and later |
#x1D00–#x1D7F Phonetic Extensions | 4.0.0 and later |
#x1D80–#x1DBF Phonetic Extensions Supplement | 4.1.0 and later |
#x1DC0–#x1DFF Combining Diacritical Marks Supplement | 4.1.0 and later |
#x1E00–#x1EFF Latin Extended Additional | |
#x1F00–#x1FFF Greek Extended | |
#x2000–#x206F General Punctuation | |
#x2070–#x209F Superscripts and Subscripts | |
#x20A0–#x20CF Currency Symbols | |
#x20D0–#x20FF Combining Marks for Symbols | before 3.2.0 (i.e. 2.0.0 through 3.1.1) |
#x20D0–#x20FF Combining Diacritical Marks for Symbols | 3.2.0 and later |
#x2100–#x214F Letterlike Symbols | |
#x2150–#x218F Number Forms | |
#x2190–#x21FF Arrows | |
#x2200–#x22FF Mathematical Operators | |
#x2300–#x23FF Miscellaneous Technical | |
#x2400–#x243F Control Pictures | |
#x2440–#x245F Optical Character Recognition | |
#x2460–#x24FF Enclosed Alphanumerics | |
#x2500–#x257F Box Drawing | |
#x2580–#x259F Block Elements | |
#x25A0–#x25FF Geometric Shapes | |
#x2600–#x26FF Miscellaneous Symbols | |
#x2700–#x27BF Dingbats | |
#x27C0–#x27EF Miscellaneous Mathematical Symbols-A | 3.2.0 and later |
#x27F0–#x27FF Supplemental Arrows-A | 3.2.0 and later |
#x2800–#x28FF Braille Patterns | 3.0.0 and later |
#x2900–#x297F Supplemental Arrows-B | 3.2.0 and later |
#x2980–#x29FF Miscellaneous Mathematical Symbols-B | 3.2.0 and later |
#x2A00–#x2AFF Supplemental Mathematical Operators | 3.2.0 and later |
#x2B00–#x2BFF Miscellaneous Symbols and Arrows | 4.0.0 and later |
#x2C00–#x2C5F Glagolitic | 4.1.0 and later |
#x2C60–#x2C7F Latin Extended-C | 5.0.0 and later |
#x2C80–#x2CFF Coptic | 4.1.0 and later |
#x2D00–#x2D2F Georgian Supplement | 4.1.0 and later |
#x2D30–#x2D7F Tifinagh | 4.1.0 and later |
#x2D80–#x2DDF Ethiopic Extended | 4.1.0 and later |
#x2DE0–#x2DFF Cyrillic Extended-A | 5.1.0 and later |
#x2E00–#x2E7F Supplemental Punctuation | 4.1.0 and later |
#x2E80–#x2EFF CJK Radicals Supplement | 3.0.0 and later |
#x2F00–#x2FDF Kangxi Radicals | 3.0.0 and later |
#x2FF0–#x2FFF Ideographic Description Characters | 3.0.0 and later |
#x3000–#x303F CJK Symbols and Punctuation | |
#x3040–#x309F Hiragana | |
#x30A0–#x30FF Katakana | |
#x3100–#x312F Bopomofo | |
#x3130–#x318F Hangul Compatibility Jamo | |
#x3190–#x319F Kanbun | |
#x31A0–#x31BF Bopomofo Extended | 3.0.0 and later |
#x31C0–#x31EF CJK Strokes | 4.1.0 and later |
#x31F0–#x31FF Katakana Phonetic Extensions | 3.2.0 and later |
#x3200–#x32FF Enclosed CJK Letters and Months | |
#x3300–#x33FF CJK Compatibility | |
#x3400–#x4DB5 CJK Unified Ideographs Extension A | 3.0.0 through 3.1.1 |
#x3400–#x4DBF CJK Unified Ideographs Extension A | 3.2.0 and later |
#x4DC0–#x4DFF Yijing Hexagram Symbols | 4.0.0 and later |
#x4E00–#x9FFF CJK Unified Ideographs | |
#xA000–#xA48F Yi Syllables | 3.0.0 and later |
#xA490–#xA4CF Yi Radicals | 3.0.0 and later |
#xA4D0–#xA4FF Lisu | 5.2.0 and later |
#xA500–#xA63F Vai | 5.1.0 and later |
#xA640–#xA69F Cyrillic Extended-B | 5.1.0 and later |
#xA6A0–#xA6FF Bamum | 5.2.0 and later |
#xA700–#xA71F Modifier Tone Letters | 4.1.0 and later |
#xA720–#xA7FF Latin Extended-D | 5.0.0 and later |
#xA800–#xA82F Syloti Nagri | 4.1.0 and later |
#xA830–#xA83F Common Indic Number Forms | 5.2.0 and later |
#xA840–#xA87F Phags-pa | 5.0.0 and later |
#xA880–#xA8DF Saurashtra | 5.1.0 and later |
#xA8E0–#xA8FF Devanagari Extended | 5.2.0 and later |
#xA900–#xA92F Kayah Li | 5.1.0 and later |
#xA930–#xA95F Rejang | 5.1.0 and later |
#xA960–#xA97F Hangul Jamo Extended-A | 5.2.0 and later |
#xA980–#xA9DF Javanese | 5.2.0 and later |
#xAA00–#xAA5F Cham | 5.1.0 and later |
#xAA60–#xAA7F Myanmar Extended-A | 5.2.0 and later |
#xAA80–#xAADF Tai Viet | 5.2.0 and later |
#xAB00–#xAB2F Ethiopic Extended-A | 6.0.0 |
#xABC0–#xABFF Meetei Mayek | 5.2.0 and later |
#xAC00–#xD7A3 Hangul Syllables | before 3.2.0 (i.e. 2.0.0 through 3.1.1) |
#xAC00–#xD7AF Hangul Syllables | 3.2.0 and later |
#xD7B0–#xD7FF Hangul Jamo Extended-B | 5.2.0 and later |
#xD800–#xDB7F High Surrogates | |
#xDB80–#xDBFF High Private Use Surrogates | |
#xDC00–#xDFFF Low Surrogates | |
#xE000–#xF8FF Private Use | before 3.2.0 (i.e. 2.0.0 through 3.1.1) |
#xE000–#xF8FF Private Use Area | 3.2.0 and later |
#xF900–#xFAFF CJK Compatibility Ideographs | |
#xFB00–#xFB4F Alphabetic Presentation Forms | |
#xFB50–#xFDFF Arabic Presentation Forms-A | |
#xFE00–#xFE0F Variation Selectors | 3.2.0 and later |
#xFE10–#xFE1F Vertical Forms | 4.1.0 and later |
#xFE20–#xFE2F Combining Half Marks | |
#xFE30–#xFE4F CJK Compatibility Forms | |
#xFE50–#xFE6F Small Form Variants | |
#xFE70–#xFEFE Arabic Presentation Forms-B | 2.1.9 through 3.1.1 |
#xFE70–#xFEFF Arabic Presentation Forms-B | 2.0.0 through 2.1.8, also 3.2.0 and later (i.e. not 2.1.9 through 3.1.1) |
#xFEFF–#xFEFF Specials | before 3.2.0 (i.e. 2.0.0 through 3.1.1) |
#xFF00–#xFFEF Halfwidth and Fullwidth Forms | |
#xFFF0–#xFFFD Specials | 2.1.9 through 3.1.1 |
#xFFF0–#xFFFF Specials | 2.0.0 through 2.1.8, also 3.2.0 and later (i.e. not 2.1.9 through 3.1.1) |
#x10000–#x1007F Linear B Syllabary | 4.0.0 and later |
#x10080–#x100FF Linear B Ideograms | 4.0.0 and later |
#x10100–#x1013F Aegean Numbers | 4.0.0 and later |
#x10140–#x1018F Ancient Greek Numbers | 4.1.0 and later |
#x10190–#x101CF Ancient Symbols | 5.1.0 and later |
#x101D0–#x101FF Phaistos Disc | 5.1.0 and later |
#x10280–#x1029F Lycian | 5.1.0 and later |
#x102A0–#x102DF Carian | 5.1.0 and later |
#x10300–#x1032F Old Italic | 3.1.0 and later |
#x10330–#x1034F Gothic | 3.1.0 and later |
#x10380–#x1039F Ugaritic | 4.0.0 and later |
#x103A0–#x103DF Old Persian | 4.1.0 and later |
#x10400–#x1044F Deseret | 3.1.0 and later |
#x10450–#x1047F Shavian | 4.0.0 and later |
#x10480–#x104AF Osmanya | 4.0.0 and later |
#x10800–#x1083F Cypriot Syllabary | 4.0.0 and later |
#x10840–#x1085F Imperial Aramaic | 5.2.0 and later |
#x10900–#x1091F Phoenician | 5.0.0 and later |
#x10920–#x1093F Lydian | 5.1.0 and later |
#x10A00–#x10A5F Kharoshthi | 4.1.0 and later |
#x10A60–#x10A7F Old South Arabian | 5.2.0 and later |
#x10B00–#x10B3F Avestan | 5.2.0 and later |
#x10B40–#x10B5F Inscriptional Parthian | 5.2.0 and later |
#x10B60–#x10B7F Inscriptional Pahlavi | 5.2.0 and later |
#x10C00–#x10C4F Old Turkic | 5.2.0 and later |
#x10E60–#x10E7F Rumi Numeral Symbols | 5.2.0 and later |
#x11000–#x1107F Brahmi | 6.0.0 |
#x11080–#x110CF Kaithi | 5.2.0 and later |
#x12000–#x123FF Cuneiform | 5.0.0 and later |
#x12400–#x1247F Cuneiform Numbers and Punctuation | 5.0.0 and later |
#x13000–#x1342F Egyptian Hieroglyphs | 5.2.0 and later |
#x16800–#x16A3F Bamum Supplement | 6.0.0 |
#x1B000–#x1B0FF Kana Supplement | 6.0.0 |
#x1D000–#x1D0FF Byzantine Musical Symbols | 3.1.0 and later |
#x1D100–#x1D1FF Musical Symbols | 3.1.0 and later |
#x1D200–#x1D24F Ancient Greek Musical Notation | 4.1.0 and later |
#x1D300–#x1D35F Tai Xuan Jing Symbols | 4.0.0 and later |
#x1D360–#x1D37F Counting Rod Numerals | 5.0.0 and later |
#x1D400–#x1D7FF Mathematical Alphanumeric Symbols | 3.1.0 and later |
#x1F000–#x1F02F Mahjong Tiles | 5.1.0 and later |
#x1F030–#x1F09F Domino Tiles | 5.1.0 and later |
#x1F0A0–#x1F0FF Playing Cards | 6.0.0 |
#x1F100–#x1F1FF Enclosed Alphanumeric Supplement | 5.2.0 and later |
#x1F200–#x1F2FF Enclosed Ideographic Supplement | 5.2.0 and later |
#x1F300–#x1F5FF Miscellaneous Symbols And Pictographs | 6.0.0 |
#x1F600–#x1F64F Emoticons | 6.0.0 |
#x1F680–#x1F6FF Transport And Map Symbols | 6.0.0 |
#x1F700–#x1F77F Alchemical Symbols | 6.0.0 |
#x20000–#x2A6D6 CJK Unified Ideographs Extension B | 3.1.0, 3.1.1 |
#x20000–#x2A6DF CJK Unified Ideographs Extension B | 3.2.0 and later |
#x2A700–#x2B73F CJK Unified Ideographs Extension C | 5.2.0 and later |
#x2B740–#x2B81F CJK Unified Ideographs Extension D | 6.0.0 |
#x2F800–#x2FA1F CJK Compatibility Ideographs Supplement | 3.1.0 and later |
#xE0000–#xE007F Tags | 3.1.0 and later |
#xE0100–#xE01EF Variation Selectors Supplement | 4.0.0 and later |
#xF0000–#xFFFFD Private Use | 3.1.0, 3.1.1 |
#xF0000–#xFFFFF Supplementary Private Use Area-A | 3.2.0 and later |
#x100000–#x10FFFD Private Use | 3.1.0, 3.1.1 |
#x100000–#x10FFFF Supplementary Private Use Area-B | 3.2.0 and later |
HighSurrogates
, LowSurrogates
, and
HighPrivateUseSurrogates
blocks. These blocks
identify surrogate characters, which do not occur
at the level of the character abstraction that XML instance
documents operate on. For that reason, block escapes using
these block names will never match any characters in an XML
document.As indicated in the "Versions" column, [Unicode Database] has been revised over time. Implementors of the XSD regular expression language are encouraged to support the block names defined in all versions of the Unicode Standard. When the implementation supports multiple versions of the Unicode database, and they differ in salient respects (e.g. different characters are assigned to a given block in different versions of the database), then it is implementation-defined which set of block definitions is used for any given assessment episode.
This document was prepared by the W3C XML Schema Working Group. The members at the time of publication were: