Welcome to mirror list, hosted at ThFree Co, Russian Federation.

XmlChar.cs « System.Xml « System.XML « class « mcs - github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 2ea00dd857207764a654e270e708c4ed9160812a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
// -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
//
// System.Xml.XmlChar.cs
//
// Author:
//   Jason Diamond (jason@injektilo.org)
//
// (C) 2001 Jason Diamond  http://injektilo.org/
//

namespace System.Xml
{
	internal class XmlChar
	{
		internal static bool IsWhitespace(int ch)
		{
			return ch == 0x20 || ch == 0x9 || ch == 0xD || ch == 0xA;
		}

		internal static bool IsFirstNameChar(int ch)
		{
			bool result = false;

			if (ch >= 0 && ch <= 0xFFFF)
			{
				result = (nameBitmap[(firstNamePages[ch >> 8] << 3) + ((ch & 0xFF) >> 5)] & (1 << (ch & 0x1F))) != 0;
			}

			return result;
		}

		internal static bool IsNameChar(int ch)
		{
			bool result = false;

			if (ch >= 0 && ch <= 0xFFFF)
			{
				result = (nameBitmap[(namePages[ch >> 8] << 3) + ((ch & 0xFF) >> 5)] & (1 << (ch & 0x1F))) != 0;
			}

			return result;
		}

		private static byte[] firstNamePages =
		{
			0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00,
			0x00, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
			0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13,
			0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x15, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
		};

		private static byte[] namePages =
		{
			0x19, 0x03, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x00,
			0x00, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,
			0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13,
			0x26, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x27, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
			0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
		};

		private static uint[] nameBitmap =
		{
			0x00000000, 0x00000000, 0x00000000, 0x00000000,
			0x00000000, 0x00000000, 0x00000000, 0x00000000,
			0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
			0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
			0x00000000, 0x04000000, 0x87FFFFFE, 0x07FFFFFE,
			0x00000000, 0x00000000, 0xFF7FFFFF, 0xFF7FFFFF,
			0xFFFFFFFF, 0x7FF3FFFF, 0xFFFFFDFE, 0x7FFFFFFF,
			0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE00F, 0xFC31FFFF,
			0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,
			0xFFFFFFFF, 0xF80001FF, 0x00000003, 0x00000000,
			0x00000000, 0x00000000, 0x00000000, 0x00000000,
			0xFFFFD740, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD,
			0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF,
			0xFFFF0003, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF,
			0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,
			0x0000007F, 0x00000000, 0xFFFF0000, 0x000707FF,
			0x00000000, 0x07FFFFFE, 0x000007FE, 0xFFFE0000,
			0xFFFFFFFF, 0x7CFFFFFF, 0x002F7FFF, 0x00000060,
			0xFFFFFFE0, 0x23FFFFFF, 0xFF000000, 0x00000003,
			0xFFF99FE0, 0x03C5FDFF, 0xB0000000, 0x00030003,
			0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
			0xFFFBAFE0, 0x23EDFDFF, 0x00000000, 0x00000001,
			0xFFF99FE0, 0x23CDFDFF, 0xB0000000, 0x00000003,
			0xD63DC7E0, 0x03BFC718, 0x00000000, 0x00000000,
			0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x00000003,
			0xFFFDDFE0, 0x03EFFDFF, 0x40000000, 0x00000003,
			0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x00000003,
			0x00000000, 0x00000000, 0x00000000, 0x00000000,
			0xFFFFFFFE, 0x000D7FFF, 0x0000003F, 0x00000000,
			0xFEF02596, 0x200D6CAE, 0x0000001F, 0x00000000,
			0x00000000, 0x00000000, 0xFFFFFEFF, 0x000003FF,
			0x00000000, 0x00000000, 0x00000000, 0x00000000,
			0x00000000, 0x00000000, 0x00000000, 0x00000000,
			0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x007FFFFF,
			0x0007DAED, 0x50000000, 0x82315001, 0x002C62AB,
			0x40000000, 0xF580C900, 0x00000007, 0x02010800,
			0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
			0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
			0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
			0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
			0x00000000, 0x00004C40, 0x00000000, 0x00000000,
			0x00000007, 0x00000000, 0x00000000, 0x00000000,
			0x00000080, 0x000003FE, 0xFFFFFFFE, 0xFFFFFFFF,
			0x001FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x07FFFFFF,
			0xFFFFFFE0, 0x00001FFF, 0x00000000, 0x00000000,
			0x00000000, 0x00000000, 0x00000000, 0x00000000,
			0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
			0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
			0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
			0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
			0x00000000, 0x07FF6000, 0x87FFFFFE, 0x07FFFFFE,
			0x00000000, 0x00800000, 0xFF7FFFFF, 0xFF7FFFFF,
			0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,
			0xFFFFFFFF, 0xF80001FF, 0x00030003, 0x00000000,
			0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000003,
			0xFFFFD7C0, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD,
			0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF,
			0xFFFF007B, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF,
			0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,
			0xFFFE007F, 0xBBFFFFFB, 0xFFFF0016, 0x000707FF,
			0x00000000, 0x07FFFFFE, 0x0007FFFF, 0xFFFF03FF,
			0xFFFFFFFF, 0x7CFFFFFF, 0xFFEF7FFF, 0x03FF3DFF,
			0xFFFFFFEE, 0xF3FFFFFF, 0xFF1E3FFF, 0x0000FFCF,
			0xFFF99FEE, 0xD3C5FDFF, 0xB080399F, 0x0003FFCF,
			0xFFF987E4, 0xD36DFDFF, 0x5E003987, 0x001FFFC0,
			0xFFFBAFEE, 0xF3EDFDFF, 0x00003BBF, 0x0000FFC1,
			0xFFF99FEE, 0xF3CDFDFF, 0xB0C0398F, 0x0000FFC3,
			0xD63DC7EC, 0xC3BFC718, 0x00803DC7, 0x0000FF80,
			0xFFFDDFEE, 0xC3EFFDFF, 0x00603DDF, 0x0000FFC3,
			0xFFFDDFEC, 0xC3EFFDFF, 0x40603DDF, 0x0000FFC3,
			0xFFFDDFEC, 0xC3FFFDFF, 0x00803DCF, 0x0000FFC3,
			0x00000000, 0x00000000, 0x00000000, 0x00000000,
			0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FFF, 0x00000000,
			0xFEF02596, 0x3BFF6CAE, 0x03FF3F5F, 0x00000000,
			0x03000000, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE03FF,
			0xFEBF0FDF, 0x02FE3FFF, 0x00000000, 0x00000000,
			0x00000000, 0x00000000, 0x00000000, 0x00000000,
			0x00000000, 0x00000000, 0x1FFF0000, 0x00000002,
			0x000000A0, 0x003EFFFE, 0xFFFFFFFE, 0xFFFFFFFF,
			0x661FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x77FFFFFF
		};
	}
}