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