]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/gdome_xslt/C/gdome_xslt/gdome_xslt.h
ocaml 3.09 transition
[helm.git] / helm / DEVEL / gdome_xslt / C / gdome_xslt / gdome_xslt.h
index 7ae286d826a554f5c0014e1892d6b98872017684..383208770f57e6fc03721a3e273aebb5ad1ac8ba 100644 (file)
@@ -1,11 +1,14 @@
+
 /* This file implements a XSLT engine working on Gdome documents. In fact,
  * it just maps Gdome documents to libxml documents back and forth, and
- * applyes the transformation on libxml documents using libxlt.
+ * applies the transformation on libxml documents using libxlt.
  * 
  * The code is largely based on the code of T.J. Mather's XML::GDOME::XSLT
  * Perl module (http://kobesearch.cpan.org/search?dist=XML-GDOME-XSLT)
  *
- * Copyright (C) 2002 Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>
+ * Copyright (C) 2002:
+ *     Claudio Sacerdoti Coen          <sacerdot@cs.unibo.it>
+ *     Stefano Zacchiroli              <zack@cs.unibo.it>
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- * For more information, please send an email to <sacerdot@cs.unibo.it>
+ * For more information, please send an email to {sacerdot,zack}@cs.unibo.it
  */
 
+#ifndef __gdome_xslt_h__
+#define __gdome_xslt_h__
+
+#include <gdome.h>
+#include <libxslt/xsltconfig.h>
+#include <libxslt/xslt.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/transform.h>
+#include <libxslt/imports.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+       /******************************/
+       /* XSLT stylesheet Processing */
+       /******************************/
+
+xsltStylesheetPtr      processStylesheet       (GdomeDocument* style);
+
+
+       /*******************************/
+       /* XSLT stylesheet Application */
+       /*******************************/
+
+GdomeDocument*                 applyStylesheet         (GdomeDocument* source,
+                                                xsltStylesheetPtr style_libxslt,
+                                                const char** params);
+
+       /******************/
+       /* Results Output */
+       /******************/
+
+int                    saveResultToFilename    (const char* name,
+                                                GdomeDocument* result,
+                                                xsltStylesheetPtr style_libxslt,
+                                                int compression);
+int                    saveResultToFile        (FILE* file,
+                                                GdomeDocument* result,
+                                                xsltStylesheetPtr style_libxslt);
+int                    saveResultToFd          (int fd,
+                                                GdomeDocument* result,
+                                                xsltStylesheetPtr style_libxslt);
+
+       /**********************************************/
+       /* Error and Debugging Callbacks Registration */
+       /**********************************************/
+
+typedef                        void(*gdomeXsltMsgCallback)(const char *);
+
+void                   setErrorCallback        (gdomeXsltMsgCallback callback);
+void                   setDebugCallback        (gdomeXsltMsgCallback callback);
 
-xsltStylesheetPtr processStylesheet(GdomeDocument* style);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
 
-GdomeDocument* applyStylesheet(GdomeDocument* source, xsltStylesheetPtr style_libxslt, const char** params);
+#endif /* __gdome_xslt_h__ */