~ubuntu-branches/ubuntu/oneiric/osptoolkit/oneiric

« back to all changes in this revision

Viewing changes to src/ospxmltype.c

  • Committer: Bazaar Package Importer
  • Author(s): TransNexus, Inc.
  • Date: 2007-12-30 20:37:26 UTC
  • Revision ID: james.westby@ubuntu.com-20071230203726-dysah2e93yqd3vbp
Tags: upstream-3.4.2
ImportĀ upstreamĀ versionĀ 3.4.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**************************************************************************
 
2
*** COPYRIGHT (c) 2002 by TransNexus, Inc.                              ***
 
3
***                                                                     ***
 
4
*** This software is property of TransNexus, Inc.                       ***
 
5
*** This software is freely available under license from TransNexus.    ***
 
6
*** The license terms and conditions for free use of this software by   ***
 
7
*** third parties are defined in the OSP Toolkit Software License       ***
 
8
*** Agreement (LICENSE.txt).  Any use of this software by third         ***
 
9
*** parties, which does not comply with the terms and conditions of the ***
 
10
*** OSP Toolkit Software License Agreement is prohibited without        ***
 
11
*** the prior, express, written consent of TransNexus, Inc.             ***
 
12
***                                                                     ***
 
13
*** Thank you for using the OSP ToolKit(TM).  Please report any bugs,   ***
 
14
*** suggestions or feedback to support@transnexus.com                   ***
 
15
***                                                                     ***
 
16
**************************************************************************/
 
17
 
 
18
 
 
19
 
 
20
 
 
21
 
 
22
 
 
23
 
 
24
 
 
25
/*
 
26
 * ospxmltype.c - Data variables and functions for XML character
 
27
 *                types. These are more or less a duplication of the
 
28
 *                ANSI ctype.h functions. It is necessary to write
 
29
 *                them from scratch, though, in order to ensure
 
30
 *                strict XML compliance.
 
31
 *
 
32
 *                Note that the implementation treats each XML character
 
33
 *                as a C char, which is mostly likely 8 bits. The XML
 
34
 *                decoding routines still accept 16-bit characters
 
35
 *                though. Since the OSP uses only ASCII characters,
 
36
 *                any 16-bit encoding can be safely converted to 8-bit
 
37
 *                char variables.
 
38
 */
 
39
 
 
40
#include <assert.h>
 
41
#include "osp/osp.h"
 
42
#include "osp/ospxmltype.h"
 
43
 
 
44
/*
 
45
 * the XML ctype-like array; this is not a static array so we can
 
46
 * use macros to access it
 
47
 */
 
48
 
 
49
const unsigned char OSPVXMLCType[] =
 
50
{
 
51
  /* 00     */  OSPC_XMLTYPE_NONE ,
 
52
  /* 01     */  OSPC_XMLTYPE_NONE ,
 
53
  /* 02     */  OSPC_XMLTYPE_NONE ,
 
54
  /* 03     */  OSPC_XMLTYPE_NONE ,
 
55
  /* 04     */  OSPC_XMLTYPE_NONE ,
 
56
  /* 05     */  OSPC_XMLTYPE_NONE ,
 
57
  /* 06     */  OSPC_XMLTYPE_NONE ,
 
58
  /* 07     */  OSPC_XMLTYPE_NONE ,
 
59
  /* 08     */  OSPC_XMLTYPE_NONE ,
 
60
  /* 09 \t  */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_SPACE ,
 
61
  /* 0A \r  */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_SPACE ,
 
62
  /* 0B     */  OSPC_XMLTYPE_NONE ,
 
63
  /* 0C     */  OSPC_XMLTYPE_NONE ,
 
64
  /* 0D \n  */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_SPACE ,
 
65
  /* 0E     */  OSPC_XMLTYPE_NONE ,
 
66
  /* 0F     */  OSPC_XMLTYPE_NONE ,
 
67
  /* 10     */  OSPC_XMLTYPE_NONE ,
 
68
  /* 11     */  OSPC_XMLTYPE_NONE ,
 
69
  /* 12     */  OSPC_XMLTYPE_NONE ,
 
70
  /* 13     */  OSPC_XMLTYPE_NONE ,
 
71
  /* 14     */  OSPC_XMLTYPE_NONE ,
 
72
  /* 15     */  OSPC_XMLTYPE_NONE ,
 
73
  /* 16     */  OSPC_XMLTYPE_NONE ,
 
74
  /* 17     */  OSPC_XMLTYPE_NONE ,
 
75
  /* 18     */  OSPC_XMLTYPE_NONE ,
 
76
  /* 19     */  OSPC_XMLTYPE_NONE ,
 
77
  /* 1A     */  OSPC_XMLTYPE_NONE ,
 
78
  /* 1B     */  OSPC_XMLTYPE_NONE ,
 
79
  /* 1C     */  OSPC_XMLTYPE_NONE ,
 
80
  /* 1D     */  OSPC_XMLTYPE_NONE ,
 
81
  /* 1E     */  OSPC_XMLTYPE_NONE ,
 
82
  /* 1F     */  OSPC_XMLTYPE_NONE ,
 
83
  /* 20 ' ' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_SPACE ,
 
84
  /* 21 '!' */  OSPC_XMLTYPE_CHAR ,
 
85
  /* 22 '"' */  OSPC_XMLTYPE_CHAR ,
 
86
  /* 23 '#' */  OSPC_XMLTYPE_CHAR ,
 
87
  /* 24 '$' */  OSPC_XMLTYPE_CHAR ,
 
88
  /* 25 '%' */  OSPC_XMLTYPE_CHAR ,
 
89
  /* 26 '&' */  OSPC_XMLTYPE_CHAR ,
 
90
  /* 27 ''' */  OSPC_XMLTYPE_CHAR ,
 
91
  /* 28 '(' */  OSPC_XMLTYPE_CHAR ,
 
92
  /* 29 ')' */  OSPC_XMLTYPE_CHAR ,
 
93
  /* 2A '*' */  OSPC_XMLTYPE_CHAR ,
 
94
  /* 2B '+' */  OSPC_XMLTYPE_CHAR ,
 
95
  /* 2C ',' */  OSPC_XMLTYPE_CHAR ,
 
96
  /* 2D '-' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_NAME ,
 
97
  /* 2E '.' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_NAME ,
 
98
  /* 2F '/' */  OSPC_XMLTYPE_CHAR ,
 
99
  /* 30 '0' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_DIGIT | OSPC_XMLTYPE_NAME ,
 
100
  /* 31 '1' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_DIGIT | OSPC_XMLTYPE_NAME ,
 
101
  /* 32 '2' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_DIGIT | OSPC_XMLTYPE_NAME ,
 
102
  /* 33 '3' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_DIGIT | OSPC_XMLTYPE_NAME ,
 
103
  /* 34 '4' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_DIGIT | OSPC_XMLTYPE_NAME ,
 
104
  /* 35 '5' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_DIGIT | OSPC_XMLTYPE_NAME ,
 
105
  /* 36 '6' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_DIGIT | OSPC_XMLTYPE_NAME ,
 
106
  /* 37 '7' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_DIGIT | OSPC_XMLTYPE_NAME ,
 
107
  /* 38 '8' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_DIGIT | OSPC_XMLTYPE_NAME ,
 
108
  /* 39 '9' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_DIGIT | OSPC_XMLTYPE_NAME ,
 
109
  /* 3A ':' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
110
  /* 3B ';' */  OSPC_XMLTYPE_CHAR ,
 
111
  /* 3C '<' */  OSPC_XMLTYPE_CHAR ,
 
112
  /* 3D '=' */  OSPC_XMLTYPE_CHAR ,
 
113
  /* 3E '>' */  OSPC_XMLTYPE_CHAR ,
 
114
  /* 3F '?' */  OSPC_XMLTYPE_CHAR ,
 
115
  /* 40 '@' */  OSPC_XMLTYPE_CHAR ,
 
116
  /* 41 'A' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
117
  /* 42 'B' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
118
  /* 43 'C' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
119
  /* 44 'D' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
120
  /* 45 'E' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
121
  /* 46 'F' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
122
  /* 47 'G' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
123
  /* 48 'H' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
124
  /* 49 'I' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
125
  /* 4A 'J' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
126
  /* 4B 'K' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
127
  /* 4C 'L' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
128
  /* 4D 'M' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
129
  /* 4E 'N' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
130
  /* 4F 'O' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
131
  /* 50 'P' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
132
  /* 51 'Q' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
133
  /* 52 'R' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
134
  /* 53 'S' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
135
  /* 54 'T' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
136
  /* 55 'U' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
137
  /* 56 'V' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
138
  /* 57 'W' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
139
  /* 58 'X' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
140
  /* 59 'Y' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
141
  /* 5A 'Z' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
142
  /* 5B '[' */  OSPC_XMLTYPE_CHAR ,
 
143
  /* 5C '\' */  OSPC_XMLTYPE_CHAR ,
 
144
  /* 5D ']' */  OSPC_XMLTYPE_CHAR ,
 
145
  /* 5E '^' */  OSPC_XMLTYPE_CHAR ,
 
146
  /* 5F '_' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
147
  /* 60 '`' */  OSPC_XMLTYPE_CHAR ,
 
148
  /* 61 'a' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
149
  /* 62 'b' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
150
  /* 63 'c' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
151
  /* 64 'd' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
152
  /* 65 'e' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
153
  /* 66 'f' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
154
  /* 67 'g' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
155
  /* 68 'h' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
156
  /* 69 'i' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
157
  /* 6A 'j' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
158
  /* 6B 'k' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
159
  /* 6C 'l' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
160
  /* 6D 'm' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
161
  /* 6E 'n' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
162
  /* 6F 'o' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
163
  /* 70 'p' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
164
  /* 71 'q' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
165
  /* 72 'r' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
166
  /* 73 's' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
167
  /* 74 't' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
168
  /* 75 'u' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
169
  /* 76 'v' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
170
  /* 77 'w' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
171
  /* 78 'x' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
172
  /* 79 'y' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
173
  /* 7A 'z' */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
174
  /* 7B '{' */  OSPC_XMLTYPE_CHAR ,
 
175
  /* 7C '|' */  OSPC_XMLTYPE_CHAR ,
 
176
  /* 7D '}' */  OSPC_XMLTYPE_CHAR ,
 
177
  /* 7E '~' */  OSPC_XMLTYPE_CHAR ,
 
178
  /* 7F     */  OSPC_XMLTYPE_CHAR ,
 
179
  /* 80     */  OSPC_XMLTYPE_CHAR ,
 
180
  /* 81     */  OSPC_XMLTYPE_CHAR ,
 
181
  /* 82     */  OSPC_XMLTYPE_CHAR ,
 
182
  /* 83     */  OSPC_XMLTYPE_CHAR ,
 
183
  /* 84     */  OSPC_XMLTYPE_CHAR ,
 
184
  /* 85     */  OSPC_XMLTYPE_CHAR ,
 
185
  /* 86     */  OSPC_XMLTYPE_CHAR ,
 
186
  /* 87     */  OSPC_XMLTYPE_CHAR ,
 
187
  /* 88     */  OSPC_XMLTYPE_CHAR ,
 
188
  /* 89     */  OSPC_XMLTYPE_CHAR ,
 
189
  /* 8A     */  OSPC_XMLTYPE_CHAR ,
 
190
  /* 8B     */  OSPC_XMLTYPE_CHAR ,
 
191
  /* 8C     */  OSPC_XMLTYPE_CHAR ,
 
192
  /* 8D     */  OSPC_XMLTYPE_CHAR ,
 
193
  /* 8E     */  OSPC_XMLTYPE_CHAR ,
 
194
  /* 8F     */  OSPC_XMLTYPE_CHAR ,
 
195
  /* 90     */  OSPC_XMLTYPE_CHAR ,
 
196
  /* 91     */  OSPC_XMLTYPE_CHAR ,
 
197
  /* 92     */  OSPC_XMLTYPE_CHAR ,
 
198
  /* 93     */  OSPC_XMLTYPE_CHAR ,
 
199
  /* 94     */  OSPC_XMLTYPE_CHAR ,
 
200
  /* 95     */  OSPC_XMLTYPE_CHAR ,
 
201
  /* 96     */  OSPC_XMLTYPE_CHAR ,
 
202
  /* 97     */  OSPC_XMLTYPE_CHAR ,
 
203
  /* 98     */  OSPC_XMLTYPE_CHAR ,
 
204
  /* 99     */  OSPC_XMLTYPE_CHAR ,
 
205
  /* 9A     */  OSPC_XMLTYPE_CHAR ,
 
206
  /* 9B     */  OSPC_XMLTYPE_CHAR ,
 
207
  /* 9C     */  OSPC_XMLTYPE_CHAR ,
 
208
  /* 9D     */  OSPC_XMLTYPE_CHAR ,
 
209
  /* 9E     */  OSPC_XMLTYPE_CHAR ,
 
210
  /* 9F     */  OSPC_XMLTYPE_CHAR ,
 
211
  /* A0     */  OSPC_XMLTYPE_CHAR ,
 
212
  /* A1     */  OSPC_XMLTYPE_CHAR ,
 
213
  /* A2     */  OSPC_XMLTYPE_CHAR ,
 
214
  /* A3     */  OSPC_XMLTYPE_CHAR ,
 
215
  /* A4     */  OSPC_XMLTYPE_CHAR ,
 
216
  /* A5     */  OSPC_XMLTYPE_CHAR ,
 
217
  /* A6     */  OSPC_XMLTYPE_CHAR ,
 
218
  /* A7     */  OSPC_XMLTYPE_CHAR ,
 
219
  /* A8     */  OSPC_XMLTYPE_CHAR ,
 
220
  /* A9     */  OSPC_XMLTYPE_CHAR ,
 
221
  /* AA     */  OSPC_XMLTYPE_CHAR ,
 
222
  /* AB     */  OSPC_XMLTYPE_CHAR ,
 
223
  /* AC     */  OSPC_XMLTYPE_CHAR ,
 
224
  /* AD     */  OSPC_XMLTYPE_CHAR ,
 
225
  /* AE     */  OSPC_XMLTYPE_CHAR ,
 
226
  /* AF     */  OSPC_XMLTYPE_CHAR ,
 
227
  /* B0     */  OSPC_XMLTYPE_CHAR ,
 
228
  /* B1     */  OSPC_XMLTYPE_CHAR ,
 
229
  /* B2     */  OSPC_XMLTYPE_CHAR ,
 
230
  /* B3     */  OSPC_XMLTYPE_CHAR ,
 
231
  /* B4     */  OSPC_XMLTYPE_CHAR ,
 
232
  /* B5     */  OSPC_XMLTYPE_CHAR ,
 
233
  /* B6     */  OSPC_XMLTYPE_CHAR ,
 
234
  /* B7     */  OSPC_XMLTYPE_CHAR ,
 
235
  /* B8     */  OSPC_XMLTYPE_CHAR ,
 
236
  /* B9     */  OSPC_XMLTYPE_CHAR ,
 
237
  /* BA     */  OSPC_XMLTYPE_CHAR ,
 
238
  /* BB     */  OSPC_XMLTYPE_CHAR ,
 
239
  /* BC     */  OSPC_XMLTYPE_CHAR ,
 
240
  /* BD     */  OSPC_XMLTYPE_CHAR ,
 
241
  /* BE     */  OSPC_XMLTYPE_CHAR ,
 
242
  /* BF     */  OSPC_XMLTYPE_CHAR ,
 
243
  /* C0     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
244
  /* C1     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
245
  /* C2     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
246
  /* C3     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
247
  /* C4     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
248
  /* C5     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
249
  /* C6     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
250
  /* C7     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
251
  /* C8     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
252
  /* C9     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
253
  /* CA     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
254
  /* CB     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
255
  /* CC     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
256
  /* CD     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
257
  /* CE     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
258
  /* CF     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
259
  /* D0     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
260
  /* D1     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
261
  /* D2     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
262
  /* D3     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
263
  /* D4     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
264
  /* D5     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
265
  /* D6     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
266
  /* D7     */  OSPC_XMLTYPE_CHAR ,
 
267
  /* D8     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
268
  /* D9     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
269
  /* DA     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
270
  /* DB     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
271
  /* DC     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
272
  /* DD     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
273
  /* DE     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
274
  /* DF     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
275
  /* E0     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
276
  /* E1     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
277
  /* E2     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
278
  /* E3     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
279
  /* E4     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
280
  /* E5     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
281
  /* E6     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
282
  /* E7     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
283
  /* E8     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
284
  /* E9     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
285
  /* EA     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
286
  /* EB     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
287
  /* EC     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
288
  /* ED     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
289
  /* EE     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
290
  /* EF     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
291
  /* F0     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
292
  /* F1     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
293
  /* F2     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
294
  /* F3     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
295
  /* F4     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
296
  /* F5     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
297
  /* F6     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
298
  /* F7     */  OSPC_XMLTYPE_CHAR ,
 
299
  /* F8     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
300
  /* F9     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
301
  /* FA     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
302
  /* FB     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
303
  /* FC     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
304
  /* FD     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
305
  /* FE     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
306
  /* FF     */  OSPC_XMLTYPE_CHAR | OSPC_XMLTYPE_LETTER | OSPC_XMLTYPE_NAME | OSPC_XMLTYPE_NAME1 ,
 
307
};
 
308
 
 
309
#define OSPC_XML_CTYPESIZE (sizeof(OSPVXMLCType)/sizeof(unsigned char))
 
310
 
 
311
/* */
 
312
/*-----------------------------------------------------------------------*
 
313
 * OSPPXMLIsChar() - is a byte a valid XML character
 
314
 *-----------------------------------------------------------------------*/
 
315
 
 
316
unsigned              /* returns non-zero if true */
 
317
OSPPXMLIsChar(
 
318
    unsigned char ospvChar
 
319
)
 
320
{
 
321
    unsigned ospvIs = OSPC_FALSE;
 
322
 
 
323
    ospvIs = OSPVXMLCType[ospvChar] & OSPC_XMLTYPE_CHAR;
 
324
    return(ospvIs);
 
325
}
 
326
 
 
327
/* */
 
328
/*-----------------------------------------------------------------------*
 
329
 * OSPPXMLIsSpace() - is a byte a valid XML space character
 
330
 *-----------------------------------------------------------------------*/
 
331
 
 
332
unsigned              /* returns non-zero if true */
 
333
OSPPXMLIsSpace(
 
334
    unsigned char ospvChar
 
335
)
 
336
{
 
337
    unsigned ospvIs = OSPC_FALSE;
 
338
 
 
339
    ospvIs = OSPVXMLCType[ospvChar] & OSPC_XMLTYPE_SPACE;
 
340
    return(ospvIs);
 
341
}
 
342
 
 
343
/* */
 
344
/*-----------------------------------------------------------------------*
 
345
 * OSPPXMLIsLetter() - is a byte a valid XML letter character
 
346
 *-----------------------------------------------------------------------*/
 
347
 
 
348
unsigned              /* returns non-zero if true */
 
349
OSPPXMLIsLetter(
 
350
    unsigned char ospvChar
 
351
)
 
352
{
 
353
    unsigned ospvIs = OSPC_FALSE;
 
354
 
 
355
    ospvIs = OSPVXMLCType[ospvChar] & OSPC_XMLTYPE_LETTER;
 
356
    return(ospvIs);
 
357
}
 
358
 
 
359
/* */
 
360
/*-----------------------------------------------------------------------*
 
361
 * OSPPXMLIsDigit() - is a byte a valid XML digit character
 
362
 *-----------------------------------------------------------------------*/
 
363
 
 
364
unsigned              /* returns non-zero if true */
 
365
OSPPXMLIsDigit(
 
366
    unsigned char ospvChar
 
367
)
 
368
{
 
369
    unsigned ospvIs = OSPC_FALSE;
 
370
 
 
371
    ospvIs = OSPVXMLCType[ospvChar] & OSPC_XMLTYPE_DIGIT;
 
372
    return(ospvIs);
 
373
}
 
374
 
 
375
/* */
 
376
/*-----------------------------------------------------------------------*
 
377
 * OSPPXMLIsName() - is a byte a valid XML name character
 
378
 *-----------------------------------------------------------------------*/
 
379
 
 
380
unsigned              /* returns non-zero if true */
 
381
OSPPXMLIsName(
 
382
    unsigned char ospvChar
 
383
)
 
384
{
 
385
    unsigned ospvIs = OSPC_FALSE;
 
386
 
 
387
    ospvIs = OSPVXMLCType[ospvChar] & OSPC_XMLTYPE_NAME;
 
388
    return(ospvIs);
 
389
}
 
390
 
 
391
/* */
 
392
/*-----------------------------------------------------------------------*
 
393
 * OSPPXMLIsName1() - is byte valid as first character in XML name
 
394
 *-----------------------------------------------------------------------*/
 
395
 
 
396
unsigned              /* returns non-zero if true */
 
397
OSPPXMLIsName1(
 
398
    unsigned char ospvChar
 
399
)
 
400
{
 
401
    unsigned ospvIs = OSPC_FALSE;
 
402
 
 
403
    ospvIs = OSPVXMLCType[ospvChar] & OSPC_XMLTYPE_NAME1;
 
404
    return(ospvIs);
 
405
}
 
406
 
 
407