All of the information you need is on the Xalan-C++ home page at
xml.apache.org:

   http://xml.apache.org/xalan-c/index.html

There is a menu on the left with links to the repositories and to the docs.
The docs are also included with the distribution.

Dave



                                                                                       
                                               
                      Geoff                                                            
                                               
                      <[EMAIL PROTECTED]         To:      [EMAIL PROTECTED]       
                                               
                      om>                      cc:                                     
                                               
                                               Subject: Re: custom routines            
                                               
                      12/29/2001 09:25                                                 
                                               
                      AM                                                               
                                               
                      Please respond                                                   
                                               
                      to xalan-dev                                                     
                                               
                                                                                       
                                               
                                                                                       
                                               




David,

Thank you for pointing me in the write direction (I strongly suspected I
was missing something).  However, one thing, I can't seem to find
documented anywhere how to get the CVS updates.  All I can find is how
to download the latest full releases.  Also, is there any documentation
of the innards of the Xalan parser anywhere?  The only thing I see in
the docs are about the SAX and DOM interfaces.

Geoff

[EMAIL PROTECTED] wrote:

>The error messages from the compiler are a result of not including the
>correct header files.
>
>You should also take a look at the latest version of the Xalan C API.
>There are already functions to use buffers for source tree and stylesheet
>input.  See the file XalanTransformer/XalanCAPI.h:
>
>      XALAN_TRANSFORMER_EXPORT_FUNCTION(int)
>      XalanParseSourceFromStream(
>                  const char*       theXMLStream,
>                  unsigned long     theXMLStreamLength,
>                  XalanHandle       theXalanHandle,
>                  XalanPSHandle*    thePSHandle);
>
>      XALAN_TRANSFORMER_EXPORT_FUNCTION(int)
>      XalanCompileStylesheetFromStream(
>                  const char*             theXSLStream,
>                  unsigned long           theXSLStreamLength,
>                  XalanHandle             theXalanHandle,
>                  XalanCSSHandle*         theCSSHandle);
>
>      XALAN_TRANSFORMER_EXPORT_FUNCTION(int)
>      XalanTransformToHandlerPrebuilt(
>                        XalanPSHandle                 thePSHandle,
>                        XalanCSSHandle                theCSSHandle,
>                        XalanHandle                   theXalanHandle,
>                        void*                         theOutputHandle,
>                        XalanOutputHandlerType  theOutputHandler,
>                        XalanFlushHandlerType   theFlushHandler);
>
>Be sure to read the comments in the header file carefully, because you'll
>need to destroy the parsed source and compiled stylesheets instances once
>the transformation is finished.  Don't worry if you think this is less
>efficient -- sources are always parsed and stylesheets are always
compiled,
>so there's no loss of efficiency if you do it yourself in your code.
>
>You may need to get the latest source code from CVS.  You can also wait
>until we finish the 1.3 release, which ought to be early next week.
>
>Dave
>
>
>
>
>                      Geoff
>                      <[EMAIL PROTECTED]         To:
[EMAIL PROTECTED]
>                      om>                      cc:
>                                               Subject: custom routines
>                      12/28/2001 08:36
>                      PM
>                      Please respond
>                      to xalan-dev
>
>
>
>
>
>
>Hi all,
>
>I've been working on something for a few days now and I can't seem to get
>it to work (and I may also be re-inventing the wheel to).  I'm writing an
>apache module that needs to generate XHTML pages by feeding in XML and XSL
>to Xalan as strings.  These strings will be built on the fly by the
>module.  Since the apache module is in C and Xalan is in C++ I think I
>need to make a custom api of sorts.  Here's what I have thus far (it is
>meant to be a cross between mod_xslt.c and streamtransform.cpp):
>
>#include <XalanTransformer/XalanTransformerDefinitions.hpp>
>#include <util/PlatformUtils.hpp>
>#include <cassert>
>#if defined(XALAN_OLD_STREAM_HEADERS)
>#include <strstream.h>
>#else
>#include <strstream>
>#endif
>
>#include "primary_xalan_api.h"
>
>#include <XalanTransformer/XalanCAPI.h>
>#include <XalanTransformer/XalanTransformer.hpp>
>
>
>XALAN_TRANSFORMER_EXPORT_FUNCTION(void)
>CustomStreamTransform(const char **xml,
>                      const char **xsl,
>                      XalanHandle
>theXalanHandle,
>                      void*
>theOutputHandle,
>                      XalanOutputHandlerType    theOutputHandler,
>                      XalanFlushHandlerType     theFlushHandler)
>{
>  int theResult = 0;
>  istrstream theXMLInStream(*xml, strlen(*xml));
>  istrstream theXSLInStream(*xsl, strlen(*xsl));
>
>  XSLTInputSource theInputSource(&theXMLInStream);
>  XSLTInputSource theStylesheetSource(&theXSLInStream);
>
>  XalanTransformerOutputStream theOutputStream(theOutputHandle,
>theOutputHandler, theFlushHandler);
>
>  XalanOutputStreamPrintWriter  thePrintWriter(theOutputStream);
>  XSLTResultTarget
>theResultTarget(&thePrintWriter);
>
>  // Do the transformation...
>  return theXalanHandle.transform(
>                   theInputSource,
>                   theStylesheetSource,
>                   theResultTarget);
>}
>
>
>Unfortunately, this does not compile.  I wind up with this error:
>
>primary_xalan_api.cpp: In function `void CustomStreamTransform(const
>char **, const char **, void *, void *, long unsigned int
>(*)(const char *, long unsigned int, void *), void (*)(void *))':
>primary_xalan_api.cpp:37: variable `class XalanTransformerOutputStream
>theOutputStream' has initializer but incomplete type
>primary_xalan_api.cpp:39: `XalanOutputStreamPrintWriter' undeclared
>(first use this function)
>primary_xalan_api.cpp:39: (Each undeclared identifier is reported only
once
>primary_xalan_api.cpp:39: for each function it appears in.)
>primary_xalan_api.cpp:39: parse error before `('
>primary_xalan_api.cpp:40: `thePrintWriter' undeclared (first use this
>function)
>primary_xalan_api.cpp:46: request for member `transform' in
>`theXalanHandle', which is of non-aggregate type `void *'
>primary_xalan_api.cpp:37: warning: unused variable `{error}
>theOutputStream'
>primary_xalan_api.cpp:30: warning: unused variable `int theResult'
>
>
>Can someone please point me in the right direction as to how to make this
>work?  Thanks in advance.
>
>Geoff
>
>
>
>






Reply via email to