# Copyright © 2023 Unicode, Inc. default namespace ucd = "http://www.unicode.org/ns/2003/ucd/1.0" # default; datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes" single-code-point = xsd:string { pattern = "(|[1-9A-F]|(10))[0-9A-F]{4}" } one-or-more-code-points = list { single-code-point + } zero-or-more-code-points = list { single-code-point * } two-code-points = list { single-code-point, single-code-point } character-name = xsd:string { pattern="([A-Z0-9 #\-\(\)]*)|()" } jis-code-point = xsd:string { pattern = "[0-9A-F]{4}" } start = element ucd { ucd.content } boolean = "Y" | "N" ucd.content &= element description { text }? ucd.content &= element repertoire { (code-point | group) + }? set-of-code-points = attribute cp { single-code-point } | ( attribute first-cp { single-code-point }, attribute last-cp { single-code-point } ) code-point |= element reserved { set-of-code-points, code-point-attributes } code-point |= element noncharacter { set-of-code-points, code-point-attributes } code-point |= element surrogate { set-of-code-points, code-point-attributes } code-point |= element char { set-of-code-points, code-point-attributes } group = element group { code-point-attributes, code-point* } code-point-attributes &= attribute age { "1.1" | "2.0" | "2.1" | "3.0" | "3.1" | "3.2" | "4.0" | "4.1" | "5.0" | "5.1" | "5.2" | "6.0" | "6.1" | "6.2" | "6.3" | "7.0" | "8.0" | "9.0" | "10.0" | "11.0" | "12.0" | "12.1" | "13.0" | "14.0" | "15.0" | "15.1" | "unassigned" }? code-point-attributes &= attribute na { character-name }? code-point-attributes &= attribute na1 { character-name }? code-point-attributes &= element name-alias { attribute alias { text }?, attribute type { "abbreviation" | "alternate" | "control" | "correction" | "figment" }? } * code-point-attributes &= attribute blk { "Adlam" | "Aegean_Numbers" | "Ahom" | "Alchemical" | "Alphabetic_PF" | "Anatolian_Hieroglyphs" | "Ancient_Greek_Music" | "Ancient_Greek_Numbers" | "Ancient_Symbols" | "Arabic" | "Arabic_Ext_A" | "Arabic_Ext_B" | "Arabic_Ext_C" | "Arabic_Math" | "Arabic_PF_A" | "Arabic_PF_B" | "Arabic_Sup" | "Armenian" | "Arrows" | "ASCII" | "Avestan" | "Balinese" | "Bamum" | "Bamum_Sup" | "Bassa_Vah" | "Batak" | "Bengali" | "Bhaiksuki" | "Block_Elements" | "Bopomofo" | "Bopomofo_Ext" | "Box_Drawing" | "Brahmi" | "Braille" | "Buginese" | "Buhid" | "Byzantine_Music" | "Carian" | "Caucasian_Albanian" | "Chakma" | "Cham" | "Cherokee" | "Cherokee_Sup" | "Chess_Symbols" | "Chorasmian" | "CJK" | "CJK_Compat" | "CJK_Compat_Forms" | "CJK_Compat_Ideographs" | "CJK_Compat_Ideographs_Sup" | "CJK_Ext_A" | "CJK_Ext_B" | "CJK_Ext_C" | "CJK_Ext_D" | "CJK_Ext_E" | "CJK_Ext_F" | "CJK_Ext_G" | "CJK_Ext_H" | "CJK_Ext_I" | "CJK_Radicals_Sup" | "CJK_Strokes" | "CJK_Symbols" | "Compat_Jamo" | "Control_Pictures" | "Coptic" | "Coptic_Epact_Numbers" | "Counting_Rod" | "Cuneiform" | "Cuneiform_Numbers" | "Currency_Symbols" | "Cypriot_Syllabary" | "Cypro_Minoan" | "Cyrillic" | "Cyrillic_Ext_A" | "Cyrillic_Ext_B" | "Cyrillic_Ext_C" | "Cyrillic_Ext_D" | "Cyrillic_Sup" | "Deseret" | "Devanagari" | "Devanagari_Ext" | "Devanagari_Ext_A" | "Diacriticals" | "Diacriticals_For_Symbols" | "Diacriticals_Sup" | "Diacriticals_Ext" | "Dingbats" | "Dives_Akuru" | "Dogra" | "Domino" | "Duployan" | "Early_Dynastic_Cuneiform" | "Egyptian_Hieroglyphs" | "Egyptian_Hieroglyph_Format_Controls" | "Elbasan" | "Elymaic" | "Emoticons" | "Enclosed_Alphanum" | "Enclosed_Alphanum_Sup" | "Enclosed_CJK" | "Enclosed_Ideographic_Sup" | "Ethiopic" | "Ethiopic_Ext" | "Ethiopic_Ext_A" | "Ethiopic_Ext_B" | "Ethiopic_Sup" | "Geometric_Shapes" | "Geometric_Shapes_Ext" | "Georgian" | "Georgian_Ext" | "Georgian_Sup" | "Glagolitic" | "Glagolitic_Sup" | "Gothic" | "Grantha" | "Greek" | "Greek_Ext" | "Gujarati" | "Gunjala_Gondi" | "Gurmukhi" | "Half_And_Full_Forms" | "Half_Marks" | "Hangul" | "Hanifi_Rohingya" | "Hanunoo" | "Hatran" | "Hebrew" | "High_PU_Surrogates" | "High_Surrogates" | "Hiragana" | "IDC" | "Ideographic_Symbols" | "Imperial_Aramaic" | "Indic_Number_Forms" | "Indic_Siyaq_Numbers" | "Inscriptional_Pahlavi" | "Inscriptional_Parthian" | "IPA_Ext" | "Jamo" | "Jamo_Ext_A" | "Jamo_Ext_B" | "Javanese" | "Kaithi" | "Kaktovik_Numerals" | "Kana_Ext_A" | "Kana_Sup" | "Kanbun" | "Kangxi" | "Kannada" | "Katakana" | "Katakana_Ext" | "Kana_Ext_B" | "Kawi" | "Kayah_Li" | "Kharoshthi" | "Khitan_Small_Script" | "Khmer" | "Khmer_Symbols" | "Khojki" | "Khudawadi" | "Lao" | "Latin_1_Sup" | "Latin_Ext_A" | "Latin_Ext_Additional" | "Latin_Ext_B" | "Latin_Ext_C" | "Latin_Ext_D" | "Latin_Ext_E" | "Latin_Ext_F" | "Latin_Ext_G" | "Lepcha" | "Letterlike_Symbols" | "Limbu" | "Linear_A" | "Linear_B_Ideograms" | "Linear_B_Syllabary" | "Lisu" | "Lisu_Sup" | "Low_Surrogates" | "Lycian" | "Lydian" | "Mahajani" | "Mahjong" | "Makasar" | "Malayalam" | "Mandaic" | "Manichaean" | "Marchen" | "Masaram_Gondi" | "Math_Alphanum" | "Math_Operators" | "Mayan_Numerals" | "Medefaidrin" | "Meetei_Mayek" | "Meetei_Mayek_Ext" | "Mende_Kikakui" | "Meroitic_Cursive" | "Meroitic_Hieroglyphs" | "Miao" | "Misc_Arrows" | "Misc_Math_Symbols_A" | "Misc_Math_Symbols_B" | "Misc_Pictographs" | "Misc_Symbols" | "Misc_Technical" | "Modi" | "Modifier_Letters" | "Modifier_Tone_Letters" | "Mongolian" | "Mongolian_Sup" | "Mro" | "Music" | "Multani" | "Myanmar" | "Myanmar_Ext_A" | "Myanmar_Ext_B" | "Nabataean" | "Nag_Mundari" | "Nandinagari" | "NB" | "New_Tai_Lue" | "Newa" | "NKo" | "Number_Forms" | "Nushu" | "Nyiakeng_Puachue_Hmong" | "OCR" | "Ogham" | "Ol_Chiki" | "Old_Hungarian" | "Old_Italic" | "Old_North_Arabian" | "Old_Permic" | "Old_Persian" | "Old_Sogdian" | "Old_South_Arabian" | "Old_Turkic" | "Old_Uyghur" | "Oriya" | "Ornamental_Dingbats" | "Osage" | "Osmanya" | "Ottoman_Siyaq_Numbers" | "Pahawh_Hmong" | "Palmyrene" | "Pau_Cin_Hau" | "Phags_Pa" | "Phaistos" | "Phoenician" | "Phonetic_Ext" | "Phonetic_Ext_Sup" | "Playing_Cards" | "Psalter_Pahlavi" | "PUA" | "Punctuation" | "Rejang" | "Rumi" | "Runic" | "Samaritan" | "Saurashtra" | "Sharada" | "Shavian" | "Shorthand_Format_Controls" | "Siddham" | "Sinhala" | "Sinhala_Archaic_Numbers" | "Small_Forms" | "Small_Kana_Ext" | "Sogdian" | "Sora_Sompeng" | "Soyombo" | "Specials" | "Sundanese" | "Sundanese_Sup" | "Sup_Arrows_A" | "Sup_Arrows_B" | "Sup_Arrows_C" | "Sup_Math_Operators" | "Sup_PUA_A" | "Sup_PUA_B" | "Sup_Punctuation" | "Sup_Symbols_And_Pictographs" | "Super_And_Sub" | "Sutton_SignWriting" | "Syloti_Nagri" | "Symbols_And_Pictographs_Ext_A" | "Symbols_For_Legacy_Computing" | "Syriac" | "Syriac_Sup" | "Tagalog" | "Tagbanwa" | "Tags" | "Tai_Le" | "Tai_Tham" | "Tai_Viet" | "Tai_Xuan_Jing" | "Takri" | "Tamil" | "Tamil_Sup" | "Tangsa" | "Tangut" | "Tangut_Components" | "Tangut_Sup" | "Telugu" | "Thaana" | "Thai" | "Tibetan" | "Tifinagh" | "Tirhuta" | "Toto" | "Transport_And_Map" | "UCAS" | "UCAS_Ext" | "UCAS_Ext_A" | "Ugaritic" | "Vai" | "Vedic_Ext" | "Vertical_Forms" | "Vithkuqi" | "VS" | "VS_Sup" | "Wancho" | "Warang_Citi" | "Yezidi" | "Yi_Radicals" | "Yi_Syllables" | "Yijing" | "Zanabazar_Square" | "Znamenny_Music" }? code-point-attributes &= attribute gc { "Lu" | "Ll" | "Lt" | "Lm" | "Lo" | "Mn" | "Mc" | "Me" | "Nd" | "Nl" | "No" | "Pc" | "Pd" | "Ps" | "Pe" | "Pi" | "Pf" | "Po" | "Sm" | "Sc" | "Sk" | "So" | "Zs" | "Zl" | "Zp" | "Cc" | "Cf" | "Cs" | "Co" | "Cn" }? code-point-attributes &= attribute ccc { xsd:integer { minInclusive="0" maxInclusive="254" }}? code-point-attributes &= attribute bc { "AL" | "AN" | "B " | "BN" | "CS" | "EN" | "ES" | "ET" | "FSI" | "L" | "LRE" | "LRI" | "LRO" | "NSM" | "ON" | "PDF" | "PDI" | "R" | "RLE" | "RLI" | "RLO" | "S" | "WS" }? code-point-attributes &= attribute Bidi_M { boolean }? code-point-attributes &= attribute bmg { "" | single-code-point }? code-point-attributes &= attribute Bidi_C { boolean }? code-point-attributes &= attribute bpt { "o" | "c" | "n" }? code-point-attributes &= attribute bpb { "#" | single-code-point }? code-point-attributes &= attribute dt { "can" | "com" | "enc" | "fin" | "font" | "fra" | "init" | "iso" | "med" | "nar" | "nb" | "sml" | "sqr" | "sub" | "sup" | "vert" | "wide" | "none"}? code-point-attributes &= attribute dm { "#" | zero-or-more-code-points }? code-point-attributes &= attribute CE { boolean }? code-point-attributes &= attribute Comp_Ex { boolean }? code-point-attributes &= attribute NFC_QC { "Y" | "N" | "M" }? code-point-attributes &= attribute NFD_QC { "Y" | "N" }? code-point-attributes &= attribute NFKC_QC { "Y" | "N" | "M" }? code-point-attributes &= attribute NFKD_QC { "Y" | "N" }? code-point-attributes &= attribute XO_NFC { boolean }? code-point-attributes &= attribute XO_NFD { boolean }? code-point-attributes &= attribute XO_NFKC { boolean }? code-point-attributes &= attribute XO_NFKD { boolean }? code-point-attributes &= attribute FC_NFKC { "#" | one-or-more-code-points }? code-point-attributes &= attribute nt { "None" | "De" | "Di" | "Nu" }? code-point-attributes &= attribute nv { "NaN" | list { xsd:string { pattern = "-?[0-9]+(/[0-9]+)?" } +}}? code-point-attributes &= attribute jt { "U" | "C" | "T" | "D" | "L" | "R" }? code-point-attributes &= attribute jg { "African_Feh" | "African_Noon" | "African_Qaf" | "Ain" | "Alaph" | "Alef" | "Alef_Maqsurah" | "Beh" | "Beth" | "Burushaski_Yeh_Barree" | "Dal" | "Dalath_Rish" | "E" | "Farsi_Yeh" | "Fe" | "Feh" | "Final_Semkath" | "Gaf" | "Gamal" | "Hah" | "Hamza_On_Heh_Goal" | "He" | "Heh" | "Heh_Goal" | "Heth" | "Hanifi_Rohingya_Kinna_Ya" | "Hanifi_Rohingya_Pa" | "Kaf" | "Kaph" | "Khaph" | "Knotted_Heh" | "Lam" | "Lamadh" | "Malayalam_Nga" | "Malayalam_Ja" | "Malayalam_Nya" | "Malayalam_Tta" | "Malayalam_Nna" | "Malayalam_Nnna" | "Malayalam_Bha" | "Malayalam_Ra" | "Malayalam_Lla" | "Malayalam_Llla" | "Malayalam_Ssa" | "Manichaean_Aleph" | "Manichaean_Ayin" | "Manichaean_Beth" | "Manichaean_Daleth" | "Manichaean_Dhamedh" | "Manichaean_Five" | "Manichaean_Gimel" | "Manichaean_Heth" | "Manichaean_Hundred" | "Manichaean_Kaph" | "Manichaean_Lamedh" | "Manichaean_Mem" | "Manichaean_Nun" | "Manichaean_One" | "Manichaean_Pe" | "Manichaean_Qoph" | "Manichaean_Resh" | "Manichaean_Sadhe" | "Manichaean_Samekh" | "Manichaean_Taw" | "Manichaean_Ten" | "Manichaean_Teth" | "Manichaean_Thamedh" | "Manichaean_Twenty" | "Manichaean_Waw" | "Manichaean_Yodh" | "Manichaean_Zayin" | "Meem" | "Mim" | "No_Joining_Group" | "Noon" | "Nun" | "Nya" | "Pe" | "Qaf" | "Qaph" | "Reh" | "Reversed_Pe" | "Rohingya_Yeh" | "Sad" | "Sadhe" | "Seen" | "Semkath" | "Shin" | "Straight_Waw" | "Swash_Kaf" | "Syriac_Waw" | "Tah" | "Taw" | "Teh_Marbuta" | "Teh_Marbuta_Goal" | "Teth" | "Thin_Yeh" | "Vertical_Tail" | "Waw" | "Yeh" | "Yeh_Barree" | "Yeh_With_Tail" | "Yudh" | "Yudh_He" | "Zain" | "Zhain" }? code-point-attributes &= attribute Join_C { boolean }? code-point-attributes &= attribute lb { "AI" | "AK" | "AL" | "AP" | "AS" | "B2" | "BA" | "BB" | "BK" | "CB" | "CJ" | "CL" | "CM" | "CP" | "CR" | "EB" | "EM" | "EX" | "GL" | "H2" | "H3" | "HL" | "HY" | "ID" | "IN" | "IS" | "JL" | "JT" | "JV" | "LF" | "NL" | "NS" | "NU" | "OP" | "PO" | "PR" | "QU" | "RI" | "SA" | "SG" | "SP" | "SY" | "VF" | "VI" | "WJ" | "XX" | "ZW" | "ZWJ" }? code-point-attributes &= attribute ea { "A" | "F" | "H" | "N" | "Na" | "W" }? code-point-attributes &= attribute Upper { boolean }? code-point-attributes &= attribute Lower { boolean }? code-point-attributes &= attribute OUpper { boolean }? code-point-attributes &= attribute OLower { boolean }? code-point-attributes &= attribute suc { "#" | single-code-point }? code-point-attributes &= attribute slc { "#" | single-code-point }? code-point-attributes &= attribute stc { "#" | single-code-point }? code-point-attributes &= attribute uc { "#" | one-or-more-code-points }? code-point-attributes &= attribute lc { "#" | one-or-more-code-points }? code-point-attributes &= attribute tc { "#" | one-or-more-code-points }? code-point-attributes &= attribute scf { "#" | single-code-point }? code-point-attributes &= attribute cf { "#" | one-or-more-code-points }? code-point-attributes &= attribute CI { boolean }? code-point-attributes &= attribute Cased { boolean }? code-point-attributes &= attribute CWCF { boolean }? code-point-attributes &= attribute CWCM { boolean }? code-point-attributes &= attribute CWL { boolean }? code-point-attributes &= attribute CWKCF { boolean }? code-point-attributes &= attribute CWT { boolean }? code-point-attributes &= attribute CWU { boolean }? code-point-attributes &= attribute NFKC_CF { "#" | zero-or-more-code-points }? code-point-attributes &= attribute NFKC_SCF { "#" | zero-or-more-code-points }? script = "Adlm" | "Aghb" | "Ahom" | "Arab" | "Armi" | "Armn" | "Avst" | "Bali" | "Bamu" | "Bass" | "Batk" | "Beng" | "Bhks" | "Bopo" | "Brah" | "Brai" | "Bugi" | "Buhd" | "Cakm" | "Cans" | "Cari" | "Cham" | "Cher" | "Chrs" | "Copt" | "Cpmn" | "Cprt" | "Cyrl" | "Deva" | "Diak" | "Dogr" | "Dsrt" | "Dupl" | "Elba" | "Elym" | "Egyp" | "Ethi" | "Geor" | "Glag" | "Gong" | "Gonm" | "Goth" | "Gran" | "Grek" | "Gujr" | "Guru" | "Hang" | "Hani" | "Hano" | "Hatr" | "Hebr" | "Hira" | "Hluw" | "Hmng" | "Hmnp" | "Hrkt" | "Hung" | "Ital" | "Java" | "Kali" | "Kana" | "Kawi" | "Khar" | "Khmr" | "Khoj" | "Kits" | "Knda" | "Kthi" | "Lana" | "Laoo" | "Latn" | "Lepc" | "Limb" | "Lina" | "Linb" | "Lisu" | "Lyci" | "Lydi" | "Mahj" | "Maka" | "Mand" | "Mani" | "Marc" | "Medf" | "Mend" | "Merc" | "Mero" | "Mlym" | "Modi" | "Mong" | "Mroo" | "Mtei" | "Mult" | "Mymr" | "Nagm" | "Nand" | "Narb" | "Nbat" | "Newa" | "Nkoo" | "Nshu" | "Ogam" | "Olck" | "Orkh" | "Orya" | "Osge" | "Osma" | "Ougr" | "Palm" | "Pauc" | "Perm" | "Phag" | "Phli" | "Phlp" | "Phnx" | "Plrd" | "Prti" | "Qaai" | "Rohg" | "Rjng" | "Runr" | "Samr" | "Sarb" | "Saur" | "Sgnw" | "Shaw" | "Shrd" | "Sidd" | "Sind" | "Sinh" | "Sogd" | "Sogo" | "Sora" | "Soyo" | "Sund" | "Sylo" | "Syrc" | "Tagb" | "Takr" | "Tale" | "Talu" | "Taml" | "Tang" | "Tavt" | "Telu" | "Tfng" | "Tglg" | "Thaa" | "Thai" | "Tibt" | "Tirh" | "Tnsa" | "Toto" | "Ugar" | "Vaii" | "Vith" | "Wara" | "Wcho" | "Xpeo" | "Xsux" | "Yezi" | "Yiii" | "Zanb" | "Zinh" | "Zyyy" | "Zzzz" code-point-attributes &= attribute sc { script }? code-point-attributes &= attribute scx { list { script + }}? code-point-attributes &= attribute isc { text }? code-point-attributes &= attribute hst { "L" | "LV" | "LVT" | "T" | "V" | "NA" }? code-point-attributes &= attribute JSN { xsd:string { pattern="[A-Z]{0,3}" }}? code-point-attributes &= attribute InSC { "Avagraha" | "Bindu" | "Brahmi_Joining_Number" | "Cantillation_Mark" | "Consonant" | "Consonant_Dead" | "Consonant_Final" | "Consonant_Head_Letter" | "Consonant_Initial_Postfixed" | "Consonant_Killer" | "Consonant_Medial" | "Consonant_Placeholder" | "Consonant_Preceding_Repha" | "Consonant_Prefixed" | "Consonant_Repha" | "Consonant_Subjoined" | "Consonant_Succeeding_Repha" | "Consonant_With_Stacker" | "Gemination_Mark" | "Invisible_Stacker" | "Joiner" | "Modifying_Letter" | "Non_Joiner" | "Nukta" | "Number" | "Number_Joiner" | "Other" | "Pure_Killer" | "Register_Shifter" | "Syllable_Modifier" | "Tone_Letter" | "Tone_Mark" | "Virama" | "Visarga" | "Vowel" | "Vowel_Dependent" | "Vowel_Independent" }? code-point-attributes &= attribute InMC { "Right" | "Left" | "Visual_Order_Left" | "Left_And_Right" | "Top" | "Bottom" | "Top_And_Bottom" | "Top_And_Right" | "Top_And_Left" | "Top_And_Left_And_Right" | "Bottom_And_Right" | "Top_And_Bottom_And_Right" | "Overstruck" | "Invisible" | "NA" }? code-point-attributes &= attribute InPC { "Bottom" | "Bottom_And_Left" | "Bottom_And_Right" | "Left" | "Left_And_Right" | "NA" | "Overstruck" | "Right" | "Top" | "Top_And_Bottom" | "Top_And_Bottom_And_Left" | "Top_And_Bottom_And_Right" | "Top_And_Left" | "Top_And_Left_And_Right" | "Top_And_Right" | "Visual_Order_Left" }? code-point-attributes &= attribute InCB { "Consonant" | "Extend" | "Linker" | "None" }? code-point-attributes &= attribute IDS { boolean }? code-point-attributes &= attribute OIDS { boolean }? code-point-attributes &= attribute XIDS { boolean }? code-point-attributes &= attribute IDC { boolean }? code-point-attributes &= attribute OIDC { boolean }? code-point-attributes &= attribute XIDC { boolean }? code-point-attributes &= attribute ID_Compat_Math_Start { boolean }? code-point-attributes &= attribute ID_Compat_Math_Continue { boolean }? code-point-attributes &= attribute Pat_Syn { boolean }? code-point-attributes &= attribute Pat_WS { boolean }? code-point-attributes &= attribute Dash { boolean }? code-point-attributes &= attribute Hyphen { boolean }? code-point-attributes &= attribute QMark { boolean }? code-point-attributes &= attribute Term { boolean }? code-point-attributes &= attribute STerm { boolean }? code-point-attributes &= attribute Dia { boolean }? code-point-attributes &= attribute Ext { boolean }? code-point-attributes &= attribute PCM { boolean }? code-point-attributes &= attribute SD { boolean }? code-point-attributes &= attribute Alpha { boolean }? code-point-attributes &= attribute OAlpha { boolean }? code-point-attributes &= attribute Math { boolean }? code-point-attributes &= attribute OMath { boolean }? code-point-attributes &= attribute Hex { boolean }? code-point-attributes &= attribute AHex { boolean }? code-point-attributes &= attribute DI { boolean }? code-point-attributes &= attribute ODI { boolean }? code-point-attributes &= attribute LOE { boolean }? code-point-attributes &= attribute WSpace { boolean }? code-point-attributes &= attribute vo { "U" | "R" | "Tu" | "Tr" }? code-point-attributes &= attribute RI { boolean }? code-point-attributes &= attribute Gr_Base { boolean }? code-point-attributes &= attribute Gr_Ext { boolean }? code-point-attributes &= attribute OGr_Ext { boolean }? code-point-attributes &= attribute Gr_Link { boolean }? code-point-attributes &= attribute GCB { "CN" | "CR" | "EB" | "EBG" | "EM" | "EX" | "GAZ" | "L" | "LF" | "LV" | "LVT" | "PP" | "RI" | "SM" | "T" | "V" | "XX" | "ZWJ" }? code-point-attributes &= attribute WB { "CR" | "DQ" | "EB" | "EBG" | "EM" | "EX" | "Extend" | "FO" | "GAZ" | "HL" | "KA" | "LE" | "LF" | "MB" | "ML" | "MN" | "NL" | "NU" | "RI" | "SQ" | "WSegSpace" | "XX" | "ZWJ" }? code-point-attributes &= attribute SB { "AT" | "CL" | "CR" | "EX" | "FO" | "LE" | "LF" | "LO" | "NU" | "SC" | "SE" | "SP" | "ST" | "UP" | "XX" }? code-point-attributes &= attribute Ideo { boolean }? code-point-attributes &= attribute UIdeo { boolean }? code-point-attributes &= attribute EqUIdeo { single-code-point }? code-point-attributes &= attribute IDSB { boolean }? code-point-attributes &= attribute IDST { boolean }? code-point-attributes &= attribute IDSU { boolean }? code-point-attributes &= attribute Radical { boolean }? code-point-attributes &= attribute Dep { boolean }? code-point-attributes &= attribute VS { boolean }? code-point-attributes &= attribute NChar { boolean }? code-point-attributes &= attribute kAccountingNumeric { xsd:string {pattern="[0-9]+"} }? code-point-attributes &= attribute kAlternateHanYu { text }? #old code-point-attributes &= attribute kAlternateJEF { text }? #old code-point-attributes &= attribute kAlternateKangXi { text }? code-point-attributes &= attribute kAlternateMorohashi { text }? code-point-attributes &= attribute kAlternateTotalStrokes { "-" | list { xsd:string {pattern="[0-9]+:[BHJKMPSUV]+"} +}}? code-point-attributes &= attribute kBigFive { xsd:string {pattern="[0-9A-F]{4}'?"} }? code-point-attributes &= attribute kCCCII { xsd:string {pattern="[0-9A-F]{6}"} }? code-point-attributes &= attribute kCNS1986 { xsd:string {pattern="[12E]-[0-9A-F]{4}"} }? code-point-attributes &= attribute kCNS1992 { xsd:string {pattern="[123]-[0-9A-F]{4}"} }? code-point-attributes &= attribute kCangjie { xsd:string {pattern="[A-Z]+"} }? code-point-attributes &= attribute kCantonese { list { xsd:string {pattern="[a-z]+[1-6]"} +}}? code-point-attributes &= attribute kCheungBauer { text }? code-point-attributes &= attribute kCheungBauerIndex { list { xsd:string {pattern="[0-9]{3}\.[0-9]{2}"} +}}? code-point-attributes &= attribute kCihaiT { list { xsd:string {pattern="[1-9][0-9]{0,3}\.[0-9]{3}"} +}}? code-point-attributes &= attribute kCompatibilityVariant { "" | xsd:string {pattern="U\+2?[0-9A-F]{4}"} }? code-point-attributes &= attribute kCowles { list { xsd:string {pattern="[0-9]{1,4}(\.[0-9]{1,2})?"} +}}? code-point-attributes &= attribute kDaeJaweon { xsd:string {pattern="[0-9]{4}\.[0-9]{2}[0158]"} }? code-point-attributes &= attribute kDefinition { text }? code-point-attributes &= attribute kEACC { xsd:string {pattern="[0-9A-F]{6}"} }? code-point-attributes &= attribute kFenn { list { xsd:string {pattern="[0-9]+a?[A-KP*]"} +}}? code-point-attributes &= attribute kFennIndex { list { xsd:string {pattern="[0-9][0-9]{0,2}\.[01][0-9]"} +}}? code-point-attributes &= attribute kFourCornerCode { list { xsd:string {pattern="[0-9]{4}(\.[0-9])?"} +}}? code-point-attributes &= attribute kFrequency { xsd:string {pattern="[1-5]"} }? code-point-attributes &= attribute kGB0 { xsd:string {pattern="[0-9A-F]{4}"} }? code-point-attributes &= attribute kGB1 { xsd:string {pattern="[0-9A-F]{4}"} }? code-point-attributes &= attribute kGB3 { xsd:string {pattern="[0-9A-F]{4}"} }? code-point-attributes &= attribute kGB5 { xsd:string {pattern="[0-9A-F]{4}"} }? code-point-attributes &= attribute kGB7 { xsd:string {pattern="[0-9A-F]{4}"} }? code-point-attributes &= attribute kGB8 { xsd:string {pattern="[0-9]{4}"} }? code-point-attributes &= attribute kGradeLevel { xsd:string {pattern="[1-6]"} }? code-point-attributes &= attribute kGSR { list { xsd:string {pattern="[0-9]{4}[a-vx-z]'*"} +}}? code-point-attributes &= attribute kHangul { text }? code-point-attributes &= attribute kHanYu { list { xsd:string {pattern="[1-8][0-9]{4}\.[0-9]{2}[0-3]"} +}}? code-point-attributes &= attribute kHanyuPinlu { list { xsd:string {pattern="[a-z\x{300}-\x{302}\x{304}\x{308}\x{30C}]+\([0-9]+\)"} +}}? code-point-attributes &= attribute kHanyuPinyin { list { xsd:string {pattern="([0-9]{5}\.[0-9]{2}0,)*[0-9]{5}\.[0-9]{2}0:([a-z\x{300}-\x{302}\x{304}\x{308}\x{30C}]+,)*[a-z\x{300}-\x{302}\x{304}\x{308}\x{30C}]+"} +}}? code-point-attributes &= attribute kHDZRadBreak { xsd:string {pattern="[⼀-⿕]\[U\+2?[0-9A-F]{4}\]:[1-8][0-9]{4}\.[0-9]{2}[012]"} }? code-point-attributes &= attribute kHKGlyph { list { xsd:string {pattern="[0-9]{4}"} +}}? code-point-attributes &= attribute kHKSCS { xsd:string {pattern="[0-9A-F]{4}"} }? code-point-attributes &= attribute kIBMJapan { xsd:string {pattern="F[ABC][0-9A-F]{2}"} }? code-point-attributes &= attribute kIICore { xsd:string {pattern="[1-9]\.[1-9]"} | xsd:string {pattern="[ABC][GHJKMPT]{1,7}"} }? code-point-attributes &= attribute kIRGDaeJaweon { xsd:string {pattern="([0-9]{4}\.[0-9]{2}[01])|(0000\.555)"} }? code-point-attributes &= attribute kIRGDaiKanwaZiten { xsd:string {pattern="[0-9]{5}'?"} }? code-point-attributes &= attribute kIRGHanyuDaZidian { xsd:string {pattern="[1-8][0-9]{4}\.[0-3][0-9][01]"} }? code-point-attributes &= attribute kIRGKangXi { xsd:string {pattern="[01][0-9]{3}\.[0-7][0-9][01]"} }? code-point-attributes &= attribute kIRG_GSource { "" | xsd:string {pattern="(0|1|2|3|5|7|8|9|E|S|(4K)|(BK)|(CH)|(CY)|(FZ)|(FZ_BK)|(HC)|(HZ)|(KX)|(ZJW)|(ZFY)|(CYY)|(GJZ)|(XC)|(GH))(-)?([0-9A-F]{4,6})?"} | xsd:string {pattern="G0-[0-9A-F]{4}"} | xsd:string {pattern="G1-[0-9A-F]{4}"} | xsd:string {pattern="G3-[0-9A-F]{4}"} | xsd:string {pattern="G5-[0-9A-F]{4}"} | xsd:string {pattern="G7-[0-9A-F]{4}"} | xsd:string {pattern="GS-[0-9A-F]{4}"} | xsd:string {pattern="G8-[0-9A-F]{4}"} | xsd:string {pattern="G9-[0-9A-F]{4,8}"} | xsd:string {pattern="GE-[0-9A-F]{4}"} | xsd:string {pattern="G4K"} | xsd:string {pattern="G4K-[0-9A-F]{5}"} | xsd:string {pattern="GBK"} | xsd:string {pattern="GBK-[0-9]{4}\.[0-9]{2}"} | xsd:string {pattern="GCE-[0-9]{3}"} | xsd:string {pattern="GCH"} | xsd:string {pattern="GCH-[0-9]{4}\.[0-9]{2}"} | xsd:string {pattern="GCY"} | xsd:string {pattern="GCY-[0-9]{4}\.[0-9]{2}"} | xsd:string {pattern="GCYY-[0-9]{5}"} | xsd:string {pattern="GDM-[0-9]{5}"} | xsd:string {pattern="GDZ-[0-9]{4}\.[0-9]{2}"} | xsd:string {pattern="GFC-[0-9]{3}"} | xsd:string {pattern="GFZ"} | xsd:string {pattern="GFZ-[0-9A-F]{4,5}"} | xsd:string {pattern="GGFZ-[0-9]{6}"} | xsd:string {pattern="GGH-[0-9]{4}\.[0-9]{2}"} | xsd:string {pattern="GHC"} | xsd:string {pattern="GHC-[0-9]{4}\.[0-9]{2}"} | xsd:string {pattern="GHF-[0-9]{4}"} | xsd:string {pattern="GHZ"} | xsd:string {pattern="GHZ-[0-9]{5}\.[0-9]{2}"} | xsd:string {pattern="GHZR?-[0-9]{5}\.[0-9]{2}"} | xsd:string {pattern="GIDC-[0-9]{3}"} | xsd:string {pattern="GIDC23-[0-9]{3}"} | xsd:string {pattern="GJZ-[0-9]{5}"} | xsd:string {pattern="GK-[0-9A-F]{4}"} | xsd:string {pattern="GKJ-[0-9]{5}"} | xsd:string {pattern="GKX-[0-9]{4}\.[0-9]{2,3}"} | xsd:string {pattern="GLGYJ-[0-9]{4}"} | xsd:string {pattern="GLK-[0-9]{7}"} | xsd:string {pattern="GOCD-[0-9]{3}"} | xsd:string {pattern="GPGLG-[0-9]{4}"} | xsd:string {pattern="GRM-[0-9]{4}\.[0-9]{2}"} | xsd:string {pattern="GT-[0-9A-F]{4}"} | xsd:string {pattern="GU-[0-9A-F]{5}"} | xsd:string {pattern="GWZ-[0-9]{4}\.[0-9]{2}"} | xsd:string {pattern="GXC-[0-9]{4}\.[0-9]{2}"} | xsd:string {pattern="GXH-[0-9]{4}\.[0-9]{2}"} | xsd:string {pattern="GXHZ-[0-9]{3}"} | xsd:string {pattern="GXM-[0-9]{5}"} | xsd:string {pattern="GZ-[0-9]{7}"} | xsd:string {pattern="GZA-[0-9]{6}"} | xsd:string {pattern="GZFY-[0-9]{5}"} | xsd:string {pattern="GZH-[0-9]{4}\.[0-9]{2}"} | xsd:string {pattern="GZJW-[0-9]{5}"} | xsd:string {pattern="GZYS-[0-9]{5}"} }? code-point-attributes &= attribute kIRG_HSource { "" | xsd:string {pattern="[0-9A-F]{4}"} | xsd:string {pattern="H-[0-9A-F]{4}"} | xsd:string {pattern="H3-[0-9A-F]{4}"} | xsd:string {pattern="HB0-[0-9A-F]{4}"} | xsd:string {pattern="HB1-[0-9A-F]{4}"} | xsd:string {pattern="HB2-[0-9A-F]{4}"} | xsd:string {pattern="HD-[23]?[0-9A-F]{4}"} | xsd:string {pattern="HU-[0-9A-F]{5}"} }? code-point-attributes &= attribute kIRG_JSource { "" | xsd:string {pattern="(0|1|3|(3A)|4|A|(ARIB)|K)-[0-9A-F]{4,5}"} | xsd:string {pattern="J0-[0-9A-F]{4}"} | xsd:string {pattern="J1-[0-9A-F]{4}"} | xsd:string {pattern="J3-[0-9A-F]{4}"} | xsd:string {pattern="J3A-[0-9A-F]{4}"} | xsd:string {pattern="J4-[0-9A-F]{4}"} | xsd:string {pattern="J13-[0-9A-F]{4}"} | xsd:string {pattern="J13A-[0-9A-F]{4}"} | xsd:string {pattern="J14-[0-9A-F]{4}"} | xsd:string {pattern="JA-[0-9A-F]{4}"} | xsd:string {pattern="JA3-[0-9A-F]{4}"} | xsd:string {pattern="JA4-[0-9A-F]{4}"} | xsd:string {pattern="JH-[0-9A-Z]{6,7}"} | xsd:string {pattern="JK-[0-9]{5}"} | xsd:string {pattern="JARIB-[0-9A-F]{4}"} | xsd:string {pattern="JMJ-[0-9]{6}"} }? code-point-attributes &= attribute kIRG_KPSource { "" | xsd:string {pattern="KP0-[0-9A-F]{4}"} | xsd:string {pattern="KP1-[0-9A-F]{4}"} | xsd:string {pattern="KPU-[0-9A-F]{5}"} }? code-point-attributes &= attribute kIRG_KSource { "" | xsd:string {pattern="((0|1|2|3|4|5)-[0-9A-F]{4})|(KZ[0-9]{6})"} | xsd:string {pattern="K0-[0-9A-F]{4}"} | xsd:string {pattern="K1-[0-9A-F]{4}"} | xsd:string {pattern="K2-[0-9A-F]{4}"} | xsd:string {pattern="K3-[0-9A-F]{4}"} | xsd:string {pattern="K4-[0-9A-F]{4}"} | xsd:string {pattern="K5-[0-9A-F]{4}"} | xsd:string {pattern="K6-[0-9A-F]{4}"} | xsd:string {pattern="KC-[0-9]{5}"} | xsd:string {pattern="KU-[0-9A-F]{5}"} }? code-point-attributes &= attribute kIRG_MSource { "" | xsd:string {pattern="MAC[0-9]{5}"} | xsd:string {pattern="MAC-[0-9]{5}"} | xsd:string {pattern="MA-[0-9A-F]{4}"} | xsd:string {pattern="MB1-[0-9A-F]{4}"} | xsd:string {pattern="MB2-[0-9A-F]{4}"} | xsd:string {pattern="MC-[0-9]{5}"} | xsd:string {pattern="MD-[0-9A-F]{4,5}"} | xsd:string {pattern="MDH-[0-9A-F]{4,5}"} }? code-point-attributes &= attribute kIRG_SSource { "" | xsd:string {pattern="SAT-[0-9]{5}"} }? code-point-attributes &= attribute kIRG_TSource { "" | xsd:string {pattern="1-[0-9A-F]{4}"} | xsd:string {pattern="2-[0-9A-F]{4}"} | xsd:string {pattern="3-[0-9A-F]{4}"} | xsd:string {pattern="4-[0-9A-F]{4}"} | xsd:string {pattern="5-[0-9A-F]{4}"} | xsd:string {pattern="6-[0-9A-F]{4}"} | xsd:string {pattern="7-[0-9A-F]{4}"} | xsd:string {pattern="F-[0-9A-F]{4}"} | xsd:string {pattern="C-[0-9A-F]{4}"} | xsd:string {pattern="D-[0-9A-F]{4}"} | xsd:string {pattern="E-[0-9A-F]{4}"} | xsd:string {pattern="T1-[0-9A-F]{4}"} | xsd:string {pattern="T2-[0-9A-F]{4}"} | xsd:string {pattern="T3-[0-9A-F]{4}"} | xsd:string {pattern="T4-[0-9A-F]{4}"} | xsd:string {pattern="T5-[0-9A-F]{4}"} | xsd:string {pattern="T6-[0-9A-F]{4}"} | xsd:string {pattern="T7-[0-9A-F]{4}"} | xsd:string {pattern="T12-[0-9A-F]{4}"} | xsd:string {pattern="T13-[0-9A-F]{4}"} | xsd:string {pattern="TA-[0-9A-F]{4}"} | xsd:string {pattern="TB-[0-9A-F]{4}"} | xsd:string {pattern="TC-[0-9A-F]{4}"} | xsd:string {pattern="TD-[0-9A-F]{4}"} | xsd:string {pattern="TE-[0-9A-F]{4}"} | xsd:string {pattern="TF-[0-9A-F]{4}"} | xsd:string {pattern="TU-[0-9A-F]{5}"} }? code-point-attributes &= attribute kIRG_USource { "" | xsd:string {pattern="(U\+2?[0-9A-F]{4})|(UTC[0-9]{5})"} | xsd:string {pattern="UTC-[0-9]{5}"} | xsd:string {pattern="UCI-[0-9]{5}"} | xsd:string {pattern="USAT-[0-9]{5}"} }? code-point-attributes &= attribute kIRG_UKSource { "" | xsd:string {pattern="UK-[0-9]{5}"} }? code-point-attributes &= attribute kIRG_VSource { "" | xsd:string {pattern="(0|1|2|3|4)-[0-9A-F]{4}"} | xsd:string {pattern="V0-[0-9A-F]{4}"} | xsd:string {pattern="V1-[0-9A-F]{4}"} | xsd:string {pattern="V2-[0-9A-F]{4}"} | xsd:string {pattern="V3-[0-9A-F]{4}"} | xsd:string {pattern="V4-[0-9A-F]{4}"} | xsd:string {pattern="VN-[0-9A-F]{5}"} | xsd:string {pattern="VU-[0-9A-F]{4,5}"} }? code-point-attributes &= attribute kJa { xsd:string {pattern="[0-9A-F]{4}S?"} }? code-point-attributes &= attribute kJapanese { list { xsd:string {pattern="[ぁ-ゖ゙゚ァ-ヺー]+"} +}}? code-point-attributes &= attribute kJHJ { text }? code-point-attributes &= attribute kJinmeiyoKanji { xsd:string {pattern="(20[0-9]{2})(:U\+2?[0-9A-F]{4})?"} }? code-point-attributes &= attribute kJoyoKanji { xsd:string {pattern="(20[0-9]{2})|(U\+2?[0-9A-F]{4})?"} }? code-point-attributes &= attribute kKoreanEducationHanja { xsd:string {pattern="(20[0-9]{2})"} }? code-point-attributes &= attribute kKoreanName { xsd:string {pattern="(20[0-9]{2})(:U\+2?[0-9A-F]{4})*"} }? code-point-attributes &= attribute kTGH { xsd:string {pattern="20[0-9]{2}:[1-9][0-9]{0,3}"} }? code-point-attributes &= attribute kJIS0213 { xsd:string {pattern="[12],[0-9]{2},[0-9]{1,2}"} }? code-point-attributes &= attribute kJapaneseKun { list { xsd:string {pattern="[A-Z]+"}+ } }? code-point-attributes &= attribute kJapaneseOn { list { xsd:string {pattern="[A-Z]+"}+ } }? code-point-attributes &= attribute kJis0 { xsd:string {pattern="[0-9]{4}"} }? code-point-attributes &= attribute kJis1 { xsd:string {pattern="[0-9]{4}"} }? code-point-attributes &= attribute kKPS0 { xsd:string {pattern="[0-9A-F]{4}"} }? code-point-attributes &= attribute kKPS1 { xsd:string {pattern="[0-9A-F]{4}"} }? code-point-attributes &= attribute kKSC0 { xsd:string {pattern="[0-9]{4}"} }? code-point-attributes &= attribute kKSC1 { xsd:string {pattern="[0-9]{4}"} }? code-point-attributes &= attribute kKangXi { list { xsd:string {pattern="[0-9]{4}\.[0-9]{2}[01]"} +}}? code-point-attributes &= attribute kKarlgren { xsd:string {pattern="[1-9][0-9]{0,3}[A*]?"} }? code-point-attributes &= attribute kKorean { list { xsd:string {pattern="[A-Z]+"} +}}? code-point-attributes &= attribute kLau { list { xsd:string {pattern="[1-9][0-9]{0,3}"} +}}? code-point-attributes &= attribute kMainlandTelegraph { xsd:string {pattern="[0-9]{4}"} }? code-point-attributes &= attribute kMandarin { list { xsd:string {pattern="[A-ZÜ\x{308}]+[1-5]"} | xsd:string {pattern="[a-z\x{300}-\x{302}\x{304}\x{308}\x{30C}]+"} +}}? code-point-attributes &= attribute kMatthews { xsd:string {pattern="[0-9]{1,4}(a|\.5)?"} }? code-point-attributes &= attribute kMeyerWempe { list { xsd:string {pattern="[1-9][0-9]{0,3}[a-t*]?"} +}}? code-point-attributes &= attribute kMojiJoho { list { xsd:string {pattern="MJ[0-9]{6}(:(FE0[01]|E01[01][0-9A-F]))?"} +}}? code-point-attributes &= attribute kMorohashi { list { xsd:string {pattern="([0-9]{5}'{0,2}|H[0-9]{3})(:(FE0[01]|E010[0-9A-F]))?"} +}}? code-point-attributes &= attribute kNelson { list { xsd:string {pattern="[0-9]{4}"} +}}? code-point-attributes &= attribute kOtherNumeric { list { xsd:string {pattern="[0-9]+"} +}}? code-point-attributes &= attribute kPhonetic { list { xsd:string {pattern="[1-9][0-9]{0,3}[A-Dx]?\*?"} +}}? code-point-attributes &= attribute kPrimaryNumeric { list { xsd:string {pattern="[0-9]+"} +}}? code-point-attributes &= attribute kPseudoGB1 { xsd:string {pattern="[0-9]{4}"} }? code-point-attributes &= attribute kRSAdobe_Japan1_6 { list { xsd:string {pattern="[CV]\+[0-9]{1,5}\+[1-9][0-9]{0,2}\.[1-9][0-9]?\.[0-9]{1,2}"} +}}? code-point-attributes &= attribute kRSJapanese { xsd:string {pattern="[0-9]{1,3}\.[0-9]{1,2}"} }? code-point-attributes &= attribute kRSKanWa { xsd:string {pattern="[0-9]{1,3}\.[0-9]{1,2}"} }? code-point-attributes &= attribute kRSKangXi { xsd:string {pattern="[0-9]{1,3}\.\-?[0-9]{1,2}"} }? code-point-attributes &= attribute kRSKorean { xsd:string {pattern="[0-9]{1,3}\.[0-9]{1,2}"} }? code-point-attributes &= attribute kRSMerged { text }? code-point-attributes &= attribute kRSUnicode { list { xsd:string {pattern="[0-9]{1,3}'{0,2}\.\-?[0-9]{1,2}"} +}}? code-point-attributes &= attribute kSBGY { list { xsd:string {pattern="[0-9]{3}\.[0-9]{2}"} +}}? code-point-attributes &= attribute kSemanticVariant { list { xsd:string {pattern="U\+[0-9A-F]{4,5}(<[ks][A-Za-z0-9]+(:[TBZJF]+)?(,[ks][A-Za-z0-9]+(:[TBZJF]+)?)*)?"} +}}? code-point-attributes &= attribute kSimplifiedVariant { list { xsd:string {pattern="U\+[0-9A-F]{4,5}"} +}}? code-point-attributes &= attribute kSMSZD2003Index { list { xsd:string {pattern="[0-9]{1,3}\.[0-9]{2}"} +}}? code-point-attributes &= attribute kSMSZD2003Readings { list { xsd:string {pattern="[a-z\x{300}-\x{302}\x{304}\x{308}\x{30C}]+(,[a-z\x{300}-\x{302}\x{304}\x{308}\x{30C}]+)*粵[a-z]+[1-6]([a-z]+[1-6])?(,[a-z]+[1-6]([a-z]+[1-6])?)*"} +}}? code-point-attributes &= attribute kSpecializedSemanticVariant { list { xsd:string {pattern="U\+[0-9A-F]{4,5}(<[ks][A-Za-z0-9]+(:[TBZJF]+)?(,[ks][A-Za-z0-9]+(:[TBZJF]+)?)*)?"} +}}? code-point-attributes &= attribute kSpoofingVariant { list { xsd:string {pattern="U\+[0-9A-F]{4,5}"} + }}? code-point-attributes &= attribute kTaiwanTelegraph { list { xsd:string {pattern="[0-9]{4}"} +}}? code-point-attributes &= attribute kTang { list { xsd:string {pattern="\*?[A-Za-z\(\)æɑəɛ\x{300}\x{30C}]+"} +}}? code-point-attributes &= attribute kTGHZ2013 { text }? code-point-attributes &= attribute kTotalStrokes { list { xsd:string {pattern="[1-9][0-9]{0,2}"} +}}? code-point-attributes &= attribute kTraditionalVariant { list { xsd:string {pattern="U\+[0-9A-F]{4,5}"} +}}? code-point-attributes &= attribute kUnihanCore2020 { xsd:string {pattern="G?H?J?K?M?P?T?"} }? code-point-attributes &= attribute kVietnamese { list { xsd:string {pattern="[A-Za-zà-ư\x{300}-\x{306}\x{309}\x{31b}\x{323}ạ-ỹ]+"} +}}? code-point-attributes &= attribute kVietnameseNumeric { xsd:string {pattern="[0-9]+"} }? code-point-attributes &= attribute kXerox { xsd:string {pattern="[0-9]{3}:[0-9]{3}"} }? code-point-attributes &= attribute kXHC1983 { list { xsd:string {pattern="[0-9,.*]+:[a-zǜ́̄̈̌]+"} +}} ? code-point-attributes &= attribute kZhuangNumeric { xsd:string {pattern="[0-9]+"} }? code-point-attributes &= attribute kZVariant { list { xsd:string {pattern="U\+[23]?[0-9A-F]{4}((<[ks][A-Za-z0-9]+(:[TBZ]+)?(,[ks][A-Za-z0-9]+(:[TBZ]+)?)*)|(:k[A-Za-z]+))?"} +}} ? code-point-attributes &= attribute kStrange { list { ( xsd:string {pattern="A"} | xsd:string {pattern="B(:U\+[0-9A-F]{4,5})"} | xsd:string {pattern="C"} | xsd:string {pattern="F(:U\+[0-9A-F]{4,5})?"} | xsd:string {pattern="H(:U\+[0-9A-F]{4,5})"} | xsd:string {pattern="I(:U\+[0-9A-F]{4,5})*"} | xsd:string {pattern="K(:U\+[0-9A-F]{4,5})+"} | xsd:string {pattern="M(:U\+[0-9A-F]{4,5})?"} | xsd:string {pattern="O(:U\+[0-9A-F]{4,5})?"} | xsd:string {pattern="R(:U\+[0-9A-F]{4,5})?"} | xsd:string {pattern="S(:[4-9][0-9])"} | xsd:string {pattern="U"} ) + }}? code-point-attributes &= attribute kRSTUnicode { xsd:string {pattern="[0-9]+\.[0-9]+"} }? code-point-attributes &= attribute kTGT_MergedSrc { xsd:string {pattern="L2008-[0-9A-F]{4,5}(-[0-9]{4,5})?"} | xsd:string {pattern="L2006-[0-9]{4}"} | xsd:string {pattern="L1997-[0-9]{4}"} | xsd:string {pattern="L1986-[0-9]{4}"} | xsd:string {pattern="S1968-[0-9]{4}"} | xsd:string {pattern="N1966-[0-9]{3}(-[0-9A-Z]{3,4})?"} | xsd:string {pattern="H2004-[A-Z]-[0-9]{4}"} | xsd:string {pattern="L2012-[0-9]{4}"} | xsd:string {pattern="UTN42-[0-9]{3}"} }? code-point-attributes &= attribute kSrc_NushuDuben { xsd:string {pattern="[0-9]+\.[0-9]+"} }? code-point-attributes &= attribute kReading { xsd:string }? ucd.content &= element blocks { element block { attribute first-cp { single-code-point }, attribute last-cp { single-code-point }, attribute name { text }} + }? ucd.content &= element named-sequences { element named-sequence { attribute cps { one-or-more-code-points }, attribute name { text }} + }? ucd.content &= element provisional-named-sequences { element named-sequence { attribute cps { one-or-more-code-points }, attribute name { text }} + }? ucd.content &= element normalization-corrections { element normalization-correction { attribute cp { single-code-point }, attribute old { one-or-more-code-points }, attribute new { one-or-more-code-points }, attribute version { text }} + }? ucd.content &= element standardized-variants { element standardized-variant { attribute cps { two-code-points }, attribute desc { text }, attribute when { text }} + }? ucd.content &= element cjk-radicals { element cjk-radical { attribute number { xsd:string {pattern="[0-9]{1,3}'{0,2}"}}, attribute radical { single-code-point? }, attribute ideograph { single-code-point }} + }? ucd.content &= element emoji-sources { element emoji-source { attribute unicode { one-or-more-code-points }, attribute docomo { jis-code-point? }, attribute kddi { jis-code-point? }, attribute softbank { jis-code-point? } } + }? code-point-attributes &= attribute Emoji { boolean }? code-point-attributes &= attribute EPres { boolean }? code-point-attributes &= attribute EMod { boolean }? code-point-attributes &= attribute EBase { boolean }? code-point-attributes &= attribute EComp { boolean }? code-point-attributes &= attribute ExtPict { boolean }?