* 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
*/
#include <stdio.h>
#include <libxslt/xsltutils.h>
#include <libxslt/transform.h>
#include <libxslt/imports.h>
+#include "gdome_xslt.h"
// Begin of Gdome internals exposed
typedef struct _Gdome_xml_Document Gdome_xml_Document;
return gdome_of_libxml(output_libxml);
}
+
+/***************** serialization functions *****************/
+
+int saveResultToFilename (const char* name,
+ GdomeDocument* result,
+ xsltStylesheetPtr style_libxslt,
+ int compression)
+{
+ xmlDocPtr result_libxml;
+
+ if (result == NULL) return -1;
+ result_libxml = libxml_of_gdome(result);
+
+ xsltSetGenericDebugFunc(NULL, NULL);
+
+ return xsltSaveResultToFilename(name,
+ result_libxml,
+ style_libxslt,
+ compression);
+}
+
+int saveResultToFile (FILE* file,
+ GdomeDocument* result,
+ xsltStylesheetPtr style_libxslt)
+{
+ xmlDocPtr result_libxml;
+
+ if (result == NULL) return -1;
+ result_libxml = libxml_of_gdome(result);
+
+ xsltSetGenericDebugFunc(NULL, NULL);
+
+ return xsltSaveResultToFile(file,
+ result_libxml,
+ style_libxslt);
+}
+
+int saveResultToFd (int fd,
+ GdomeDocument* result,
+ xsltStylesheetPtr style_libxslt)
+{
+ xmlDocPtr result_libxml;
+
+ if (result == NULL) return -1;
+ result_libxml = libxml_of_gdome(result);
+
+ xsltSetGenericDebugFunc(NULL, NULL);
+
+ return xsltSaveResultToFd(fd,
+ result_libxml,
+ style_libxslt);
+}
+
+
/* 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.
* 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
*/
-xsltStylesheetPtr processStylesheet(GdomeDocument* style);
+xsltStylesheetPtr processStylesheet (GdomeDocument* style);
+
+GdomeDocument* applyStylesheet (GdomeDocument* source,
+ xsltStylesheetPtr style_libxslt,
+ const char** params);
+
+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);
-GdomeDocument* applyStylesheet(GdomeDocument* source, xsltStylesheetPtr style_libxslt, const char** params);