xsl-list
[Top] [All Lists]

Transformation using Saxon.Net-1.0-RC1

2005-03-29 20:54:32
Hello ,

For basic learning purpose, I'm trying to do a simple transformation, so that 
next Saturday I can buy MK's
books, and then get down to the business of using XSL2/XPath with C# (Hoping to
move on from VB & MSXML.).


First it does not compile.

Error message 'ikvm.lang.ByteArrayHack' is obsolete

Note: Before starting I installed J2SE 5.0 Update 2(jdk1.5.0_02)

      Is this to up-todate??

If I comment this out, it compiles. Stepping through the code gives error
 Exception Details: javax.xml.transform.TransformerConfigurationException: 
Failed to parse stylesheet

 
An example of a working transformation would help.

-- 
Best regards,
 Arthur

 
 For completeness my Code is below
 (from example provided by Saxon.NET-ASP.NET-Sample)




<?xml version="1.0" encoding="utf-8" ?>
<saxondotnet_sample>
    <message>Hello ASP.NET!</message>
</saxondotnet_sample>

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="html"/>
<xsl:template match="/">
    <xsl:apply-templates select="saxondotnet_sample/message"/>
</xsl:template>
<xsl:template match="message">
    <xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>

In the  bin Directory
 Compile.exe
 IKVM.GNU.Classpath.dll
 IKVM.Runtime.dll
 Query.exe
 Saxon.NET.dll
 Transform.exe


/*************************************************/
/******                          BEGIN  Page Class              ********/
/*************************************************/

using System.Collections.Specialized;
using System.Collections;
using System.ComponentModel;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text.RegularExpressions;
using System.Text;
using System.Web.Caching;
using System.Web.Security;
using System.Web.SessionState;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Web;
using System.Xml.Xsl;
using System.Xml;
using System;

//Saxon.Net
using javax.xml.transform;
using javax.xml.transform.stream;
using net.sf.saxon;

namespace SaxonNet
{

// Class for web page pgeSecond.aspx
public  class pgeSecond : Page
{
        // Declare controls on the HTML page.
        protected Button btn;   

        //      default constructor
        public  pgeSecond()
        {
                Page.Init += new System.EventHandler(Page_Init);
        }

        private void Page_Init(object source, EventArgs e)
        {
                InitializeComponent();
        }

        private void InitializeComponent()
        {
                //      wire up the event handlers      
                this.btn.Click += new EventHandler( this.btn_Click )    ;       
                
                this.Load += new EventHandler(this.Page_Load);
        }       //      InitializeComponent


        private void Page_Load(object source, EventArgs e)
        {

                if (! IsPostBack)
                {
                        // code goes here
                }
        }       // Page_Load
        
        private void btn_Click(object source, EventArgs e)
        {
                string xmlSource = "index.xml";
                string xslSource = "index.xslt";
                string transform;
                
                // instantate new class object
                Xsl xsl=new Xsl();
                
                transform = xsl.Transform(Server.MapPath(xmlSource), 
Server.MapPath(xslSource));
        }
        
}       // end of pgeSecond

  public class Xsl
  {
    private string strCrLf = "\r\n";
    
    // constructor
    public Xsl(){}

    public string Transform(string inXML, string inXSL)
    {
      StreamSource inputXml_Source = new StreamSource(new 
java.io.FileInputStream(inXML));
      inputXml_Source.setSystemId(inXML);
      StreamSource inputXsl_Source = new StreamSource(new 
java.io.FileInputStream(inXSL));
      inputXsl_Source.setSystemId(inXSL);
      return DoTransform(inputXml_Source, inputXsl_Source);
    }

    private string DoTransform(StreamSource Xml, StreamSource Xsl)
    {
      java.lang.System.setProperty("javax.xml.transform.TransformerFactory", 
"net.sf.saxon.TransformerFactoryImpl");
      StreamResult outResult = new StreamResult();
      java.io.ByteArrayOutputStream outputXmlResult = new 
java.io.ByteArrayOutputStream();
      outResult.setOutputStream(outputXmlResult);
      TransformerFactory trans = TransformerFactory.newInstance();
      Transformer transformer = trans.newTransformer(Xsl);
                transformer.setParameter("dir", "output");
      transformer.transform(Xml, outResult);
        string strFinal = 
System.Text.UTF8Encoding.UTF8.GetString(ikvm.lang.ByteArrayHack.cast(outputXmlResult.toByteArray()));
        return strFinal += strCrLf;
  }
 }      // end Xsl
}       // end of namespace

/*************************************************/
/******                          END  Page Class                   ********/
/*************************************************/


/*************************************************/
/******                          BEGIN  HTML Page               ********/
/*************************************************/

<%@ page inherits="SaxonNet.pgeSecond" src="second.aspx.cs" 
AutoEventWireup="false"  debug="true" %>
<html>
<head>
<title></title>


</head>

<body>
<form id="frmMain" runat="server" method="post">
<asp:Button id="btn" runat="server"
                        text="Test"/>
</form>
</body>
</html>

/*************************************************/
/******                          END  HTML Page                   ********/
/*************************************************/

 

 
-- 
Best regards,
 Arthur                          mailto:ArthurM(_at_)seipas(_dot_)com


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>