dtd.h File Reference

#include "sgmldefs.h"
#include "parser.h"

Data Structures

struct  _dtd_srcloc
struct  _dtd_error
struct  _dtd_symbol
struct  _dtd_symbol_table
struct  _dtd_entity
struct  _dtd_notation
struct  _dtd_element_list
struct  _dtd_name_list
struct  _dtd_attr
struct  _dtd_attr_list
struct  _dtd_model
struct  _dtd_edef
struct  _dtd_map
struct  _dtd_shortref
struct  _dtd_element
struct  _dtd_charmap
struct  _dtd_charclass
struct  _dtd_charfunc
struct  _dtd

Defines

#define CH_WHITE   0x0001
#define CH_LCLETTER   0x0002
#define CH_UCLETTER   0x0004
#define CH_CNMSTRT   0x0008
#define CH_CNM   0x0010
#define CH_DIGIT   0x0020
#define CH_RE   0x0040
#define CH_RS   0x0080
#define CH_LETTER   (CH_LCLETTER|CH_UCLETTER)
#define CH_NMSTART   (CH_LCLETTER|CH_UCLETTER|CH_CNMSTRT)
#define CH_NAME   (CH_NMSTART|CH_DIGIT|CH_CNM)
#define CH_BLANK   (CH_WHITE|CH_RE|CH_RS)
#define CHR_BLANK   0x1
#define CHR_DBLANK   0x2
#define SGML_DTD_MAGIC   0x7364573

Typedefs

typedef _dtd_srcloc dtd_srcloc
typedef _dtd_error dtd_error
typedef _dtd_symbol dtd_symbol
typedef _dtd_symbol_table dtd_symbol_table
typedef _dtd_entity dtd_entity
typedef _dtd_notation dtd_notation
typedef _dtd_element_list dtd_element_list
typedef _dtd_name_list dtd_name_list
typedef _dtd_attr dtd_attr
typedef _dtd_attr_list dtd_attr_list
typedef _dtd_model dtd_model
typedef _dtd_edef dtd_edef
typedef _dtd_map dtd_map
typedef _dtd_shortref dtd_shortref
typedef _dtd_element dtd_element
typedef _dtd_charmap dtd_charmap
typedef _dtd_charclass dtd_charclass
typedef _dtd_charfunc dtd_charfunc
typedef _dtd dtd

Enumerations

enum  charfunc {
  CF_STAGO = 0, CF_STAGC, CF_ETAGO1, CF_ETAGO2,
  CF_VI, CF_NS, CF_LIT, CF_LITA,
  CF_PERO, CF_ERO, CF_ERC, CF_MDO1,
  CF_MDO2, CF_MDC, CF_PRO1, CF_PRO2,
  CF_PRC, CF_GRPO, CF_GRPC, CF_SEQ,
  CF_AND, CF_OR, CF_OPT, CF_PLUS,
  CF_DSO, CF_DSC, CF_REP, CF_RS,
  CF_RE, CF_CMT, CF_NG, CF_ENDTABLE
}
enum  dtd_char_encoding { ENC_ISO_LATIN1, ENC_UTF8 }
enum  contenttype {
  C_CDATA, C_PCDATA, C_RCDATA, C_EMPTY,
  C_ANY
}
enum  modelcard { MC_ONE, MC_OPT, MC_REP, MC_PLUS }
enum  modeltype {
  MT_UNDEF = 0, MT_PCDATA, MT_ELEMENT, MT_SEQ,
  MT_AND, MT_OR
}
enum  attrtype {
  AT_CDATA, AT_ENTITY, AT_ENTITIES, AT_ID,
  AT_IDREF, AT_IDREFS, AT_NAME, AT_NAMES,
  AT_NAMEOF, AT_NMTOKEN, AT_NMTOKENS, AT_NOTATION,
  AT_NUMBER, AT_NUMBERS, AT_NUTOKEN, AT_NUTOKENS
}
enum  attrdef {
  AT_FIXED, AT_REQUIRED, AT_CURRENT, AT_CONREF,
  AT_IMPLIED, AT_DEFAULT
}
enum  entity_type { ET_SYSTEM, ET_PUBLIC, ET_LITERAL }
enum  data_type {
  EC_SGML, EC_STARTTAG, EC_ENDTAG, EC_CDATA,
  EC_SDATA, EC_NDATA, EC_PI
}
enum  dtd_dialect { DL_SGML, DL_XML, DL_XMLNS }
enum  dtd_option { OPT_SHORTTAG }
enum  dtd_space_mode {
  SP_PRESERVE = 0, SP_DEFAULT, SP_REMOVE, SP_SGML,
  SP_INHERIT
}
enum  dtd_number_mode { NU_TOKEN, NU_INTEGER }
enum  dtd_error_severity { ERS_WARNING, ERS_ERROR, ERS_STYLE }
enum  dtd_error_id {
  ERC_REPRESENTATION, ERC_RESOURCE, ERC_LIMIT, ERC_VALIDATE,
  ERC_SYNTAX_ERROR, ERC_EXISTENCE, ERC_REDEFINED, ERC_SYNTAX_WARNING,
  ERC_DOMAIN, ERC_OMITTED_CLOSE, ERC_OMITTED_OPEN, ERC_NOT_OPEN,
  ERC_NOT_ALLOWED, ERC_NOT_ALLOWED_PCDATA, ERC_NO_ATTRIBUTE, ERC_NO_ATTRIBUTE_VALUE,
  ERC_NO_VALUE, ERC_NO_DOCTYPE
}
enum  input_type { IN_NONE, IN_FILE, IN_ENTITY }

Functions

dtd_charfuncnew_charfunc (void)
dtd_charclassnew_charclass (void)
dtd_charmapnew_charmap (void)
dtd_symboldtd_find_symbol (dtd *dtd, const ichar *name)
dtd_symboldtd_add_symbol (dtd *dtd, const ichar *name)
dtdfile_to_dtd (const char *file, const char *doctype, dtd_dialect dialect)
int sgml_process_file (dtd_parser *p, const char *file, unsigned flags)
dtd_parsernew_dtd_parser (dtd *dtd)
void free_dtd_parser (dtd_parser *p)
void free_dtd (dtd *dtd)
int load_dtd_from_file (dtd_parser *p, const char *file)
dtdnew_dtd (const ichar *doctype)
int set_dialect_dtd (dtd *dtd, dtd_dialect dialect)
static int set_option_dtd (dtd *dtd, dtd_option option, char *set)
void putchar_dtd_parser (dtd_parser *p, int chr)
int begin_document_dtd_parser (dtd_parser *p)
int end_document_dtd_parser (dtd_parser *p)
void reset_document_dtd_parser (dtd_parser *p)
void set_src_dtd_parser (dtd_parser *p, input_type in, const char *file)
void set_mode_dtd_parser (dtd_parser *p, data_mode mode)
void sgml_cplocation (dtd_srcloc *dst, dtd_srcloc *src)

Define Documentation

#define CH_BLANK   (CH_WHITE|CH_RE|CH_RS)
 

#define CH_CNM   0x0010
 

#define CH_CNMSTRT   0x0008
 

#define CH_DIGIT   0x0020
 

#define CH_LCLETTER   0x0002
 

#define CH_LETTER   (CH_LCLETTER|CH_UCLETTER)
 

#define CH_NAME   (CH_NMSTART|CH_DIGIT|CH_CNM)
 

#define CH_NMSTART   (CH_LCLETTER|CH_UCLETTER|CH_CNMSTRT)
 

#define CH_RE   0x0040
 

#define CH_RS   0x0080
 

#define CH_UCLETTER   0x0004
 

#define CH_WHITE   0x0001
 

#define CHR_BLANK   0x1
 

#define CHR_DBLANK   0x2
 

#define SGML_DTD_MAGIC   0x7364573
 


Typedef Documentation

typedef struct _dtd dtd
 

typedef struct _dtd_attr dtd_attr
 

typedef struct _dtd_attr_list dtd_attr_list
 

typedef struct _dtd_charclass dtd_charclass
 

typedef struct _dtd_charfunc dtd_charfunc
 

typedef struct _dtd_charmap dtd_charmap
 

typedef struct _dtd_edef dtd_edef
 

typedef struct _dtd_element dtd_element
 

typedef struct _dtd_element_list dtd_element_list
 

typedef struct _dtd_entity dtd_entity
 

typedef struct _dtd_error dtd_error
 

typedef struct _dtd_map dtd_map
 

typedef struct _dtd_model dtd_model
 

typedef struct _dtd_name_list dtd_name_list
 

typedef struct _dtd_notation dtd_notation
 

typedef struct _dtd_shortref dtd_shortref
 

typedef struct _dtd_srcloc dtd_srcloc
 

typedef struct _dtd_symbol dtd_symbol
 

typedef struct _dtd_symbol_table dtd_symbol_table
 


Enumeration Type Documentation

enum attrdef
 

Enumerator:
AT_FIXED 
AT_REQUIRED 
AT_CURRENT 
AT_CONREF 
AT_IMPLIED 
AT_DEFAULT 

enum attrtype
 

Enumerator:
AT_CDATA 
AT_ENTITY 
AT_ENTITIES 
AT_ID 
AT_IDREF 
AT_IDREFS 
AT_NAME 
AT_NAMES 
AT_NAMEOF 
AT_NMTOKEN 
AT_NMTOKENS 
AT_NOTATION 
AT_NUMBER 
AT_NUMBERS 
AT_NUTOKEN 
AT_NUTOKENS 

enum charfunc
 

Enumerator:
CF_STAGO 
CF_STAGC 
CF_ETAGO1 
CF_ETAGO2 
CF_VI 
CF_NS 
CF_LIT 
CF_LITA 
CF_PERO 
CF_ERO 
CF_ERC 
CF_MDO1 
CF_MDO2 
CF_MDC 
CF_PRO1 
CF_PRO2 
CF_PRC 
CF_GRPO 
CF_GRPC 
CF_SEQ 
CF_AND 
CF_OR 
CF_OPT 
CF_PLUS 
CF_DSO 
CF_DSC 
CF_REP 
CF_RS 
CF_RE 
CF_CMT 
CF_NG 
CF_ENDTABLE 

enum contenttype
 

Enumerator:
C_CDATA 
C_PCDATA 
C_RCDATA 
C_EMPTY 
C_ANY 

enum data_type
 

Enumerator:
EC_SGML 
EC_STARTTAG 
EC_ENDTAG 
EC_CDATA 
EC_SDATA 
EC_NDATA 
EC_PI 

enum dtd_char_encoding
 

Enumerator:
ENC_ISO_LATIN1 
ENC_UTF8 

enum dtd_dialect
 

Enumerator:
DL_SGML 
DL_XML 
DL_XMLNS 

enum dtd_error_id
 

Enumerator:
ERC_REPRESENTATION 
ERC_RESOURCE 
ERC_LIMIT 
ERC_VALIDATE 
ERC_SYNTAX_ERROR 
ERC_EXISTENCE 
ERC_REDEFINED 
ERC_SYNTAX_WARNING 
ERC_DOMAIN 
ERC_OMITTED_CLOSE 
ERC_OMITTED_OPEN 
ERC_NOT_OPEN 
ERC_NOT_ALLOWED 
ERC_NOT_ALLOWED_PCDATA 
ERC_NO_ATTRIBUTE 
ERC_NO_ATTRIBUTE_VALUE 
ERC_NO_VALUE 
ERC_NO_DOCTYPE 

enum dtd_error_severity
 

Enumerator:
ERS_WARNING 
ERS_ERROR 
ERS_STYLE 

enum dtd_number_mode
 

Enumerator:
NU_TOKEN 
NU_INTEGER 

enum dtd_option
 

Enumerator:
OPT_SHORTTAG 

enum dtd_space_mode
 

Enumerator:
SP_PRESERVE 
SP_DEFAULT 
SP_REMOVE 
SP_SGML 
SP_INHERIT 

enum entity_type
 

Enumerator:
ET_SYSTEM 
ET_PUBLIC 
ET_LITERAL 

enum input_type
 

Enumerator:
IN_NONE 
IN_FILE 
IN_ENTITY 

enum modelcard
 

Enumerator:
MC_ONE 
MC_OPT 
MC_REP 
MC_PLUS 

enum modeltype
 

Enumerator:
MT_UNDEF 
MT_PCDATA 
MT_ELEMENT 
MT_SEQ 
MT_AND 
MT_OR 


Function Documentation

int begin_document_dtd_parser dtd_parser p  ) 
 

dtd_symbol* dtd_add_symbol dtd dtd,
const ichar name
 

Add specified symbol to dtd symbol table Input : pointer to dtd object, symbol name string Output : added dtd symbol table entry

dtd_symbol* dtd_find_symbol dtd dtd,
const ichar name
 

int end_document_dtd_parser dtd_parser p  ) 
 

Wrapper for end_document_dtd_parser

dtd* file_to_dtd const char *  file,
const char *  doctype,
dtd_dialect  dialect
 

void free_dtd dtd dtd  ) 
 

Function to free the dtd object

void free_dtd_parser dtd_parser p  ) 
 

Function to free the parser object

int load_dtd_from_file dtd_parser p,
const char *  file
 

Load the dtd from a file either local or remote Input : pointer to parser object, file path Output : TRUE on success/ FALSE on failure

dtd_charclass* new_charclass void   ) 
 

dtd_charfunc* new_charfunc void   ) 
 

dtd_charmap* new_charmap void   ) 
 

dtd * new_dtd const ichar doctype  ) 
 

Dtd object constructor for the C side dtd object Input : doctype string Output : Initialized dtd object pointer

dtd_parser * new_dtd_parser dtd dtd  ) 
 

Create a new parser for the specified dtd. This dtd is used to validate the xml document which is parsed by the parser. Input: dtd object Output: Parser object

void putchar_dtd_parser dtd_parser p,
int  chr
 

This is the main parsing function which is invoked to parse the xml when the input source is read character by character. Input : parser object pointer, newly read character Output : none

void reset_document_dtd_parser dtd_parser p  ) 
 

Reset the parser which ensures a clean start of parsing Input : parser object pointer Output : none

int set_dialect_dtd dtd dtd,
dtd_dialect  dialect
 

Set the xml dialect in dtd. The dialect may be XML, XMLNS, SGML Input : The dtd object pointer, xml dialect Output : none

void set_mode_dtd_parser dtd_parser p,
data_mode  m
 

Sets the parsing mode of parser. Mode may be dtd mode or xml data mode Input : parser object pointer, mode Output : none

static int set_option_dtd dtd dtd,
dtd_option  option,
char *  set
[static]
 

void set_src_dtd_parser dtd_parser p,
input_type  type,
const char *  name
 

Set the xml source in the parser Input : pointer to parser object, input type, name of source Output : void

void sgml_cplocation dtd_srcloc dst,
dtd_srcloc src
 

int sgml_process_file dtd_parser p,
const char *  file,
unsigned  flags
 

Helper function to download the files which contain entity declarations.


Generated on Wed Jul 26 13:26:56 2006 for XSB by  doxygen 1.4.5