xref: /aosp_15_r20/external/expat/lib/xmlrole.h (revision 6be67779651aebaf20f11e5663acd1ae59e93f66)
1*6be67779SAndroid Build Coastguard Worker /*
2*6be67779SAndroid Build Coastguard Worker                             __  __            _
3*6be67779SAndroid Build Coastguard Worker                          ___\ \/ /_ __   __ _| |_
4*6be67779SAndroid Build Coastguard Worker                         / _ \\  /| '_ \ / _` | __|
5*6be67779SAndroid Build Coastguard Worker                        |  __//  \| |_) | (_| | |_
6*6be67779SAndroid Build Coastguard Worker                         \___/_/\_\ .__/ \__,_|\__|
7*6be67779SAndroid Build Coastguard Worker                                  |_| XML parser
8*6be67779SAndroid Build Coastguard Worker 
9*6be67779SAndroid Build Coastguard Worker    Copyright (c) 1997-2000 Thai Open Source Software Center Ltd
10*6be67779SAndroid Build Coastguard Worker    Copyright (c) 2000      Clark Cooper <[email protected]>
11*6be67779SAndroid Build Coastguard Worker    Copyright (c) 2002      Karl Waclawek <[email protected]>
12*6be67779SAndroid Build Coastguard Worker    Copyright (c) 2002      Fred L. Drake, Jr. <[email protected]>
13*6be67779SAndroid Build Coastguard Worker    Copyright (c) 2017-2024 Sebastian Pipping <[email protected]>
14*6be67779SAndroid Build Coastguard Worker    Licensed under the MIT license:
15*6be67779SAndroid Build Coastguard Worker 
16*6be67779SAndroid Build Coastguard Worker    Permission is  hereby granted,  free of charge,  to any  person obtaining
17*6be67779SAndroid Build Coastguard Worker    a  copy  of  this  software   and  associated  documentation  files  (the
18*6be67779SAndroid Build Coastguard Worker    "Software"),  to  deal in  the  Software  without restriction,  including
19*6be67779SAndroid Build Coastguard Worker    without  limitation the  rights  to use,  copy,  modify, merge,  publish,
20*6be67779SAndroid Build Coastguard Worker    distribute, sublicense, and/or sell copies of the Software, and to permit
21*6be67779SAndroid Build Coastguard Worker    persons  to whom  the Software  is  furnished to  do so,  subject to  the
22*6be67779SAndroid Build Coastguard Worker    following conditions:
23*6be67779SAndroid Build Coastguard Worker 
24*6be67779SAndroid Build Coastguard Worker    The above copyright  notice and this permission notice  shall be included
25*6be67779SAndroid Build Coastguard Worker    in all copies or substantial portions of the Software.
26*6be67779SAndroid Build Coastguard Worker 
27*6be67779SAndroid Build Coastguard Worker    THE  SOFTWARE  IS  PROVIDED  "AS  IS",  WITHOUT  WARRANTY  OF  ANY  KIND,
28*6be67779SAndroid Build Coastguard Worker    EXPRESS  OR IMPLIED,  INCLUDING  BUT  NOT LIMITED  TO  THE WARRANTIES  OF
29*6be67779SAndroid Build Coastguard Worker    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
30*6be67779SAndroid Build Coastguard Worker    NO EVENT SHALL THE AUTHORS OR  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
31*6be67779SAndroid Build Coastguard Worker    DAMAGES OR  OTHER LIABILITY, WHETHER  IN AN  ACTION OF CONTRACT,  TORT OR
32*6be67779SAndroid Build Coastguard Worker    OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
33*6be67779SAndroid Build Coastguard Worker    USE OR OTHER DEALINGS IN THE SOFTWARE.
34*6be67779SAndroid Build Coastguard Worker */
35*6be67779SAndroid Build Coastguard Worker 
36*6be67779SAndroid Build Coastguard Worker #ifndef XmlRole_INCLUDED
37*6be67779SAndroid Build Coastguard Worker #define XmlRole_INCLUDED 1
38*6be67779SAndroid Build Coastguard Worker 
39*6be67779SAndroid Build Coastguard Worker #ifdef __VMS
40*6be67779SAndroid Build Coastguard Worker /*      0        1         2         3      0        1         2         3
41*6be67779SAndroid Build Coastguard Worker         1234567890123456789012345678901     1234567890123456789012345678901 */
42*6be67779SAndroid Build Coastguard Worker #  define XmlPrologStateInitExternalEntity XmlPrologStateInitExternalEnt
43*6be67779SAndroid Build Coastguard Worker #endif
44*6be67779SAndroid Build Coastguard Worker 
45*6be67779SAndroid Build Coastguard Worker #include "xmltok.h"
46*6be67779SAndroid Build Coastguard Worker 
47*6be67779SAndroid Build Coastguard Worker #ifdef __cplusplus
48*6be67779SAndroid Build Coastguard Worker extern "C" {
49*6be67779SAndroid Build Coastguard Worker #endif
50*6be67779SAndroid Build Coastguard Worker 
51*6be67779SAndroid Build Coastguard Worker enum {
52*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ERROR = -1,
53*6be67779SAndroid Build Coastguard Worker   XML_ROLE_NONE = 0,
54*6be67779SAndroid Build Coastguard Worker   XML_ROLE_XML_DECL,
55*6be67779SAndroid Build Coastguard Worker   XML_ROLE_INSTANCE_START,
56*6be67779SAndroid Build Coastguard Worker   XML_ROLE_DOCTYPE_NONE,
57*6be67779SAndroid Build Coastguard Worker   XML_ROLE_DOCTYPE_NAME,
58*6be67779SAndroid Build Coastguard Worker   XML_ROLE_DOCTYPE_SYSTEM_ID,
59*6be67779SAndroid Build Coastguard Worker   XML_ROLE_DOCTYPE_PUBLIC_ID,
60*6be67779SAndroid Build Coastguard Worker   XML_ROLE_DOCTYPE_INTERNAL_SUBSET,
61*6be67779SAndroid Build Coastguard Worker   XML_ROLE_DOCTYPE_CLOSE,
62*6be67779SAndroid Build Coastguard Worker   XML_ROLE_GENERAL_ENTITY_NAME,
63*6be67779SAndroid Build Coastguard Worker   XML_ROLE_PARAM_ENTITY_NAME,
64*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ENTITY_NONE,
65*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ENTITY_VALUE,
66*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ENTITY_SYSTEM_ID,
67*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ENTITY_PUBLIC_ID,
68*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ENTITY_COMPLETE,
69*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ENTITY_NOTATION_NAME,
70*6be67779SAndroid Build Coastguard Worker   XML_ROLE_NOTATION_NONE,
71*6be67779SAndroid Build Coastguard Worker   XML_ROLE_NOTATION_NAME,
72*6be67779SAndroid Build Coastguard Worker   XML_ROLE_NOTATION_SYSTEM_ID,
73*6be67779SAndroid Build Coastguard Worker   XML_ROLE_NOTATION_NO_SYSTEM_ID,
74*6be67779SAndroid Build Coastguard Worker   XML_ROLE_NOTATION_PUBLIC_ID,
75*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTRIBUTE_NAME,
76*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTRIBUTE_TYPE_CDATA,
77*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTRIBUTE_TYPE_ID,
78*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTRIBUTE_TYPE_IDREF,
79*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTRIBUTE_TYPE_IDREFS,
80*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTRIBUTE_TYPE_ENTITY,
81*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTRIBUTE_TYPE_ENTITIES,
82*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTRIBUTE_TYPE_NMTOKEN,
83*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTRIBUTE_TYPE_NMTOKENS,
84*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTRIBUTE_ENUM_VALUE,
85*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTRIBUTE_NOTATION_VALUE,
86*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTLIST_NONE,
87*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ATTLIST_ELEMENT_NAME,
88*6be67779SAndroid Build Coastguard Worker   XML_ROLE_IMPLIED_ATTRIBUTE_VALUE,
89*6be67779SAndroid Build Coastguard Worker   XML_ROLE_REQUIRED_ATTRIBUTE_VALUE,
90*6be67779SAndroid Build Coastguard Worker   XML_ROLE_DEFAULT_ATTRIBUTE_VALUE,
91*6be67779SAndroid Build Coastguard Worker   XML_ROLE_FIXED_ATTRIBUTE_VALUE,
92*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ELEMENT_NONE,
93*6be67779SAndroid Build Coastguard Worker   XML_ROLE_ELEMENT_NAME,
94*6be67779SAndroid Build Coastguard Worker   XML_ROLE_CONTENT_ANY,
95*6be67779SAndroid Build Coastguard Worker   XML_ROLE_CONTENT_EMPTY,
96*6be67779SAndroid Build Coastguard Worker   XML_ROLE_CONTENT_PCDATA,
97*6be67779SAndroid Build Coastguard Worker   XML_ROLE_GROUP_OPEN,
98*6be67779SAndroid Build Coastguard Worker   XML_ROLE_GROUP_CLOSE,
99*6be67779SAndroid Build Coastguard Worker   XML_ROLE_GROUP_CLOSE_REP,
100*6be67779SAndroid Build Coastguard Worker   XML_ROLE_GROUP_CLOSE_OPT,
101*6be67779SAndroid Build Coastguard Worker   XML_ROLE_GROUP_CLOSE_PLUS,
102*6be67779SAndroid Build Coastguard Worker   XML_ROLE_GROUP_CHOICE,
103*6be67779SAndroid Build Coastguard Worker   XML_ROLE_GROUP_SEQUENCE,
104*6be67779SAndroid Build Coastguard Worker   XML_ROLE_CONTENT_ELEMENT,
105*6be67779SAndroid Build Coastguard Worker   XML_ROLE_CONTENT_ELEMENT_REP,
106*6be67779SAndroid Build Coastguard Worker   XML_ROLE_CONTENT_ELEMENT_OPT,
107*6be67779SAndroid Build Coastguard Worker   XML_ROLE_CONTENT_ELEMENT_PLUS,
108*6be67779SAndroid Build Coastguard Worker   XML_ROLE_PI,
109*6be67779SAndroid Build Coastguard Worker   XML_ROLE_COMMENT,
110*6be67779SAndroid Build Coastguard Worker #ifdef XML_DTD
111*6be67779SAndroid Build Coastguard Worker   XML_ROLE_TEXT_DECL,
112*6be67779SAndroid Build Coastguard Worker   XML_ROLE_IGNORE_SECT,
113*6be67779SAndroid Build Coastguard Worker   XML_ROLE_INNER_PARAM_ENTITY_REF,
114*6be67779SAndroid Build Coastguard Worker #endif /* XML_DTD */
115*6be67779SAndroid Build Coastguard Worker   XML_ROLE_PARAM_ENTITY_REF
116*6be67779SAndroid Build Coastguard Worker };
117*6be67779SAndroid Build Coastguard Worker 
118*6be67779SAndroid Build Coastguard Worker typedef struct prolog_state {
119*6be67779SAndroid Build Coastguard Worker   int(PTRCALL *handler)(struct prolog_state *state, int tok, const char *ptr,
120*6be67779SAndroid Build Coastguard Worker                         const char *end, const ENCODING *enc);
121*6be67779SAndroid Build Coastguard Worker   unsigned level;
122*6be67779SAndroid Build Coastguard Worker   int role_none;
123*6be67779SAndroid Build Coastguard Worker #ifdef XML_DTD
124*6be67779SAndroid Build Coastguard Worker   unsigned includeLevel;
125*6be67779SAndroid Build Coastguard Worker   int documentEntity;
126*6be67779SAndroid Build Coastguard Worker   int inEntityValue;
127*6be67779SAndroid Build Coastguard Worker #endif /* XML_DTD */
128*6be67779SAndroid Build Coastguard Worker } PROLOG_STATE;
129*6be67779SAndroid Build Coastguard Worker 
130*6be67779SAndroid Build Coastguard Worker void XmlPrologStateInit(PROLOG_STATE *state);
131*6be67779SAndroid Build Coastguard Worker #ifdef XML_DTD
132*6be67779SAndroid Build Coastguard Worker void XmlPrologStateInitExternalEntity(PROLOG_STATE *state);
133*6be67779SAndroid Build Coastguard Worker #endif /* XML_DTD */
134*6be67779SAndroid Build Coastguard Worker 
135*6be67779SAndroid Build Coastguard Worker #define XmlTokenRole(state, tok, ptr, end, enc)                                \
136*6be67779SAndroid Build Coastguard Worker   (((state)->handler)(state, tok, ptr, end, enc))
137*6be67779SAndroid Build Coastguard Worker 
138*6be67779SAndroid Build Coastguard Worker #ifdef __cplusplus
139*6be67779SAndroid Build Coastguard Worker }
140*6be67779SAndroid Build Coastguard Worker #endif
141*6be67779SAndroid Build Coastguard Worker 
142*6be67779SAndroid Build Coastguard Worker #endif /* not XmlRole_INCLUDED */
143