00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 typedef struct XML_userData USERDATA;
00027 struct XML_userData {
00028 DELETE_USERDATA * delete_method;
00029 int status;
00030
00031 XML_Parser parser;
00032 HTRequest * request;
00033 HTStream * target;
00034 SGML_dtd * dtd;
00035 int suppress_is_default;
00036
00037 prolog_term parsed_term;
00038 prolog_term parsed_term_tail;
00039 int stackptr;
00040 int stacksize;
00041 struct stack_node {
00042 XML_Char *tag;
00043 int suppress;
00044
00045 prolog_term elt_term;
00046 prolog_term content_list_tail;
00047 } *stack;
00048 };
00049
00050
00051
00052
00053 PRIVATE USERDATA *xml_create_userData(XML_Parser parser,
00054 HTRequest *request,
00055 HTStream *target_stream);
00056 PRIVATE void xml_delete_userData(void *me);
00057
00058 PRIVATE int xml_push_element (USERDATA *userdata,
00059 const XML_Char *tag,
00060 const XML_Char **attrs);
00061 PRIVATE void xml_pop_element(USERDATA *userdata);
00062 PRIVATE void xml_push_suppressed_element(USERDATA *userdata,
00063 const XML_Char *tag);
00064 PRIVATE void xml_pop_suppressed_element(USERDATA *userdata);
00065 PRIVATE void collect_xml_attributes (prolog_term elt_term,
00066 const XML_Char **attrs);
00067
00068
00069 PRIVATE void xml_addText (void *userdata,
00070 const XML_Char *textbuf,
00071 int len);
00072 PRIVATE void xml_beginElement(void *userdata,
00073 const XML_Char *tag,
00074 const XML_Char **attributes);
00075 PRIVATE void xml_endElement(void *userdata, const XML_Char *tag);
00076
00077
00078 PRIVATE void xml_processingInstruction (void *userData,
00079 const XML_Char *target,
00080 const XML_Char *data);
00081 PRIVATE void xml_unparsedEntityDecl (void *userData,
00082 const XML_Char *entityName,
00083 const XML_Char *base,
00084 const XML_Char *systemId,
00085 const XML_Char *publicId,
00086 const XML_Char *notationName);
00087 PRIVATE void xml_notationDecl (void *userData,
00088 const XML_Char *notationName,
00089 const XML_Char *base,
00090 const XML_Char *systemId,
00091 const XML_Char *publicId);
00092 PRIVATE int xml_externalEntityRef (XML_Parser parser,
00093 const XML_Char *openEntityNames,
00094 const XML_Char *base,
00095 const XML_Char *systemId,
00096 const XML_Char *publicId);
00097 PRIVATE int xml_unknownEncoding (void *encodingHandlerData,
00098 const XML_Char *name,
00099 XML_Encoding *info);
00100
00101
00102
00103
00104 PRIVATE prolog_term xml_push_dummy(USERDATA *userdata);