Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6xslt.h
Go to the documentation of this file.
1 
10 #ifndef P6XSLT_H__
11 #define P6XSLT_H__ 1
12 
13 #include "p6err.h"
14 #include "p6datastream.h"
15 #include "p6xslttypes.h"
16 #include "p6xpathvariables.h"
17 
18 namespace P6R {
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
31 interface p6IXSLT : public p6ICom
32 {
50  P6COMMETHOD initialize( P6XSLTFLAGS flags, p6IDataStream* pErrorResult ) = 0;
51 
65  P6COMMETHOD setDefaultCollation( const P6CHAR* pCollate ) = 0;
66 
80  P6COMMETHOD compileTemplates( const P6CHAR* pTemplates,
81  p6IDataStream* pErrorResult
82  ) = 0;
83 
119  P6COMMETHOD startTransform( p6IDataStream* pTransformResult,
120  const P6CHAR* pBuffer,
121  P6UINT32 bufSize,
122  P6BOOL isLast
123  ) = 0;
124 
141  P6COMMETHOD continueTransform( const P6CHAR* pBuffer,
142  P6UINT32 bufSize,
143  P6BOOL isLast
144  ) = 0;
145 
172  P6COMMETHOD transformWithDOM( p6IDataStream* pTransformResult,
173  p6IDOMXML* pDOMTree
174  ) = 0;
175 
206 
229 
250  P6COMMETHOD setRegexLimits( P6UINT32 maxBackStack, P6UINT32 maxBackTracks ) = 0;
251 
266  P6COMMETHOD setFeature( const P6WCHAR* pString, P6BOOL result ) = 0;
267 };
268 
269 // {1E6903D8-6331-4168-9B08-C7D7358B689F}
270 #define IF_p6IXSLT {0x1e6903d8,0x6331,0x4168,{0x9b,0x8,0xc7,0xd7,0x35,0x8b,0x68,0x9f}}
271 
272 // {5E7C4359-2D8D-4411-B4A9-AAFCCBF30A6B}
273 #define COMP_p6XSLT {0x5e7c4359,0x2d8d,0x4411,{0xb4,0xa9,0xaa,0xfc,0xcb,0xf3,0xa,0x6b}}
274 
275 #ifdef __cplusplus
276 }
277 #endif
278 
279 } // namespace
280 
281 
282 #endif
283 
284 
285 
286 
287 
288 
virtual P6R::P6ERR compileTemplates(const P6CHAR *pTemplates, p6IDataStream *pErrorResult)=0
Parse and validate XLST templates to be used before the transform() method is called.
virtual P6R::P6ERR setExternalFunctions(p6IXpathVariables *pConnector)=0
XPath 2.0 is used in XSLT expressions.
virtual P6R::P6ERR continueTransform(const P6CHAR *pBuffer, P6UINT32 bufSize, P6BOOL isLast)=0
A successful call to the startTransform() method must be called before a call to this method is allow...
This file contains a set of common XSLT processor dependent types.
unsigned int P6UINT32
Definition: p6types.h:40
P6R's interface of the DOM parser.
Definition: p6domxml.h:99
Standard error codes.
bool P6BOOL
Boolean type.
Definition: p6types.h:101
virtual P6R::P6ERR startTransform(p6IDataStream *pTransformResult, const P6CHAR *pBuffer, P6UINT32 bufSize, P6BOOL isLast)=0
The caller must first call the compileTempates() method with a valid XSLT stylesheet.
p6IDataStream interface definitions
virtual P6R::P6ERR setFeature(const P6WCHAR *pString, P6BOOL result)=0
Currently no featues are supported: 1) http://www.p6r.com/xslt/features/xxx - defaults to false...
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:76
This interface is implmented by components that support receiving streamed data.
Definition: p6datastream.h:42
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:96
Interface to XSLT 2.0, in our implementation an XSLT template is compiled and then can be used over a...
Definition: p6xslt.h:31
virtual P6R::P6ERR setRegexLimits(P6UINT32 maxBackStack, P6UINT32 maxBackTracks)=0
As default there are NO limits on the execution of a regular expression in an XPath expression...
This interface supports the extensibility of the XPath languague.
virtual P6R::P6ERR initialize(P6XSLTFLAGS flags, p6IDataStream *pErrorResult)=0
Sets up the component to run properly.
virtual P6R::P6ERR transformWithDOM(p6IDataStream *pTransformResult, p6IDOMXML *pDOMTree)=0
The caller must first call the compileTempates() method with a valid XSLT stylesheet.
P6UINT32 P6XSLTFLAGS
P6XSLTFLAGS.
Definition: p6xslttypes.h:36
This interface is implemented by the application making use of the p6xpathexpression component...
#define P6COMMETHOD
Definition: p6types.h:872
virtual P6R::P6ERR setMessageOutput(p6IDataStream *pOutput)=0
This method supports the 'xsl:message' element.
virtual P6R::P6ERR setDefaultCollation(const P6CHAR *pCollate)=0
The XSLT processor uses the default collation from the runtime enviroment.
char P6CHAR
Narrow character type.
Definition: p6types.h:71