Main Page   Modules   Namespace List   Data Structures   File List   Data Fields   Examples  

SgmlExtensionHtml.h

00001 /*
00002  * libsgml -- SGML state machine parsing library.
00003  *                                                                  
00004  * Copyright (c) 2002 Uninformed Research (http://www.uninformed.org)
00005  * All rights reserved.
00006  *
00007  * skape
00008  * [email protected]
00009  */
00018 #ifndef _LIBSGML_SGMLEXTENSIONHTML_H
00019 #define _LIBSGML_SGMLEXTENSIONHTML_H
00020 
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif 
00024 
00025 #include "DomDocument.h"
00026 #include "DomElement.h"
00027 #include "DomText.h"
00028 #include "DomComment.h"
00029 
00030 #include "DomNodeList.h"
00031 
00053 #define SGML_EXTENSION_HTML_PARAM_FLAG            0x00000001
00054 
00059 #define SGML_EXTENSION_HTML_PARAM_SETKNOWNTAGS    0x00000002
00060 
00066 #define SGML_EXTENSION_HTML_FLAG_STRIPELEMENT      (1 << 0)
00067 
00072 #define SGML_EXTENSION_HTML_FLAG_STRIPTEXT         (1 << 1)
00073 
00078 #define SGML_EXTENSION_HTML_FLAG_STRIPCOMMENT      (1 << 2)
00079 
00084 #define SGML_EXTENSION_HTML_FLAG_IGNOREBLANKLINES  (1 << 3)
00085 
00090 #define SGML_EXTENSION_HTML_FLAG_ESCAPEUNKNOWNTAGS (1 << 4)
00091 
00096 typedef struct _sgml_extension_html {
00097 
00098         DOM_DOCUMENT  *document;
00099         DOM_ELEMENT   *currElement;
00100 
00101         unsigned char skipNextAttribute;
00102 
00103         unsigned long flags;
00104 
00105         char          **knownTags;
00106 
00107         void (*saveDivert)(struct _sgml_parser *parser, unsigned long newIndex, unsigned long oldState, unsigned long newState, const char *lastBuffer, unsigned long lastBufferSize);  
00108 
00109 } SGML_EXTENSION_HTML;
00110 
00111 SGML_EXTENSION_HTML *sgmlExtensionHtmlNew(SGML_PARSER *parser);
00112 void sgmlExtensionHtmlDestroy(SGML_PARSER *parser, SGML_EXTENSION_HTML *ext);
00113 
00114 void sgmlExtensionHtmlInitialize(SGML_PARSER *parser, void *userContext);
00115 void sgmlExtensionHtmlElementBegin(SGML_PARSER *parser, void *userContext, const char *elementName);
00116 void sgmlExtensionHtmlElementEnd(SGML_PARSER *parser, void *userContext, const char *elementName);
00117 void sgmlExtensionHtmlAttributeNew(SGML_PARSER *parser, void *userContext, const char *attributeName, const char *attributeValue);
00118 void sgmlExtensionHtmlTextNew(SGML_PARSER *parser, void *userContext, const char *text);
00119 void sgmlExtensionHtmlCommentNew(SGML_PARSER *parser, void *userContext, const char *comment);
00120 void sgmlExtensionHtmlDeinitialize(SGML_PARSER *parser, void *userContext);
00121 
00146 void sgmlExtensionHtmlSetParam(SGML_PARSER *parser, void *extensionContext, unsigned long param, void *value);
00155 void sgmlExtensionHtmlGetParam(SGML_PARSER *parser, void *extensionContext, unsigned long param, void *value);
00156 
00162 DOM_DOCUMENT *sgmlExtensionHtmlGetDocument(SGML_PARSER *parser);
00163 
00168 #ifdef __cplusplus
00169 }
00170 #endif 
00171 
00172 #endif

Generated on Tue Mar 25 19:49:04 2003 for libsgml by doxygen1.3-rc3