auriemma    01/04/19 11:46:27

  Modified:    c/samples/UseStylesheetParam UseStylesheetParam.cpp
  Log:
  Updated to use the XalanTransformer class.
  
  Revision  Changes    Path
  1.11      +40 -116   
xml-xalan/c/samples/UseStylesheetParam/UseStylesheetParam.cpp
  
  Index: UseStylesheetParam.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/samples/UseStylesheetParam/UseStylesheetParam.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- UseStylesheetParam.cpp    2001/01/08 20:26:43     1.10
  +++ UseStylesheetParam.cpp    2001/04/19 18:46:26     1.11
  @@ -3,48 +3,14 @@
   
   
   
  -#if defined(XALAN_OLD_STREAM_HEADERS)
  -#include <fstream.h>
  -#include <iostream.h>
  -#else
  -#include <fstream>
  -#include <iostream>
  -#endif
  -
  -
  -
   #include <util/PlatformUtils.hpp>
   
   
  -
  -#include <PlatformSupport/DOMStringHelper.hpp>
  -
  -
  -
  -#include <DOMSupport/DOMSupportDefault.hpp>
  -
  -
  -
  -#include <XPath/XObjectFactoryDefault.hpp>
  -#include <XPath/XPathFactoryDefault.hpp>
  -
   
  +#include <XalanTransformer/XalanTransformer.hpp>
   
  -#include <XSLT/StylesheetConstructionContextDefault.hpp>
  -#include <XSLT/StylesheetExecutionContextDefault.hpp>
  -#include <XSLT/XSLTEngineImpl.hpp>
  -#include <XSLT/XSLTInit.hpp>
  -#include <XSLT/XSLTInputSource.hpp>
  -#include <XSLT/XSLTProcessorEnvSupportDefault.hpp>
  -#include <XSLT/XSLTResultTarget.hpp>
   
   
  -
  -#include <XalanSourceTree/XalanSourceTreeDOMSupport.hpp>
  -#include <XalanSourceTree/XalanSourceTreeParserLiaison.hpp>
  -
  -
  -
   int
   main(
                  int                                argc,
  @@ -53,101 +19,59 @@
   #if !defined(XALAN_NO_NAMESPACES)
     using std::cerr;
     using std::endl;
  -  using std::ofstream;
   #endif
   
  +     int     theResult = 0;
  +
        if (argc != 3)
        {
                cerr << "Usage: UseStylesheetParam key expression" << endl;
   
  -             return -1;
  +             theResult = -1;
        }
  -
  -     try
  +     else
        {
  -             // Call the static initializer for Xerces...
  +             // Call the static initializer for Xerces.
                XMLPlatformUtils::Initialize();
   
  -             {
  -                     // Initialize the Xalan XSLT subsystem...
  -                     XSLTInit                        theInit;
  +             // Initialize Xalan.
  +             XalanTransformer::initialize();
  +
  +             // Create a XalanTransformer.
  +             XalanTransformer theXalanTransformer;
   
  -                     // Get the stylesheet parameter key (name) and
  -                     // expression (a string expression).
  -                     const XalanDOMString    paramKey(argv[1]);
  -                     const XalanDOMString    paramExpression(argv[2]);
  -
  -                     // Set up input and output objects for the 
transformation.
  -                     // Assumption: the executable is run from the directory
  -                     // containing the input files. 
  -                     const XalanDOMString    theXMLFileName("foo.xml");
  -                     const XalanDOMString    theXSLFileName("foo.xsl");
  -
  -                     const XSLTInputSource   
theInputSource(c_wstr(theXMLFileName));
  -                     const XSLTInputSource   
theStylesheetSource(c_wstr(theXSLFileName));
  - 
  -                     // The output target...
  -                     const XalanDOMString    theOutputFile("foo.out");
  -                     XSLTResultTarget                
theResultTarget(theOutputFile);
  -
  -                     // Create some support objects that are necessary for 
running the processor...
  -                     XalanSourceTreeDOMSupport               theDOMSupport;
  -                     XalanSourceTreeParserLiaison    
theParserLiaison(theDOMSupport);
  -
  -                     // Hook the two together...
  -                     theDOMSupport.setParserLiaison(&theParserLiaison);
  -
  -                     // Create some more support objects.
  -                     XSLTProcessorEnvSupportDefault  
theXSLTProcessorEnvSupport;
  -                     XObjectFactoryDefault                   
theXObjectFactory;
  -                     XPathFactoryDefault                             
theXPathFactory;
  -
  -                     // Create a processor...
  -                     XSLTEngineImpl  theProcessor(
  -                                             theParserLiaison,
  -                                             theXSLTProcessorEnvSupport,
  -                                             theDOMSupport,
  -                                             theXObjectFactory,
  -                                             theXPathFactory);
  -
  - 
  -                     // Connect the processor to the support object...
  -                     theXSLTProcessorEnvSupport.setProcessor(&theProcessor);
  -
  -                     // Create a stylesheet construction context, and a 
stylesheet
  -                     // execution context...
  -                     StylesheetConstructionContextDefault    
theConstructionContext(
  -                                                     theProcessor,
  -                                                     
theXSLTProcessorEnvSupport,
  -                                                     theXPathFactory);
  -
  -                     StylesheetExecutionContextDefault               
theExecutionContext(
  -                                                     theProcessor,
  -                                                     
theXSLTProcessorEnvSupport,
  -                                                     theDOMSupport,
  -                                                     theXObjectFactory);
  -
  -                     // Set the stylesheet parameter.
  -                     theProcessor.setStylesheetParam(paramKey,  
paramExpression);
  - 
  -                     // Perform the transformation...
  -                     theProcessor.process(
  -                                                     theInputSource,
  -                                                     theStylesheetSource,
  -                                                     theResultTarget,
  -                                                     theConstructionContext,
  -                                                     theExecutionContext);
  +             // Our input files...The assumption is that the executable will 
be run
  +             // from same directory as the input files.
  +             const char*             theXMLFileName = "foo.xml";
  +             const char*             theXSLFileName = "foo.xsl";
  +
  +             // Our output target...
  +             const char*     theOutputFileName = "foo.out";
  +
  +             // Get the stylesheet parameter key (name) and
  +             // expression (a string expression).
  +             const char*     paramKey = argv[1];
  +             const char*     paramExpression = argv[2];
  +
  +             // Set the stylesheet parameter.
  +             theXalanTransformer.setStylesheetParam(paramKey, 
paramExpression);
  +
  +             // Do the transform.
  +             theResult = theXalanTransformer.transform(theXMLFileName, 
theXSLFileName, theOutputFileName);
  +    
  +             if(theResult != 0)
  +             {
  +                     cerr << "UseStylesheetParam Error: \n" << 
theXalanTransformer.getLastError()
  +                              << endl
  +                              << endl;
                }
   
  -             // Call the static terminator for Xerces...
  +             // Terminate Xalan.
  +             XalanTransformer::terminate();
  +
  +             // Call the static terminator for Xerces.
                XMLPlatformUtils::Terminate();
        }
  -     catch(...)
  -     {
  -             cerr << "UseStylesheetParam Exception caught!!!"
  -                      << endl
  -                      << endl;
  -     }
   
  -     return 0;
  +     return theResult;
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to