00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef OVAL_PARSER_H_
00031 #define OVAL_PARSER_H_
00032
00033 #include <libxml/xmlreader.h>
00034 #include "api/oval_agent_api.h"
00035
00036 struct oval_parser_context;
00037
00038 struct oval_object_model *oval_parser_context_model(struct oval_parser_context
00039 *context);
00040
00041 void oval_parser_parse(struct oval_object_model *, char *,
00042 oval_xml_error_handler, void *);
00043
00044 int oval_parser_boolean(const char *, int);
00045
00046 int oval_parser_boolean_attribute(xmlTextReaderPtr reader, char *attname,
00047 int defval);
00048
00049 int oval_parser_skip_tag(xmlTextReaderPtr reader,
00050 struct oval_parser_context *context);
00051
00052 typedef void (*oval_xml_value_consumer) (char *, void *);
00053
00054 int oval_parser_text_value(xmlTextReaderPtr reader,
00055 struct oval_parser_context *context,
00056 oval_xml_value_consumer, void *);
00057
00058 typedef int (*oval_xml_tag_parser) (xmlTextReaderPtr,
00059 struct oval_parser_context *, void *);
00060
00061 int oval_parser_parse_tag(xmlTextReaderPtr, struct oval_parser_context *,
00062 oval_xml_tag_parser, void *);
00063
00064 #endif