* 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
*)
let processStylesheet style =
in
new Gdome.document res
;;
+
+let saveResultToChannel ~outchan ~result ~stylesheet =
+ I_gdome_xslt.saveResultToChannel
+ ~outchan
+ ~result:result#as_Document
+ ~stylesheet
+;;
+
* 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
*)
-(* processStylesheet stylesheet *)
-(* Process a stylesheet so that it can be subsequently used *)
-(* with applyStylesheet. *)
-val processStylesheet :
- Gdome.document -> I_gdome_xslt.processed_stylesheet
+(* processStylesheet stylesheet *)
+(* Process a stylesheet so that it can be subsequently used *)
+(* with applyStylesheet. *)
+val processStylesheet:
+ Gdome.document ->
+ I_gdome_xslt.processed_stylesheet
(* applyStylesheet source stylesheet params *)
(* Applies a processed stylesheet to a source document, using *)
(* the given list of parameters (couples name,value) *)
-val applyStylesheet :
+val applyStylesheet:
source: Gdome.document ->
stylesheet:I_gdome_xslt.processed_stylesheet ->
- params:(string * string) list -> Gdome.document
+ params:(string * string) list ->
+ Gdome.document
+
+(* output the result of a previous XSLT transformation to an *)
+(* output channel *)
+val saveResultToChannel:
+ outchan: out_channel ->
+ result: Gdome.document ->
+ stylesheet: I_gdome_xslt.processed_stylesheet ->
+ unit
+
* 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
*)
exception ProcessStylesheetException
* 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
*)
(**************************** WARNING!!! ***********************************)
* 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
*)
type processed_stylesheet
-external setXsltMaxDepth : int -> unit = "setXsltMaxDepth"
+external setXsltMaxDepth:
+ int ->
+ unit
+ = "setXsltMaxDepth"
+
+external processStylesheet:
+ [> `Document] GdomeT.t ->
+ processed_stylesheet
+ = "ml_processStylesheet"
+
+external applyStylesheet:
+ source: [> `Document] GdomeT.t ->
+ stylesheet: processed_stylesheet ->
+ params: (string * string) list ->
+ TDocument.t
+ = "ml_applyStylesheet"
+
+external saveResultToChannel:
+ outchan: out_channel ->
+ result: TDocument.t ->
+ stylesheet: processed_stylesheet ->
+ unit
+ = "ml_saveResultToChannel"
-external processStylesheet: [> `Document] GdomeT.t -> processed_stylesheet = "ml_processStylesheet"
-external applyStylesheet : source:[> `Document] GdomeT.t -> stylesheet:processed_stylesheet -> params:(string * string) list -> TDocument.t = "ml_applyStylesheet"
* 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 <assert.h>
#include <libxslt/xsltconfig.h>
#include <libxslt/imports.h>
+#include "ocaml-io.h"
#include "mlgdomevalue.h"
#include "gdome_xslt.h"
}
CAMLreturn(Val_Document(res));
}
+
+value ml_saveResultToChannel(value channel,
+ value result,
+ value stylesheet)
+{
+ CAMLparam3(channel, result, stylesheet);
+
+ saveResultToFd((Channel(channel))->fd,
+ Document_val(result),
+ XsltStylesheetPtr_val(stylesheet));
+
+ CAMLreturn0;
+}
+
* 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 XsltStylesheetPtr_val(value);
value ml_processStylesheet(value style);
value ml_applyStylesheet(value source, value style, value params);
+
+value ml_saveResultToChannel(value channel, value result, value stylesheet);
+