/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd
See the file COPYING for copying permission.
*/
#ifndef XmlTok_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
/* The following token may be returned by XmlContentTok */
start of illegal ]]> sequence */
/* The following tokens may be returned by both XmlPrologTok and
XmlContentTok.
*/
might be part of CRLF sequence */
#define XML_TOK_INVALID 0
/* The following tokens are returned by XmlContentTok; some are also
returned by XmlAttributeValueTok, XmlEntityTok, XmlCdataSectionTok.
*/
/* The following tokens may be returned by both XmlPrologTok and
XmlContentTok.
*/
/* The following tokens are returned only by XmlPrologTok */
/* The following occur only in element type declarations */
/* The following token is returned only by XmlAttributeValueTok */
/* The following token is returned only by XmlCdataSectionTok */
/* With namespace processing this is returned by XmlPrologTok for a
name with a colon.
*/
#ifdef XML_DTD
#endif /* XML_DTD */
#ifdef XML_DTD
#else /* not XML_DTD */
#endif /* not XML_DTD */
#define XML_PROLOG_STATE 0
#ifdef XML_DTD
#endif /* XML_DTD */
#define XML_ATTRIBUTE_VALUE_LITERAL 0
/* The size of the buffer passed to XmlUtf8Encode must be at least this. */
/* The size of the buffer passed to XmlUtf16Encode must be at least this. */
typedef struct position {
/* first line and first column are 0 not 1 */
} POSITION;
typedef struct {
const char *name;
const char *valuePtr;
const char *valueEnd;
char normalized;
} ATTRIBUTE;
struct encoding;
const char *,
const char *,
const char **);
struct encoding {
const char *,
const char *);
const char *,
const char *,
const char *);
const char *ptr,
int attsMax,
const char *,
const char *);
const char *ptr,
const char *end,
POSITION *);
const char *ptr,
const char *end,
const char **badPtr);
const char **fromP,
const char *fromLim,
char **toP,
const char *toLim);
const char **fromP,
const char *fromLim,
unsigned short **toP,
const unsigned short *toLim);
int minBytesPerChar;
char isUtf8;
char isUtf16;
};
/* Scan the string starting at ptr until the end of the next complete
token, but do not scan past eptr. Return an integer giving the
type of token.
Return XML_TOK_NONE when ptr == eptr; nextTokPtr will not be set.
Return XML_TOK_PARTIAL when the string does not contain a complete
token; nextTokPtr will not be set.
Return XML_TOK_INVALID when the string does not start a valid
token; nextTokPtr will be set to point to the character which made
the token invalid.
Otherwise the string starts with a valid token; nextTokPtr will be
set to point to the character following the end of that token.
Each data character counts as a single token, but adjacent data
characters may be returned together. Similarly for characters in
the prolog outside literals, comments and processing instructions.
*/
#ifdef XML_DTD
#endif /* XML_DTD */
/* This is used for performing a 2nd-level tokenization on the content
of a literal that has already been returned by XmlTok.
*/
typedef struct {
int XmlParseXmlDecl(int isGeneralTextEntity,
const char *ptr,
const char *end,
const char **badPtr,
const char **versionPtr,
const char **versionEndPtr,
const char **encodingNamePtr,
const ENCODING **namedEncodingPtr,
int *standalonePtr);
const ENCODING *XmlGetUtf8InternalEncoding(void);
const ENCODING *XmlGetUtf16InternalEncoding(void);
int XmlSizeOfUnknownEncoding(void);
ENCODING *
XmlInitUnknownEncoding(void *mem,
int *table,
void *userData);
int XmlParseXmlDeclNS(int isGeneralTextEntity,
const char *ptr,
const char *end,
const char **badPtr,
const char **versionPtr,
const char **versionEndPtr,
const char **encodingNamePtr,
const ENCODING **namedEncodingPtr,
int *standalonePtr);
const ENCODING *XmlGetUtf8InternalEncodingNS(void);
const ENCODING *XmlGetUtf16InternalEncodingNS(void);
ENCODING *
XmlInitUnknownEncodingNS(void *mem,
int *table,
void *userData);
#ifdef __cplusplus
}
#endif
#endif /* not XmlTok_INCLUDED */