genx4r 0.04

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGES ADDED
@@ -0,0 +1,31 @@
1
+ [ Changes for 0.04 - Oct 1, 2004 ]
2
+
3
+ * Ruby 1.6.8 compatability. Really. I mean it this time. Sigh.
4
+ * Update to latest genx, fixes a memory leak in genxDispose.
5
+ * Added a gemspec for RubyGems installation.
6
+
7
+ [ Changes for 0.03 - Jul 11, 2004 ]
8
+
9
+ * Use a slightly modified version of setup.rb for build/install/tests
10
+ instead of manually running extconf.rb for build/install and rake for
11
+ tests. This required a rather massive reorganization of the source
12
+ tree. Thank $DIETY for 'svn move' ;-)
13
+
14
+ * Don't require IO or StringIO objects for GenX::Writer#document, instead
15
+ just require that the object responds to the #<< method.
16
+ Suggested by Christian Neukirchen <chneukirchen at gmail.com>.
17
+
18
+ * Add #begin_document, #end_document, #begin_element, and #end_element
19
+ methods to GenX::Writer, since it's sometimes inconvenient to make use
20
+ of blocks when creating documents and elements.
21
+ Suggested by Christian Neukirchen <chneukirchen at gmail.com>.
22
+
23
+ [ Changes for 0.02 - Jun 16, 2004 ]
24
+
25
+ * Ruby 1.6.8 compatability.
26
+
27
+ * Added CHANGES file ;-)
28
+
29
+ [ Changes for 0.01 - Jun 13, 2004 ]
30
+
31
+ * Initial release.
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2004 Garrett Rooney
2
+
3
+ genx Copyright (c) Tim Bray and Sun Microsystems, 2004.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included
14
+ in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
17
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
18
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README ADDED
@@ -0,0 +1,31 @@
1
+ This is GenX4r, a Ruby extension that wraps Tim Bray's genx library for
2
+ generating correct, cannonical xml.
3
+
4
+ For more information on genx itself please refer to it's web page at:
5
+
6
+ http://www.tbray.org/ongoing/When/200x/2004/02/20/GenxStatus
7
+
8
+ GenX4r should build through the fairly standard setup.rb process...
9
+
10
+ $ ruby setup.rb config
11
+ $ ruby setup.rb setup
12
+
13
+ Once you've compiled it, run the unit tests via 'ruby setup.rb check'
14
+ to confirm that GenX4r is functioning properly, then feel free to install
15
+ it via 'ruby setup.rb install' and let me know what you think!
16
+
17
+ GenX4r is made available under the same license as genx, see the LICENSE
18
+ file for more details.
19
+
20
+ setup.rb is under the LGPL, see it's web page at
21
+
22
+ http://i.loveruby.net/en/prog/setup.html
23
+
24
+ for details.
25
+
26
+ There is currently no real documentation on how to use GenX4r, but until
27
+ that changes the unit tests should provide a useful introduction.
28
+
29
+ Please direct any questions to the author,
30
+
31
+ Garrett Rooney <rooneg@electricjellyfish.net>
data/TODO ADDED
@@ -0,0 +1,6 @@
1
+ What do we do if the writer goes out of scope and is GC'd before the
2
+ namespaces, elements, and attributes that were declared with it?
3
+
4
+ Documentation.
5
+
6
+ More unit tests, lots more unit tests...
@@ -0,0 +1,5 @@
1
+ charProps.c
2
+ extconf.rb
3
+ genx.c
4
+ genx.h
5
+ genx4r.c
@@ -0,0 +1,378 @@
1
+ /*
2
+ * Copyright (c) 2004 by Tim Bray and Sun Microsystems. For copying
3
+ * permission, see http://www.tbray.org/ongoing/genx/COPYING
4
+ */
5
+
6
+ /*
7
+ * Construct character-properties tables for genx.
8
+ * Quite likely there's a better way.
9
+ * This version is generated semi-automatically from the source code of the
10
+ * XML specification via emacs global replace and keyboard macros
11
+ */
12
+ #include "genx.h"
13
+
14
+ static void charProp(char * p, int c, int prop)
15
+ {
16
+ p[c] |= prop;
17
+ }
18
+
19
+ static void rangeProp(char * p, int start, int end, int prop)
20
+ {
21
+ int i;
22
+ for (i = start; i <= end; i++)
23
+ p[i] |= prop;
24
+ }
25
+
26
+ void genxSetCharProps(char * p)
27
+ {
28
+ int i;
29
+
30
+ for (i = 0; i <= 0xffff; i++)
31
+ p[i] = 0;
32
+
33
+ /* per XML 1.0 */
34
+ charProp(p, 0x9, GENX_XML_CHAR);
35
+ charProp(p, 0xa, GENX_XML_CHAR);
36
+ charProp(p, 0xd, GENX_XML_CHAR);
37
+ rangeProp(p, 0x20, 0xd7ff, GENX_XML_CHAR);
38
+ rangeProp(p, 0xe000, 0xfffd, GENX_XML_CHAR);
39
+
40
+ /* Letter ::= BaseChar | Ideographic */
41
+ rangeProp(p, 0x0041, 0x005A, GENX_LETTER|GENX_NAMECHAR);
42
+ rangeProp(p, 0x0061, 0x007A, GENX_LETTER|GENX_NAMECHAR);
43
+ rangeProp(p, 0x00C0, 0x00D6, GENX_LETTER|GENX_NAMECHAR);
44
+ rangeProp(p, 0x00D8, 0x00F6, GENX_LETTER|GENX_NAMECHAR);
45
+ rangeProp(p, 0x00F8, 0x00FF, GENX_LETTER|GENX_NAMECHAR);
46
+ rangeProp(p, 0x0100, 0x0131, GENX_LETTER|GENX_NAMECHAR);
47
+ rangeProp(p, 0x0134, 0x013E, GENX_LETTER|GENX_NAMECHAR);
48
+ rangeProp(p, 0x0141, 0x0148, GENX_LETTER|GENX_NAMECHAR);
49
+ rangeProp(p, 0x014A, 0x017E, GENX_LETTER|GENX_NAMECHAR);
50
+ rangeProp(p, 0x0180, 0x01C3, GENX_LETTER|GENX_NAMECHAR);
51
+ rangeProp(p, 0x01CD, 0x01F0, GENX_LETTER|GENX_NAMECHAR);
52
+ rangeProp(p, 0x01F4, 0x01F5, GENX_LETTER|GENX_NAMECHAR);
53
+ rangeProp(p, 0x01FA, 0x0217, GENX_LETTER|GENX_NAMECHAR);
54
+ rangeProp(p, 0x0250, 0x02A8, GENX_LETTER|GENX_NAMECHAR);
55
+ rangeProp(p, 0x02BB, 0x02C1, GENX_LETTER|GENX_NAMECHAR);
56
+ charProp(p, 0x0386, GENX_LETTER|GENX_NAMECHAR);
57
+ rangeProp(p, 0x0388, 0x038A, GENX_LETTER|GENX_NAMECHAR);
58
+ charProp(p, 0x038C, GENX_LETTER|GENX_NAMECHAR);
59
+ rangeProp(p, 0x038E, 0x03A1, GENX_LETTER|GENX_NAMECHAR);
60
+ rangeProp(p, 0x03A3, 0x03CE, GENX_LETTER|GENX_NAMECHAR);
61
+ rangeProp(p, 0x03D0, 0x03D6, GENX_LETTER|GENX_NAMECHAR);
62
+ charProp(p, 0x03DA, GENX_LETTER|GENX_NAMECHAR);
63
+ charProp(p, 0x03DC, GENX_LETTER|GENX_NAMECHAR);
64
+ charProp(p, 0x03DE, GENX_LETTER|GENX_NAMECHAR);
65
+ charProp(p, 0x03E0, GENX_LETTER|GENX_NAMECHAR);
66
+ rangeProp(p, 0x03E2, 0x03F3, GENX_LETTER|GENX_NAMECHAR);
67
+ rangeProp(p, 0x0401, 0x040C, GENX_LETTER|GENX_NAMECHAR);
68
+ rangeProp(p, 0x040E, 0x044F, GENX_LETTER|GENX_NAMECHAR);
69
+ rangeProp(p, 0x0451, 0x045C, GENX_LETTER|GENX_NAMECHAR);
70
+ rangeProp(p, 0x045E, 0x0481, GENX_LETTER|GENX_NAMECHAR);
71
+ rangeProp(p, 0x0490, 0x04C4, GENX_LETTER|GENX_NAMECHAR);
72
+ rangeProp(p, 0x04C7, 0x04C8, GENX_LETTER|GENX_NAMECHAR);
73
+ rangeProp(p, 0x04CB, 0x04CC, GENX_LETTER|GENX_NAMECHAR);
74
+ rangeProp(p, 0x04D0, 0x04EB, GENX_LETTER|GENX_NAMECHAR);
75
+ rangeProp(p, 0x04EE, 0x04F5, GENX_LETTER|GENX_NAMECHAR);
76
+ rangeProp(p, 0x04F8, 0x04F9, GENX_LETTER|GENX_NAMECHAR);
77
+ rangeProp(p, 0x0531, 0x0556, GENX_LETTER|GENX_NAMECHAR);
78
+ charProp(p, 0x0559, GENX_LETTER|GENX_NAMECHAR);
79
+ rangeProp(p, 0x0561, 0x0586, GENX_LETTER|GENX_NAMECHAR);
80
+ rangeProp(p, 0x05D0, 0x05EA, GENX_LETTER|GENX_NAMECHAR);
81
+ rangeProp(p, 0x05F0, 0x05F2, GENX_LETTER|GENX_NAMECHAR);
82
+ rangeProp(p, 0x0621, 0x063A, GENX_LETTER|GENX_NAMECHAR);
83
+ rangeProp(p, 0x0641, 0x064A, GENX_LETTER|GENX_NAMECHAR);
84
+ rangeProp(p, 0x0671, 0x06B7, GENX_LETTER|GENX_NAMECHAR);
85
+ rangeProp(p, 0x06BA, 0x06BE, GENX_LETTER|GENX_NAMECHAR);
86
+ rangeProp(p, 0x06C0, 0x06CE, GENX_LETTER|GENX_NAMECHAR);
87
+ rangeProp(p, 0x06D0, 0x06D3, GENX_LETTER|GENX_NAMECHAR);
88
+ charProp(p, 0x06D5, GENX_LETTER|GENX_NAMECHAR);
89
+ rangeProp(p, 0x06E5, 0x06E6, GENX_LETTER|GENX_NAMECHAR);
90
+ rangeProp(p, 0x0905, 0x0939, GENX_LETTER|GENX_NAMECHAR);
91
+ charProp(p, 0x093D, GENX_LETTER|GENX_NAMECHAR);
92
+ rangeProp(p, 0x0958, 0x0961, GENX_LETTER|GENX_NAMECHAR);
93
+ rangeProp(p, 0x0985, 0x098C, GENX_LETTER|GENX_NAMECHAR);
94
+ rangeProp(p, 0x098F, 0x0990, GENX_LETTER|GENX_NAMECHAR);
95
+ rangeProp(p, 0x0993, 0x09A8, GENX_LETTER|GENX_NAMECHAR);
96
+ rangeProp(p, 0x09AA, 0x09B0, GENX_LETTER|GENX_NAMECHAR);
97
+ charProp(p, 0x09B2, GENX_LETTER|GENX_NAMECHAR);
98
+ rangeProp(p, 0x09B6, 0x09B9, GENX_LETTER|GENX_NAMECHAR);
99
+ rangeProp(p, 0x09DC, 0x09DD, GENX_LETTER|GENX_NAMECHAR);
100
+ rangeProp(p, 0x09DF, 0x09E1, GENX_LETTER|GENX_NAMECHAR);
101
+ rangeProp(p, 0x09F0, 0x09F1, GENX_LETTER|GENX_NAMECHAR);
102
+ rangeProp(p, 0x0A05, 0x0A0A, GENX_LETTER|GENX_NAMECHAR);
103
+ rangeProp(p, 0x0A0F, 0x0A10, GENX_LETTER|GENX_NAMECHAR);
104
+ rangeProp(p, 0x0A13, 0x0A28, GENX_LETTER|GENX_NAMECHAR);
105
+ rangeProp(p, 0x0A2A, 0x0A30, GENX_LETTER|GENX_NAMECHAR);
106
+ rangeProp(p, 0x0A32, 0x0A33, GENX_LETTER|GENX_NAMECHAR);
107
+ rangeProp(p, 0x0A35, 0x0A36, GENX_LETTER|GENX_NAMECHAR);
108
+ rangeProp(p, 0x0A38, 0x0A39, GENX_LETTER|GENX_NAMECHAR);
109
+ rangeProp(p, 0x0A59, 0x0A5C, GENX_LETTER|GENX_NAMECHAR);
110
+ charProp(p, 0x0A5E, GENX_LETTER|GENX_NAMECHAR);
111
+ rangeProp(p, 0x0A72, 0x0A74, GENX_LETTER|GENX_NAMECHAR);
112
+ rangeProp(p, 0x0A85, 0x0A8B, GENX_LETTER|GENX_NAMECHAR);
113
+ charProp(p, 0x0A8D, GENX_LETTER|GENX_NAMECHAR);
114
+ rangeProp(p, 0x0A8F, 0x0A91, GENX_LETTER|GENX_NAMECHAR);
115
+ rangeProp(p, 0x0A93, 0x0AA8, GENX_LETTER|GENX_NAMECHAR);
116
+ rangeProp(p, 0x0AAA, 0x0AB0, GENX_LETTER|GENX_NAMECHAR);
117
+ rangeProp(p, 0x0AB2, 0x0AB3, GENX_LETTER|GENX_NAMECHAR);
118
+ rangeProp(p, 0x0AB5, 0x0AB9, GENX_LETTER|GENX_NAMECHAR);
119
+ charProp(p, 0x0ABD, GENX_LETTER|GENX_NAMECHAR);
120
+ charProp(p, 0x0AE0, GENX_LETTER|GENX_NAMECHAR);
121
+ rangeProp(p, 0x0B05, 0x0B0C, GENX_LETTER|GENX_NAMECHAR);
122
+ rangeProp(p, 0x0B0F, 0x0B10, GENX_LETTER|GENX_NAMECHAR);
123
+ rangeProp(p, 0x0B13, 0x0B28, GENX_LETTER|GENX_NAMECHAR);
124
+ rangeProp(p, 0x0B2A, 0x0B30, GENX_LETTER|GENX_NAMECHAR);
125
+ rangeProp(p, 0x0B32, 0x0B33, GENX_LETTER|GENX_NAMECHAR);
126
+ rangeProp(p, 0x0B36, 0x0B39, GENX_LETTER|GENX_NAMECHAR);
127
+ charProp(p, 0x0B3D, GENX_LETTER|GENX_NAMECHAR);
128
+ rangeProp(p, 0x0B5C, 0x0B5D, GENX_LETTER|GENX_NAMECHAR);
129
+ rangeProp(p, 0x0B5F, 0x0B61, GENX_LETTER|GENX_NAMECHAR);
130
+ rangeProp(p, 0x0B85, 0x0B8A, GENX_LETTER|GENX_NAMECHAR);
131
+ rangeProp(p, 0x0B8E, 0x0B90, GENX_LETTER|GENX_NAMECHAR);
132
+ rangeProp(p, 0x0B92, 0x0B95, GENX_LETTER|GENX_NAMECHAR);
133
+ rangeProp(p, 0x0B99, 0x0B9A, GENX_LETTER|GENX_NAMECHAR);
134
+ charProp(p, 0x0B9C, GENX_LETTER|GENX_NAMECHAR);
135
+ rangeProp(p, 0x0B9E, 0x0B9F, GENX_LETTER|GENX_NAMECHAR);
136
+ rangeProp(p, 0x0BA3, 0x0BA4, GENX_LETTER|GENX_NAMECHAR);
137
+ rangeProp(p, 0x0BA8, 0x0BAA, GENX_LETTER|GENX_NAMECHAR);
138
+ rangeProp(p, 0x0BAE, 0x0BB5, GENX_LETTER|GENX_NAMECHAR);
139
+ rangeProp(p, 0x0BB7, 0x0BB9, GENX_LETTER|GENX_NAMECHAR);
140
+ rangeProp(p, 0x0C05, 0x0C0C, GENX_LETTER|GENX_NAMECHAR);
141
+ rangeProp(p, 0x0C0E, 0x0C10, GENX_LETTER|GENX_NAMECHAR);
142
+ rangeProp(p, 0x0C12, 0x0C28, GENX_LETTER|GENX_NAMECHAR);
143
+ rangeProp(p, 0x0C2A, 0x0C33, GENX_LETTER|GENX_NAMECHAR);
144
+ rangeProp(p, 0x0C35, 0x0C39, GENX_LETTER|GENX_NAMECHAR);
145
+ rangeProp(p, 0x0C60, 0x0C61, GENX_LETTER|GENX_NAMECHAR);
146
+ rangeProp(p, 0x0C85, 0x0C8C, GENX_LETTER|GENX_NAMECHAR);
147
+ rangeProp(p, 0x0C8E, 0x0C90, GENX_LETTER|GENX_NAMECHAR);
148
+ rangeProp(p, 0x0C92, 0x0CA8, GENX_LETTER|GENX_NAMECHAR);
149
+ rangeProp(p, 0x0CAA, 0x0CB3, GENX_LETTER|GENX_NAMECHAR);
150
+ rangeProp(p, 0x0CB5, 0x0CB9, GENX_LETTER|GENX_NAMECHAR);
151
+ charProp(p, 0x0CDE, GENX_LETTER|GENX_NAMECHAR);
152
+ rangeProp(p, 0x0CE0, 0x0CE1, GENX_LETTER|GENX_NAMECHAR);
153
+ rangeProp(p, 0x0D05, 0x0D0C, GENX_LETTER|GENX_NAMECHAR);
154
+ rangeProp(p, 0x0D0E, 0x0D10, GENX_LETTER|GENX_NAMECHAR);
155
+ rangeProp(p, 0x0D12, 0x0D28, GENX_LETTER|GENX_NAMECHAR);
156
+ rangeProp(p, 0x0D2A, 0x0D39, GENX_LETTER|GENX_NAMECHAR);
157
+ rangeProp(p, 0x0D60, 0x0D61, GENX_LETTER|GENX_NAMECHAR);
158
+ rangeProp(p, 0x0E01, 0x0E2E, GENX_LETTER|GENX_NAMECHAR);
159
+ charProp(p, 0x0E30, GENX_LETTER|GENX_NAMECHAR);
160
+ rangeProp(p, 0x0E32, 0x0E33, GENX_LETTER|GENX_NAMECHAR);
161
+ rangeProp(p, 0x0E40, 0x0E45, GENX_LETTER|GENX_NAMECHAR);
162
+ rangeProp(p, 0x0E81, 0x0E82, GENX_LETTER|GENX_NAMECHAR);
163
+ charProp(p, 0x0E84, GENX_LETTER|GENX_NAMECHAR);
164
+ rangeProp(p, 0x0E87, 0x0E88, GENX_LETTER|GENX_NAMECHAR);
165
+ charProp(p, 0x0E8A, GENX_LETTER|GENX_NAMECHAR);
166
+ charProp(p, 0x0E8D, GENX_LETTER|GENX_NAMECHAR);
167
+ rangeProp(p, 0x0E94, 0x0E97, GENX_LETTER|GENX_NAMECHAR);
168
+ rangeProp(p, 0x0E99, 0x0E9F, GENX_LETTER|GENX_NAMECHAR);
169
+ rangeProp(p, 0x0EA1, 0x0EA3, GENX_LETTER|GENX_NAMECHAR);
170
+ charProp(p, 0x0EA5, GENX_LETTER|GENX_NAMECHAR);
171
+ charProp(p, 0x0EA7, GENX_LETTER|GENX_NAMECHAR);
172
+ rangeProp(p, 0x0EAA, 0x0EAB, GENX_LETTER|GENX_NAMECHAR);
173
+ rangeProp(p, 0x0EAD, 0x0EAE, GENX_LETTER|GENX_NAMECHAR);
174
+ charProp(p, 0x0EB0, GENX_LETTER|GENX_NAMECHAR);
175
+ rangeProp(p, 0x0EB2, 0x0EB3, GENX_LETTER|GENX_NAMECHAR);
176
+ charProp(p, 0x0EBD, GENX_LETTER|GENX_NAMECHAR);
177
+ rangeProp(p, 0x0EC0, 0x0EC4, GENX_LETTER|GENX_NAMECHAR);
178
+ rangeProp(p, 0x0F40, 0x0F47, GENX_LETTER|GENX_NAMECHAR);
179
+ rangeProp(p, 0x0F49, 0x0F69, GENX_LETTER|GENX_NAMECHAR);
180
+ rangeProp(p, 0x10A0, 0x10C5, GENX_LETTER|GENX_NAMECHAR);
181
+ rangeProp(p, 0x10D0, 0x10F6, GENX_LETTER|GENX_NAMECHAR);
182
+ charProp(p, 0x1100, GENX_LETTER|GENX_NAMECHAR);
183
+ rangeProp(p, 0x1102, 0x1103, GENX_LETTER|GENX_NAMECHAR);
184
+ rangeProp(p, 0x1105, 0x1107, GENX_LETTER|GENX_NAMECHAR);
185
+ charProp(p, 0x1109, GENX_LETTER|GENX_NAMECHAR);
186
+ rangeProp(p, 0x110B, 0x110C, GENX_LETTER|GENX_NAMECHAR);
187
+ rangeProp(p, 0x110E, 0x1112, GENX_LETTER|GENX_NAMECHAR);
188
+ charProp(p, 0x113C, GENX_LETTER|GENX_NAMECHAR);
189
+ charProp(p, 0x113E, GENX_LETTER|GENX_NAMECHAR);
190
+ charProp(p, 0x1140, GENX_LETTER|GENX_NAMECHAR);
191
+ charProp(p, 0x114C, GENX_LETTER|GENX_NAMECHAR);
192
+ charProp(p, 0x114E, GENX_LETTER|GENX_NAMECHAR);
193
+ charProp(p, 0x1150, GENX_LETTER|GENX_NAMECHAR);
194
+ rangeProp(p, 0x1154, 0x1155, GENX_LETTER|GENX_NAMECHAR);
195
+ charProp(p, 0x1159, GENX_LETTER|GENX_NAMECHAR);
196
+ rangeProp(p, 0x115F, 0x1161, GENX_LETTER|GENX_NAMECHAR);
197
+ charProp(p, 0x1163, GENX_LETTER|GENX_NAMECHAR);
198
+ charProp(p, 0x1165, GENX_LETTER|GENX_NAMECHAR);
199
+ charProp(p, 0x1167, GENX_LETTER|GENX_NAMECHAR);
200
+ charProp(p, 0x1169, GENX_LETTER|GENX_NAMECHAR);
201
+ rangeProp(p, 0x116D, 0x116E, GENX_LETTER|GENX_NAMECHAR);
202
+ rangeProp(p, 0x1172, 0x1173, GENX_LETTER|GENX_NAMECHAR);
203
+ charProp(p, 0x1175, GENX_LETTER|GENX_NAMECHAR);
204
+ charProp(p, 0x119E, GENX_LETTER|GENX_NAMECHAR);
205
+ charProp(p, 0x11A8, GENX_LETTER|GENX_NAMECHAR);
206
+ charProp(p, 0x11AB, GENX_LETTER|GENX_NAMECHAR);
207
+ rangeProp(p, 0x11AE, 0x11AF, GENX_LETTER|GENX_NAMECHAR);
208
+ rangeProp(p, 0x11B7, 0x11B8, GENX_LETTER|GENX_NAMECHAR);
209
+ charProp(p, 0x11BA, GENX_LETTER|GENX_NAMECHAR);
210
+ rangeProp(p, 0x11BC, 0x11C2, GENX_LETTER|GENX_NAMECHAR);
211
+ charProp(p, 0x11EB, GENX_LETTER|GENX_NAMECHAR);
212
+ charProp(p, 0x11F0, GENX_LETTER|GENX_NAMECHAR);
213
+ charProp(p, 0x11F9, GENX_LETTER|GENX_NAMECHAR);
214
+ rangeProp(p, 0x1E00, 0x1E9B, GENX_LETTER|GENX_NAMECHAR);
215
+ rangeProp(p, 0x1EA0, 0x1EF9, GENX_LETTER|GENX_NAMECHAR);
216
+ rangeProp(p, 0x1F00, 0x1F15, GENX_LETTER|GENX_NAMECHAR);
217
+ rangeProp(p, 0x1F18, 0x1F1D, GENX_LETTER|GENX_NAMECHAR);
218
+ rangeProp(p, 0x1F20, 0x1F45, GENX_LETTER|GENX_NAMECHAR);
219
+ rangeProp(p, 0x1F48, 0x1F4D, GENX_LETTER|GENX_NAMECHAR);
220
+ rangeProp(p, 0x1F50, 0x1F57, GENX_LETTER|GENX_NAMECHAR);
221
+ charProp(p, 0x1F59, GENX_LETTER|GENX_NAMECHAR);
222
+ charProp(p, 0x1F5B, GENX_LETTER|GENX_NAMECHAR);
223
+ charProp(p, 0x1F5D, GENX_LETTER|GENX_NAMECHAR);
224
+ rangeProp(p, 0x1F5F, 0x1F7D, GENX_LETTER|GENX_NAMECHAR);
225
+ rangeProp(p, 0x1F80, 0x1FB4, GENX_LETTER|GENX_NAMECHAR);
226
+ rangeProp(p, 0x1FB6, 0x1FBC, GENX_LETTER|GENX_NAMECHAR);
227
+ charProp(p, 0x1FBE, GENX_LETTER|GENX_NAMECHAR);
228
+ rangeProp(p, 0x1FC2, 0x1FC4, GENX_LETTER|GENX_NAMECHAR);
229
+ rangeProp(p, 0x1FC6, 0x1FCC, GENX_LETTER|GENX_NAMECHAR);
230
+ rangeProp(p, 0x1FD0, 0x1FD3, GENX_LETTER|GENX_NAMECHAR);
231
+ rangeProp(p, 0x1FD6, 0x1FDB, GENX_LETTER|GENX_NAMECHAR);
232
+ rangeProp(p, 0x1FE0, 0x1FEC, GENX_LETTER|GENX_NAMECHAR);
233
+ rangeProp(p, 0x1FF2, 0x1FF4, GENX_LETTER|GENX_NAMECHAR);
234
+ rangeProp(p, 0x1FF6, 0x1FFC, GENX_LETTER|GENX_NAMECHAR);
235
+ charProp(p, 0x2126, GENX_LETTER|GENX_NAMECHAR);
236
+ rangeProp(p, 0x212A, 0x212B, GENX_LETTER|GENX_NAMECHAR);
237
+ charProp(p, 0x212E, GENX_LETTER|GENX_NAMECHAR);
238
+ rangeProp(p, 0x2180, 0x2182, GENX_LETTER|GENX_NAMECHAR);
239
+ rangeProp(p, 0x3041, 0x3094, GENX_LETTER|GENX_NAMECHAR);
240
+ rangeProp(p, 0x30A1, 0x30FA, GENX_LETTER|GENX_NAMECHAR);
241
+ rangeProp(p, 0x3105, 0x312C, GENX_LETTER|GENX_NAMECHAR);
242
+ rangeProp(p, 0xAC00, 0xD7A3, GENX_LETTER|GENX_NAMECHAR);
243
+ rangeProp(p, 0x4E00, 0x9FA5, GENX_LETTER|GENX_NAMECHAR);
244
+ charProp(p, 0x3007, GENX_LETTER|GENX_NAMECHAR);
245
+ rangeProp(p, 0x3021, 0x3029, GENX_LETTER|GENX_NAMECHAR);
246
+
247
+ /*
248
+ * NameChar ::=
249
+ * Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender
250
+ */
251
+ rangeProp(p, 0x0030, 0x0039, GENX_NAMECHAR);
252
+ rangeProp(p, 0x0660, 0x0669, GENX_NAMECHAR);
253
+ rangeProp(p, 0x06F0, 0x06F9, GENX_NAMECHAR);
254
+ rangeProp(p, 0x0966, 0x096F, GENX_NAMECHAR);
255
+ rangeProp(p, 0x09E6, 0x09EF, GENX_NAMECHAR);
256
+ rangeProp(p, 0x0A66, 0x0A6F, GENX_NAMECHAR);
257
+ rangeProp(p, 0x0AE6, 0x0AEF, GENX_NAMECHAR);
258
+ rangeProp(p, 0x0B66, 0x0B6F, GENX_NAMECHAR);
259
+ rangeProp(p, 0x0BE7, 0x0BEF, GENX_NAMECHAR);
260
+ rangeProp(p, 0x0C66, 0x0C6F, GENX_NAMECHAR);
261
+ rangeProp(p, 0x0CE6, 0x0CEF, GENX_NAMECHAR);
262
+ rangeProp(p, 0x0D66, 0x0D6F, GENX_NAMECHAR);
263
+ rangeProp(p, 0x0E50, 0x0E59, GENX_NAMECHAR);
264
+ rangeProp(p, 0x0ED0, 0x0ED9, GENX_NAMECHAR);
265
+ rangeProp(p, 0x0F20, 0x0F29, GENX_NAMECHAR);
266
+
267
+ charProp(p, '.', GENX_NAMECHAR);
268
+ charProp(p, '-', GENX_NAMECHAR);
269
+ charProp(p, '_', GENX_NAMECHAR);
270
+
271
+ rangeProp(p, 0x0300, 0x0345, GENX_NAMECHAR);
272
+ rangeProp(p, 0x0360, 0x0361, GENX_NAMECHAR);
273
+ rangeProp(p, 0x0483, 0x0486, GENX_NAMECHAR);
274
+ rangeProp(p, 0x0591, 0x05A1, GENX_NAMECHAR);
275
+ rangeProp(p, 0x05A3, 0x05B9, GENX_NAMECHAR);
276
+ rangeProp(p, 0x05BB, 0x05BD, GENX_NAMECHAR);
277
+ charProp(p, 0x05BF, GENX_LETTER|GENX_NAMECHAR);
278
+ rangeProp(p, 0x05C1, 0x05C2, GENX_NAMECHAR);
279
+ charProp(p, 0x05C4, GENX_LETTER|GENX_NAMECHAR);
280
+ rangeProp(p, 0x064B, 0x0652, GENX_NAMECHAR);
281
+ charProp(p, 0x0670, GENX_LETTER|GENX_NAMECHAR);
282
+ rangeProp(p, 0x06D6, 0x06DC, GENX_NAMECHAR);
283
+ rangeProp(p, 0x06DD, 0x06DF, GENX_NAMECHAR);
284
+ rangeProp(p, 0x06E0, 0x06E4, GENX_NAMECHAR);
285
+ rangeProp(p, 0x06E7, 0x06E8, GENX_NAMECHAR);
286
+ rangeProp(p, 0x06EA, 0x06ED, GENX_NAMECHAR);
287
+ rangeProp(p, 0x0901, 0x0903, GENX_NAMECHAR);
288
+ charProp(p, 0x093C, GENX_LETTER|GENX_NAMECHAR);
289
+ rangeProp(p, 0x093E, 0x094C, GENX_NAMECHAR);
290
+ charProp(p, 0x094D, GENX_LETTER|GENX_NAMECHAR);
291
+ rangeProp(p, 0x0951, 0x0954, GENX_NAMECHAR);
292
+ rangeProp(p, 0x0962, 0x0963, GENX_NAMECHAR);
293
+ rangeProp(p, 0x0981, 0x0983, GENX_NAMECHAR);
294
+ charProp(p, 0x09BC, GENX_LETTER|GENX_NAMECHAR);
295
+ charProp(p, 0x09BE, GENX_LETTER|GENX_NAMECHAR);
296
+ charProp(p, 0x09BF, GENX_LETTER|GENX_NAMECHAR);
297
+ rangeProp(p, 0x09C0, 0x09C4, GENX_NAMECHAR);
298
+ rangeProp(p, 0x09C7, 0x09C8, GENX_NAMECHAR);
299
+ rangeProp(p, 0x09CB, 0x09CD, GENX_NAMECHAR);
300
+ charProp(p, 0x09D7, GENX_LETTER|GENX_NAMECHAR);
301
+ rangeProp(p, 0x09E2, 0x09E3, GENX_NAMECHAR);
302
+ charProp(p, 0x0A02, GENX_LETTER|GENX_NAMECHAR);
303
+ charProp(p, 0x0A3C, GENX_LETTER|GENX_NAMECHAR);
304
+ charProp(p, 0x0A3E, GENX_LETTER|GENX_NAMECHAR);
305
+ charProp(p, 0x0A3F, GENX_LETTER|GENX_NAMECHAR);
306
+ rangeProp(p, 0x0A40, 0x0A42, GENX_NAMECHAR);
307
+ rangeProp(p, 0x0A47, 0x0A48, GENX_NAMECHAR);
308
+ rangeProp(p, 0x0A4B, 0x0A4D, GENX_NAMECHAR);
309
+ rangeProp(p, 0x0A70, 0x0A71, GENX_NAMECHAR);
310
+ rangeProp(p, 0x0A81, 0x0A83, GENX_NAMECHAR);
311
+ charProp(p, 0x0ABC, GENX_LETTER|GENX_NAMECHAR);
312
+ rangeProp(p, 0x0ABE, 0x0AC5, GENX_NAMECHAR);
313
+ rangeProp(p, 0x0AC7, 0x0AC9, GENX_NAMECHAR);
314
+ rangeProp(p, 0x0ACB, 0x0ACD, GENX_NAMECHAR);
315
+ rangeProp(p, 0x0B01, 0x0B03, GENX_NAMECHAR);
316
+ charProp(p, 0x0B3C, GENX_LETTER|GENX_NAMECHAR);
317
+ rangeProp(p, 0x0B3E, 0x0B43, GENX_NAMECHAR);
318
+ rangeProp(p, 0x0B47, 0x0B48, GENX_NAMECHAR);
319
+ rangeProp(p, 0x0B4B, 0x0B4D, GENX_NAMECHAR);
320
+ rangeProp(p, 0x0B56, 0x0B57, GENX_NAMECHAR);
321
+ rangeProp(p, 0x0B82, 0x0B83, GENX_NAMECHAR);
322
+ rangeProp(p, 0x0BBE, 0x0BC2, GENX_NAMECHAR);
323
+ rangeProp(p, 0x0BC6, 0x0BC8, GENX_NAMECHAR);
324
+ rangeProp(p, 0x0BCA, 0x0BCD, GENX_NAMECHAR);
325
+ charProp(p, 0x0BD7, GENX_LETTER|GENX_NAMECHAR);
326
+ rangeProp(p, 0x0C01, 0x0C03, GENX_NAMECHAR);
327
+ rangeProp(p, 0x0C3E, 0x0C44, GENX_NAMECHAR);
328
+ rangeProp(p, 0x0C46, 0x0C48, GENX_NAMECHAR);
329
+ rangeProp(p, 0x0C4A, 0x0C4D, GENX_NAMECHAR);
330
+ rangeProp(p, 0x0C55, 0x0C56, GENX_NAMECHAR);
331
+ rangeProp(p, 0x0C82, 0x0C83, GENX_NAMECHAR);
332
+ rangeProp(p, 0x0CBE, 0x0CC4, GENX_NAMECHAR);
333
+ rangeProp(p, 0x0CC6, 0x0CC8, GENX_NAMECHAR);
334
+ rangeProp(p, 0x0CCA, 0x0CCD, GENX_NAMECHAR);
335
+ rangeProp(p, 0x0CD5, 0x0CD6, GENX_NAMECHAR);
336
+ rangeProp(p, 0x0D02, 0x0D03, GENX_NAMECHAR);
337
+ rangeProp(p, 0x0D3E, 0x0D43, GENX_NAMECHAR);
338
+ rangeProp(p, 0x0D46, 0x0D48, GENX_NAMECHAR);
339
+ rangeProp(p, 0x0D4A, 0x0D4D, GENX_NAMECHAR);
340
+ charProp(p, 0x0D57, GENX_LETTER|GENX_NAMECHAR);
341
+ charProp(p, 0x0E31, GENX_LETTER|GENX_NAMECHAR);
342
+ rangeProp(p, 0x0E34, 0x0E3A, GENX_NAMECHAR);
343
+ rangeProp(p, 0x0E47, 0x0E4E, GENX_NAMECHAR);
344
+ charProp(p, 0x0EB1, GENX_LETTER|GENX_NAMECHAR);
345
+ rangeProp(p, 0x0EB4, 0x0EB9, GENX_NAMECHAR);
346
+ rangeProp(p, 0x0EBB, 0x0EBC, GENX_NAMECHAR);
347
+ rangeProp(p, 0x0EC8, 0x0ECD, GENX_NAMECHAR);
348
+ rangeProp(p, 0x0F18, 0x0F19, GENX_NAMECHAR);
349
+ charProp(p, 0x0F35, GENX_LETTER|GENX_NAMECHAR);
350
+ charProp(p, 0x0F37, GENX_LETTER|GENX_NAMECHAR);
351
+ charProp(p, 0x0F39, GENX_LETTER|GENX_NAMECHAR);
352
+ charProp(p, 0x0F3E, GENX_LETTER|GENX_NAMECHAR);
353
+ charProp(p, 0x0F3F, GENX_LETTER|GENX_NAMECHAR);
354
+ rangeProp(p, 0x0F71, 0x0F84, GENX_NAMECHAR);
355
+ rangeProp(p, 0x0F86, 0x0F8B, GENX_NAMECHAR);
356
+ rangeProp(p, 0x0F90, 0x0F95, GENX_NAMECHAR);
357
+ charProp(p, 0x0F97, GENX_LETTER|GENX_NAMECHAR);
358
+ rangeProp(p, 0x0F99, 0x0FAD, GENX_NAMECHAR);
359
+ rangeProp(p, 0x0FB1, 0x0FB7, GENX_NAMECHAR);
360
+ charProp(p, 0x0FB9, GENX_LETTER|GENX_NAMECHAR);
361
+ rangeProp(p, 0x20D0, 0x20DC, GENX_NAMECHAR);
362
+ charProp(p, 0x20E1, GENX_LETTER|GENX_NAMECHAR);
363
+ rangeProp(p, 0x302A, 0x302F, GENX_NAMECHAR);
364
+ charProp(p, 0x3099, GENX_LETTER|GENX_NAMECHAR);
365
+ charProp(p, 0x309A, GENX_LETTER|GENX_NAMECHAR);
366
+
367
+ charProp(p, 0x00B7, GENX_LETTER|GENX_NAMECHAR);
368
+ charProp(p, 0x02D0, GENX_LETTER|GENX_NAMECHAR);
369
+ charProp(p, 0x02D1, GENX_LETTER|GENX_NAMECHAR);
370
+ charProp(p, 0x0387, GENX_LETTER|GENX_NAMECHAR);
371
+ charProp(p, 0x0640, GENX_LETTER|GENX_NAMECHAR);
372
+ charProp(p, 0x0E46, GENX_LETTER|GENX_NAMECHAR);
373
+ charProp(p, 0x0EC6, GENX_LETTER|GENX_NAMECHAR);
374
+ charProp(p, 0x3005, GENX_LETTER|GENX_NAMECHAR);
375
+ rangeProp(p, 0x3031, 0x3035, GENX_NAMECHAR);
376
+ rangeProp(p, 0x309D, 0x309E, GENX_NAMECHAR);
377
+ rangeProp(p, 0x30FC, 0x30FE, GENX_NAMECHAR);
378
+ }