1 /*
2 * Code for handling XSLT extensions
3 *
4 * Authors:
5 * Ted Gould <ted@gould.cx>
6 *
7 * Copyright (C) 2006-2007 Authors
8 *
9 * Released under GNU GPL, read the file 'COPYING' for more information
10 */
12 #ifndef __INKSCAPE_EXTENSION_IMPEMENTATION_XSLT_H__
13 #define __INKSCAPE_EXTENSION_IMPEMENTATION_XSLT_H__
15 #include "implementation.h"
17 #include "libxml/tree.h"
18 #include "libxslt/xslt.h"
19 #include "libxslt/xsltInternals.h"
21 namespace Inkscape {
22 namespace XML {
23 class Node;
24 }
25 }
28 namespace Inkscape {
29 namespace Extension {
30 namespace Implementation {
32 class XSLT : public Implementation {
33 private:
34 std::string _filename;
35 xmlDocPtr _parsedDoc;
36 xsltStylesheetPtr _stylesheet;
38 Glib::ustring solve_reldir(Inkscape::XML::Node *reprin);
39 public:
40 XSLT (void);
42 bool load(Inkscape::Extension::Extension *module);
43 void unload(Inkscape::Extension::Extension *module);
45 bool check(Inkscape::Extension::Extension *module);
47 SPDocument *open(Inkscape::Extension::Input *module,
48 gchar const *filename);
49 void save(Inkscape::Extension::Output *module, SPDocument *doc, gchar const *filename);
50 };
52 } /* Inkscape */
53 } /* Extension */
54 } /* Implementation */
55 #endif /* __INKSCAPE_EXTENSION_IMPEMENTATION_XSLT_H__ */
57 /*
58 Local Variables:
59 mode:c++
60 c-file-style:"stroustrup"
61 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
62 indent-tabs-mode:nil
63 fill-column:99
64 End:
65 */
66 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :