R – What are the DotNet 2.0 or 3.5, IE, XSL and XSL-FO capabilities

internet explorernetxsl-foxslt

I am total noob with XSL and XSL-FO and I am looking for some advice on the possibilities and limitations with DotNet 2.0 and 3.5 when using XSL for formatting XML Data For reporting purposes.

Here is what I was looking to do.

1)Get data from a SQL 2005 DB based on some business rules

2) Output to xml from SQL directly or create xml files from some other custom middle tier component and save the files to disk.

3) Use a 3rd party library to create pdf's from the transformed files. <– I Need suggestions on tool too please.

My concerns are around page breaks and keeping related content together when breaks occur.
From what I can tell these two commands are for that: keep-with-previous and keep-with-next
But those I believe are XSL-FO commands, please correct me if I am wrong.
There is also this which appears to be in the base XSL commands.
http://www.w3.org/TR/xsl/#keepbreak
From what I have read IE and DotNet don't support XSL-FO is that still true?
I also read some posts about adding an XSL Schema to Visual Studios schemas for intellisense, does anyone know of a current XSL-FO Schema for this purpose.
So given what I would like to accomplish and my concerns what should I know about the limitations of XSL-FO in DotNet and IE.

Best Answer

I have used XSL-FO a lot professionally, both from Java and .NET environments. It indeed gives you total control over the printed document/PDF. I myself have generated very complex PDF's ready for mass-printing(brochures and papers). They included complex structures like text floated in columns, graphs(using embedded SVG) and tables.

XSL-FO is for print what HTML is for the screen. Given that you learn to know it well, you will be able to produce anything with it, no matter how complex the design.

The Java based FOP is probably one of the best XSL-FO processors. And it's free, open-source too.

AltSoft's commercial .NET XML2PDF is good 2.

XSL-FO is definitely way to go when generating PDF's or printed documents.

EDIT: I only answered part of your question, i guess. XSL-FO is not natively supported within any common browser as of today. I don't think there any plans for implementing native support in IE, i'd be very surprised if it was. XSL-FO is just XML, so you won't need any further XSL-FO support by the .NET Framework then as of today. Typically, XSL-FO is generated using XSLT and then the transformation result is passed to a Formatting Objects processor, such as FOP. In some cases, XSLT (at least not 1.0) is not enough, if your XSL-FO document is very complex. You might then consider using XSLT extensions, written in languages such as C#. In some cases, maybe XSLT is not right for the job, you could then consider using code to generate XSL-FO.