1104349Sphk/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd
2104349Sphk   See the file COPYING for copying permission.
3104349Sphk*/
4104349Sphk
5104349Sphk#ifndef XmlRole_INCLUDED
6104349Sphk#define XmlRole_INCLUDED 1
7104349Sphk
8104349Sphk#ifdef __VMS
9104349Sphk/*      0        1         2         3      0        1         2         3
10104349Sphk        1234567890123456789012345678901     1234567890123456789012345678901 */
11178848Scokane#define XmlPrologStateInitExternalEntity    XmlPrologStateInitExternalEnt
12104349Sphk#endif
13104349Sphk
14104349Sphk#include "xmltok.h"
15104349Sphk
16104349Sphk#ifdef __cplusplus
17104349Sphkextern "C" {
18104349Sphk#endif
19104349Sphk
20104349Sphkenum {
21104349Sphk  XML_ROLE_ERROR = -1,
22104349Sphk  XML_ROLE_NONE = 0,
23104349Sphk  XML_ROLE_XML_DECL,
24104349Sphk  XML_ROLE_INSTANCE_START,
25104349Sphk  XML_ROLE_DOCTYPE_NONE,
26104349Sphk  XML_ROLE_DOCTYPE_NAME,
27104349Sphk  XML_ROLE_DOCTYPE_SYSTEM_ID,
28104349Sphk  XML_ROLE_DOCTYPE_PUBLIC_ID,
29104349Sphk  XML_ROLE_DOCTYPE_INTERNAL_SUBSET,
30104349Sphk  XML_ROLE_DOCTYPE_CLOSE,
31104349Sphk  XML_ROLE_GENERAL_ENTITY_NAME,
32104349Sphk  XML_ROLE_PARAM_ENTITY_NAME,
33104349Sphk  XML_ROLE_ENTITY_NONE,
34104349Sphk  XML_ROLE_ENTITY_VALUE,
35104349Sphk  XML_ROLE_ENTITY_SYSTEM_ID,
36104349Sphk  XML_ROLE_ENTITY_PUBLIC_ID,
37104349Sphk  XML_ROLE_ENTITY_COMPLETE,
38104349Sphk  XML_ROLE_ENTITY_NOTATION_NAME,
39104349Sphk  XML_ROLE_NOTATION_NONE,
40104349Sphk  XML_ROLE_NOTATION_NAME,
41104349Sphk  XML_ROLE_NOTATION_SYSTEM_ID,
42104349Sphk  XML_ROLE_NOTATION_NO_SYSTEM_ID,
43104349Sphk  XML_ROLE_NOTATION_PUBLIC_ID,
44104349Sphk  XML_ROLE_ATTRIBUTE_NAME,
45104349Sphk  XML_ROLE_ATTRIBUTE_TYPE_CDATA,
46104349Sphk  XML_ROLE_ATTRIBUTE_TYPE_ID,
47104349Sphk  XML_ROLE_ATTRIBUTE_TYPE_IDREF,
48104349Sphk  XML_ROLE_ATTRIBUTE_TYPE_IDREFS,
49104349Sphk  XML_ROLE_ATTRIBUTE_TYPE_ENTITY,
50104349Sphk  XML_ROLE_ATTRIBUTE_TYPE_ENTITIES,
51104349Sphk  XML_ROLE_ATTRIBUTE_TYPE_NMTOKEN,
52104349Sphk  XML_ROLE_ATTRIBUTE_TYPE_NMTOKENS,
53104349Sphk  XML_ROLE_ATTRIBUTE_ENUM_VALUE,
54104349Sphk  XML_ROLE_ATTRIBUTE_NOTATION_VALUE,
55104349Sphk  XML_ROLE_ATTLIST_NONE,
56104349Sphk  XML_ROLE_ATTLIST_ELEMENT_NAME,
57104349Sphk  XML_ROLE_IMPLIED_ATTRIBUTE_VALUE,
58104349Sphk  XML_ROLE_REQUIRED_ATTRIBUTE_VALUE,
59104349Sphk  XML_ROLE_DEFAULT_ATTRIBUTE_VALUE,
60104349Sphk  XML_ROLE_FIXED_ATTRIBUTE_VALUE,
61104349Sphk  XML_ROLE_ELEMENT_NONE,
62104349Sphk  XML_ROLE_ELEMENT_NAME,
63104349Sphk  XML_ROLE_CONTENT_ANY,
64104349Sphk  XML_ROLE_CONTENT_EMPTY,
65104349Sphk  XML_ROLE_CONTENT_PCDATA,
66104349Sphk  XML_ROLE_GROUP_OPEN,
67104349Sphk  XML_ROLE_GROUP_CLOSE,
68104349Sphk  XML_ROLE_GROUP_CLOSE_REP,
69104349Sphk  XML_ROLE_GROUP_CLOSE_OPT,
70104349Sphk  XML_ROLE_GROUP_CLOSE_PLUS,
71104349Sphk  XML_ROLE_GROUP_CHOICE,
72104349Sphk  XML_ROLE_GROUP_SEQUENCE,
73104349Sphk  XML_ROLE_CONTENT_ELEMENT,
74104349Sphk  XML_ROLE_CONTENT_ELEMENT_REP,
75104349Sphk  XML_ROLE_CONTENT_ELEMENT_OPT,
76104349Sphk  XML_ROLE_CONTENT_ELEMENT_PLUS,
77104349Sphk  XML_ROLE_PI,
78104349Sphk  XML_ROLE_COMMENT,
79104349Sphk#ifdef XML_DTD
80104349Sphk  XML_ROLE_TEXT_DECL,
81104349Sphk  XML_ROLE_IGNORE_SECT,
82104349Sphk  XML_ROLE_INNER_PARAM_ENTITY_REF,
83104349Sphk#endif /* XML_DTD */
84104349Sphk  XML_ROLE_PARAM_ENTITY_REF
85104349Sphk};
86104349Sphk
87104349Sphktypedef struct prolog_state {
88178848Scokane  int (PTRCALL *handler) (struct prolog_state *state,
89104349Sphk                          int tok,
90104349Sphk                          const char *ptr,
91104349Sphk                          const char *end,
92104349Sphk                          const ENCODING *enc);
93104349Sphk  unsigned level;
94104349Sphk  int role_none;
95104349Sphk#ifdef XML_DTD
96104349Sphk  unsigned includeLevel;
97104349Sphk  int documentEntity;
98104349Sphk  int inEntityValue;
99104349Sphk#endif /* XML_DTD */
100104349Sphk} PROLOG_STATE;
101104349Sphk
102104349Sphkvoid XmlPrologStateInit(PROLOG_STATE *);
103104349Sphk#ifdef XML_DTD
104104349Sphkvoid XmlPrologStateInitExternalEntity(PROLOG_STATE *);
105104349Sphk#endif /* XML_DTD */
106104349Sphk
107104349Sphk#define XmlTokenRole(state, tok, ptr, end, enc) \
108104349Sphk (((state)->handler)(state, tok, ptr, end, enc))
109104349Sphk
110104349Sphk#ifdef __cplusplus
111104349Sphk}
112104349Sphk#endif
113104349Sphk
114104349Sphk#endif /* not XmlRole_INCLUDED */
115