CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Peter's Gekko

public Blog MyNotepad : Imho { }

Exporting from Crystal Reports to PDF, Word, Excel and HTML

Crystal Reports is a welcome subjects for blog posts. I still do like the product, my users are very happy with the results, the report editor is not that bad to work with and the components integrate well into a solution. But Crystal documentation is an absolute disaster. I wanted to add some functionality to my basic export routine. The only thing was adding export to Excel and to html. This functionality is present in the basic Crystal installation but how to use it is something which took me really a lot of Googling. The answers were not on the Crystal site but in the dungeons of the usenet. Let me share what I found.

On of the things I learned is that you have to Close() a report after exporting. This was not in the official Crystal example. I havn't measured the effect but it doesn't harm.

Exporting to Excel turned out to be just a matter of setting the right content type. This type turned out to be application/vnd.ms-excel. I had expected application/msexcel, as a nice sibling to application/msword. Exporting to Excel has some extra format options but you can do without them for a basic export. I'll leave these for another post.

To get the exporting to html to work took some things which are next to ridiculous, but I got it working. You have to set some format options. In these options you set the root directory and the filename. This directory-filename pair should be identical to the export filename passed to the report. The result will be an html formatted report, but in a "slightly" different location. To find the result you have to do some tricks. When Crystals creates a report is does create a temporary .rpt file. This file is stored in the windows\temp dir, it's name is a guid. When Crystal creates the exported report it creates a directory in the root directory supplied with the name of this guid. In this directory the report will be created, using the filename supplied. Thank goodness the name of the temporary file is available in the FilePath property of the report. This snippet demonstrates the workaround:

string[] fp = selectedReport.FilePath.Split("\\".ToCharArray());
string leafDir = fp[fp.Length-1];
// strip .rpt extension
leafDir = leafDir.Substring(0, leafDir.Length - 4);
tempFileNameUsed = string.Format("{0}{1}\\{2}", tempDir, leafDir, tempFileName);

To sum it all up :

protected void exportReport(CrystalDecisions.CrystalReports.Engine.ReportClass selectedReport, CrystalDecisions.Shared.ExportFormatType eft)
{
    selectedReport.ExportOptions.ExportFormatType = eft;

    string contentType ="";
    // Make sure asp.net has create and delete permissions in the directory
    string tempDir = System.Configuration.ConfigurationSettings.AppSettings["TempDir"];
    string tempFileName = Session.SessionID.ToString() + ".";
    switch (eft)
    {
    case CrystalDecisions.Shared.ExportFormatType.PortableDocFormat :
        tempFileName += "pdf";
        contentType = "application/pdf";
        break;
    case CrystalDecisions.Shared.ExportFormatType.WordForWindows :
        tempFileName+= "doc";
        contentType = "application/msword";
        break;
    case CrystalDecisions.Shared.ExportFormatType.Excel :
        tempFileName+= "xls";
        contentType = "application/vnd.ms-excel";
        break;
    case CrystalDecisions.Shared.ExportFormatType.HTML32 :
    case CrystalDecisions.Shared.ExportFormatType.HTML40 :
        tempFileName+= "htm";
        contentType = "text/html";
        CrystalDecisions.Shared.HTMLFormatOptions hop = new CrystalDecisions.Shared.HTMLFormatOptions();
        hop.HTMLBaseFolderName = tempDir;
        hop.HTMLFileName = tempFileName;
        selectedReport.ExportOptions.FormatOptions = hop;
        break;
    }

    CrystalDecisions.Shared.DiskFileDestinationOptions dfo = new CrystalDecisions.Shared.DiskFileDestinationOptions();
    dfo.DiskFileName = tempDir + tempFileName;
    selectedReport.ExportOptions.DestinationOptions = dfo;
    selectedReport.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;

    selectedReport.Export();
    selectedReport.Close();

    string tempFileNameUsed;
    if (eft == CrystalDecisions.Shared.ExportFormatType.HTML32 || eft == CrystalDecisions.Shared.ExportFormatType.HTML40)
    {
        string[] fp = selectedReport.FilePath.Split("\\".ToCharArray());
        string leafDir = fp[fp.Length-1];
        // strip .rpt extension
        leafDir = leafDir.Substring(0, leafDir.Length - 4);
        tempFileNameUsed = string.Format("{0}{1}\\{2}", tempDir, leafDir, tempFileName);
    }
    else
        tempFileNameUsed = tempDir + tempFileName;

    Response.ClearContent();
    Response.ClearHeaders();
    Response.ContentType = contentType;

    Response.WriteFile(tempFileNameUsed);
    Response.Flush();
    Response.Close();

    System.IO.File.Delete(tempFileNameUsed);
}

Which is pretty straightforward and even works. With a lot of thanks to the many people on the web who have also been strugling with this.

Peter


Published Feb 11 2004, 07:36 AM by pvanooijen
Filed under:

Comments

Peter van Ooijen said:

Afaik the CR which ships with VS only supports the four formats described here. In case anybody knows of another format, I'll gladly incorporate it in the example.
# March 22, 2004 9:34 AM

eaz said:


I do stuff similiar to export to an excel file, but when I do, I see no grid lines in the created excel file by default. Is there a way to set this so that it shows the grid lines? (It looks like a word document running somehow inside excel...)

Thanks,
eaz
# March 29, 2004 8:35 AM

Peter van Ooijen said:

That's an Excel setting which is not in the CR enumeration of options. You can access Excel using COM, but I'm not sure about the Excel viewer. What you could try is inject a little script which will set the option.
# March 30, 2004 1:02 AM

Dave said:

Has anyone had any luck exporting CR to streams? I can use crReport.ExportToStream(format) fine for the format types CrystalReport and PDF, but everytime I try using it for HTML (3.2 or 4.0), it blows up with a FileNotFoundException (it's looking in the DocumentsAndSettings\username\LocalSettings\Temp folder for a temp_*******.tmp file. The ******* looks like a guid, but it's different from the one identified above.

As a sanity check, I'm not even running in ASP.Net yet; I'm using WinForms to do my feasibility testing, and I'm an admin on the machine.

Thoughts?
# March 31, 2004 9:37 PM

Wajid said:

ReportDocument doc = new ReportDocument ();
doc.Load(this.MapPath("allah.rpt"));
doc.SetDataSource(ds);
ExportOptions exportOpts = doc.ExportOptions;
exportOpts.ExportFormatType = ExportFormatType.PortableDocFormat;
exportOpts.ExportDestinationType = ExportDestinationType.DiskFile;
exportOpts.DestinationOptions = new DiskFileDestinationOptions();
string Fname ="C:\\T\\" + Session.SessionID + ".pdf";
DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions();
( ( DiskFileDestinationOptions )doc.ExportOptions.DestinationOptions ).DiskFileName = Fname ; //Server.MapPath("fin.pdf");
doc.Export();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
//Response.ContentType = "application/msword";
Response.WriteFile(Fname);
Response.Flush();
Response.Close();
# April 10, 2004 4:06 AM

Peter said:

Thanks !
# April 11, 2004 3:21 PM

Divebouy said:

Any way to remove the toolbars from the exported PDF? I want to ensure that my users can't edit the PDF. Currently streaming to browser but haven't figured this one out.

Thanks~
# April 12, 2004 4:44 PM

Divebouy said:

Sorry, using CR9, ASP.NET framework.
# April 12, 2004 4:45 PM

Peter van Ooijen said:

That is a setting of the PDF viewer, not the document itself. Maybe you can do that using some script in which you address the viewer as an ActiveX control.
# April 13, 2004 3:08 AM

Pradeep said:

Hey Pete,
Is there a way I could export the .RPT file to a .CSV file?
Pls advise
# April 14, 2004 9:15 PM

Peter van Ooijen said:

Afaik these are all the formats CR supports.
When it comes to csv I would do that by hand or use something like DTS (sql server).
# April 15, 2004 7:47 AM

vijay said:

what in case id one parameter set in crystal report take more then one values how do u send parameter to report and get output exported
# April 22, 2004 4:57 AM

Peter van Ooijen said:

I'm not sure if I understand the question.

In the post is a method which takes a report as a parameter. Before sending your report to the method you can do anything with the report you would like to do.
# April 22, 2004 3:01 PM

Brent Railey said:

When I try to execute an export, it seems to not be passing the parameters to the report.

I set them in code, but when I view the export, it always has just the default values of the parameters.
# May 5, 2004 4:14 PM

Peter van Ooijen said:

I'll dive into the parameters problem when the need arises :> And blog about all solutions / problems found.
# May 6, 2004 9:03 AM

Jimmy said:

I try to convert the c# code to vb.net, pdf and doc format is working fine, however I encounter the problem in exporting the html file from the report. is there any different between c# and vb.net code in exporting the html file from the report
# May 26, 2004 9:03 PM

Jimmy said:

I try to use ExportToDisk to export the HTML file, but the system error message. Any idea on the problem?
# May 26, 2004 9:59 PM

Peter van Ooijen said:

Error message ? Containing what ? Wrong directory ? No rights to create temp file ?
# May 29, 2004 1:57 PM

Brett said:

Is there a way to export specific fields from the Crystal Report to an Excel file instead of exporting the entire Crystal Report????
# June 9, 2004 9:28 AM

Mythran said:

The following are all of the formats I got to work when exporting to them. With the exception of NoFormat (which, for some reason, doesn't work :P).

<xs:enumeration value="NoFormat" xmlns:xs="http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema" /><xs:enumeration value="CrystalReport" xmlns:xs="http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema" /><xs:enumeration value="RichText" xmlns:xs="http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">http://www.w3.org/2001/XMLSchema"">