hardywang

Using XSD to help you to build Xml faster

Recommended Posts

Hi all,

I came cross this chart control recently, obviously it is very cool and one of the best free one I can find! Especially for the feature to load data from Xml file makes developer much easier to bind data.

However FusionChart does not publish any XSD we can use, which makes developer a little bit more trouble to take advatange of the feature.

Since FusionChart comes with dozens of charts to map with different schemas, I created a schema for FCF_Column3D.xsd.

To create XSD file, it is better to prepare some tool, the one I use is Liquid Xml Studio which is free. The created XSD file looks like:

<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Liquid XML Studio 1.0.7.0 (http://www.liquid-technologies.com) -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="graph">
   <xs:complexType>
  <xs:sequence>
    <xs:element minOccurs="0" maxOccurs="unbounded" name="set">
	  <xs:complexType>
	    <xs:attribute name="name" type="xs:string" use="optional" />
	    <xs:attribute name="value" type="xs:decimal" use="optional" />
	    <xs:attribute name="color" type="xs:string" use="optional" />
	    <xs:attribute name="hoverText" type="xs:string" use="optional" />
	    <xs:attribute name="link" type="xs:string" use="optional" />
	    <xs:attribute name="alpha" use="optional">
		  <xs:simpleType>
		    <xs:restriction base="xs:int">
			  <xs:minInclusive value="0" />
			  <xs:maxInclusive value="100" />
		    </xs:restriction>
		  </xs:simpleType>
	    </xs:attribute>
	    <xs:attribute name="showName" use="optional">
		  <xs:simpleType>
		    <xs:restriction base="xs:int">
			  <xs:minInclusive value="0" />
			  <xs:maxInclusive value="1" />
		    </xs:restriction>
		  </xs:simpleType>
	    </xs:attribute>
	  </xs:complexType>
    </xs:element>
    <xs:element minOccurs="0" maxOccurs="1" name="trendlines">
	  <xs:complexType>
	    <xs:sequence>
		  <xs:element minOccurs="0" maxOccurs="unbounded" name="line">
		    <xs:complexType>
			  <xs:attribute name="startValue" type="xs:decimal" use="optional" />
			  <xs:attribute name="endValue" type="xs:decimal" use="optional" />
			  <xs:attribute name="displayValue" type="xs:string" use="optional" />
			  <xs:attribute name="color" type="xs:string" use="optional" />
			  <xs:attribute name="thickness" use="optional">
			    <xs:simpleType>
				  <xs:restriction base="xs:int">
				    <xs:minInclusive value="0" />
				  </xs:restriction>
			    </xs:simpleType>
			  </xs:attribute>
			  <xs:attribute name="isTrendZone" use="optional">
			    <xs:simpleType>
				  <xs:restriction base="xs:int">
				    <xs:minInclusive value="0" />
				    <xs:maxInclusive value="1" />
				  </xs:restriction>
			    </xs:simpleType>
			  </xs:attribute>
			  <xs:attribute name="alpha" use="optional">
			    <xs:simpleType>
				  <xs:restriction base="xs:int">
				    <xs:minInclusive value="0" />
				    <xs:maxInclusive value="100" />
				  </xs:restriction>
			    </xs:simpleType>
			  </xs:attribute>
			  <xs:attribute name="showOnTop" use="optional">
			    <xs:simpleType>
				  <xs:restriction base="xs:int">
				    <xs:minInclusive value="0" />
				    <xs:maxInclusive value="1" />
				  </xs:restriction>
			    </xs:simpleType>
			  </xs:attribute>
		    </xs:complexType>
		  </xs:element>
	    </xs:sequence>
	  </xs:complexType>
    </xs:element>
  </xs:sequence>
  <xs:attribute name="bgColor" type="xs:string" use="optional" />
  <xs:attribute name="bgAlpha" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="100" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="bgSWF" type="xs:string" use="optional" />
  <xs:attribute name="canvasBgColor" type="xs:string" use="optional" />
  <xs:attribute name="canvasBaseColor" type="xs:string" use="optional" />
  <xs:attribute name="canvasBaseDepth" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="canvasBgDepth">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showCanvasBg" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showCanvasBase" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="caption" type="xs:string" use="optional" />
  <xs:attribute name="subCaption" type="xs:string" use="optional" />
  <xs:attribute name="yAxisMaxValue" type="xs:decimal" use="optional" />
  <xs:attribute name="yAxisMinValue" type="xs:decimal" use="optional" />
  <xs:attribute name="yAxisName" type="xs:string" use="optional" />
  <xs:attribute name="xAxisName" type="xs:string" use="optional" />
  <xs:attribute name="showhovercap" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="hoverCapBgColor" type="xs:string" use="optional" />
  <xs:attribute name="hoverCapBorderColor" type="xs:string" use="optional" />
  <xs:attribute name="hoverCapSepChar" type="xs:string" use="optional" />
  <xs:attribute name="chartLeftMargin" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="chartRightMargin" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="chartTopMargin" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="chartBottomMargin" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="shownames" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showValues" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showLimits" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="rotateNames" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="animation" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="baseFont" type="xs:string" use="optional" />
  <xs:attribute name="baseFontSize" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="baseFontColor" type="xs:string" use="optional" />
  <xs:attribute name="outCnvBaseFont" type="xs:string" use="optional" />
  <xs:attribute name="outCnvBaseFontSze" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="outCnvBaseFontColor" type="xs:string" use="optional" />
  <xs:attribute name="numberPrefix" type="xs:string" use="optional" />
  <xs:attribute name="numberSuffix" type="xs:string" use="optional" />
  <xs:attribute name="formatNumber" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="formatNumberScale" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="decimalSeparator" type="xs:string" use="optional" />
  <xs:attribute name="thousandSeparator" type="xs:string" use="optional" />
  <xs:attribute name="decimalPrecision" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="divLineDecimalPrecision" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="limitsDecimalPrecision" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="zeroPlaneShowBorder" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="zeroPlaneBorderColor" type="xs:string" use="optional" />
  <xs:attribute name="zeroPlaneColor" type="xs:string" use="optional" />
  <xs:attribute name="zeroPlaneAlpha" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="100" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="numdivlines" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="divlinecolor" type="xs:string" use="optional" />
  <xs:attribute name="divLineThickness" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="divLineAlpha" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="100" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showDivLineValue" use="optional">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
   </xs:complexType>
  </xs:element>
</xs:schema>

Next step is to generate C# classes from the schema. I tried XSD.exe shipped with VS2005, one big problem for this schema is if I serialize Xml with generated code all attributes with non-string data type are lost. I turned to use Microsoft Sample Code Generator, which is also known as XsdObjectGen 1.4.2.1 (maybe there is a newer version by the time you read this post). I ran xsdobjectgen E:tempFusionChartsFreeXsdFCF_Column3D.xsd /n:HardySoft.Reports.Coulmn3D /f:"E:tempFusionChartsFreeXsdFCF_Column3D.cs" from command line to get my classes.

In ASP.NET page used as Xml data island

The web form (ChartXml.aspx) is something like:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ChartXml.aspx.cs" Inherits="HardySoft.UI.Reports.ChartXml" %>

Remember! To delete all other codes, just leave this line.

The C# code-behind is something like:

 public partial class ChartXml : System.Web.UI.Page {
 protected void Page_Load(object sender, EventArgs e) {
  if (Session["CustomizeReportResult"] != null) {
DataSet ds = getData();
	graph g = new graph();
g.xAxisName = "";
g.animation = 1;
g.numberPrefix = "$";
	for (int i = 0; i < ds.Tables[0].Rows.Count; i++) {
 set s = new set();
 s.value = Convert.ToDecimal(ds.Tables[0].Rows[i]["SubTotal"]);
 s.name = ds.Tables[0].Rows[i]["ItemName"].ToString();
 s.color = PageLogic.RandomColour();
 s.hoverText = ds.Tables[0].Rows[i]["Comments"].ToString();
 s.alpha = 70;
	 g.setCollection.Add(s);
}
	try {
 string XmlizedString = null;
 MemoryStream memoryStream = new MemoryStream();
 XmlSerializer xs = new XmlSerializer(typeof(graph));
 MemoryStream memStream = new MemoryStream();
 XmlTextWriter xtw = new XmlTextWriter(memStream, Encoding.UTF8);
 xs.Serialize(xtw, g);
 memStream = (MemoryStream)xtw.BaseStream;
 XmlizedString = UTF8ByteArrayToString(memStream.ToArray());
 Response.Write(XmlizedString);
 Response.ContentType = "text/xml";
} catch (Exception ex) {
 // some logic to capture exceptions
}
  }
 }
 private static String UTF8ByteArrayToString(byte[] characters) {
  UTF8Encoding encoding = new UTF8Encoding();
  string constructedString = encoding.GetString(characters);
  return (constructedString);
 }
 }

Bingo! We have the Xml data now. And web page to call has something like

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"
 width="1000" height="500" name="myFirst">
 <param name="allowScriptAccess" value="always" />
 <param name="movie" value="../FusionCharts/FCF_Column3D.swf" />
 <param name="FlashVars" value="&chartWidth=1000&chartHeight=500&debugMode=0&dataURL=ChartXml.aspx" />
 <param name="quality" value="high" />
</object>

Easy right? You don't have to spend a lot of time to create XML string, everything is objects.

Hardy

Edited by Guest

Share this post


Link to post
Share on other sites

Here is one more XSD FCF_MSArea2D.xsd

<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Liquid XML Studio 1.0.7.0 (http://www.liquid-technologies.com) -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="graph">
   <xs:complexType>
  <xs:sequence>
    <xs:element minOccurs="0" maxOccurs="1" name="categories">
	  <xs:complexType>
	    <xs:sequence>
		  <xs:element minOccurs="0" maxOccurs="unbounded" name="category">
		    <xs:complexType>
			  <xs:attribute name="name" type="xs:string" use="optional" />
			  <xs:attribute name="hoverText" type="xs:string" />
			  <xs:attribute name="showName">
			    <xs:simpleType>
				  <xs:restriction base="xs:int">
				    <xs:minInclusive value="0" />
				    <xs:maxInclusive value="1" />
				  </xs:restriction>
			    </xs:simpleType>
			  </xs:attribute>
		    </xs:complexType>
		  </xs:element>
	    </xs:sequence>
	    <xs:attribute name="font" type="xs:string" />
	    <xs:attribute name="fontSize">
		  <xs:simpleType>
		    <xs:restriction base="xs:int">
			  <xs:minInclusive value="0" />
		    </xs:restriction>
		  </xs:simpleType>
	    </xs:attribute>
	    <xs:attribute name="fontColor" type="xs:string" />
	  </xs:complexType>
    </xs:element>
    <xs:element minOccurs="0" maxOccurs="unbounded" name="dataset">
	  <xs:complexType>
	    <xs:sequence>
		  <xs:element minOccurs="0" maxOccurs="unbounded" name="set">
		    <xs:complexType>
			  <xs:attribute name="value" type="xs:decimal" use="optional" />
			  <xs:attribute name="url" type="xs:string" />
			  <xs:attribute name="alpha">
			    <xs:simpleType>
				  <xs:restriction base="xs:int">
				    <xs:minInclusive value="0" />
				    <xs:maxInclusive value="100" />
				  </xs:restriction>
			    </xs:simpleType>
			  </xs:attribute>
		    </xs:complexType>
		  </xs:element>
	    </xs:sequence>
	    <xs:attribute name="seriesName" type="xs:string" use="optional" />
	    <xs:attribute name="color" type="xs:string" use="optional" />
	    <xs:attribute name="showValues" use="optional">
		  <xs:simpleType>
		    <xs:restriction base="xs:int">
			  <xs:minInclusive value="0" />
			  <xs:maxInclusive value="1" />
		    </xs:restriction>
		  </xs:simpleType>
	    </xs:attribute>
	    <xs:attribute name="areaAlpha" use="optional">
		  <xs:simpleType>
		    <xs:restriction base="xs:int">
			  <xs:minInclusive value="0" />
			  <xs:maxInclusive value="100" />
		    </xs:restriction>
		  </xs:simpleType>
	    </xs:attribute>
	    <xs:attribute name="showAreaBorder" use="optional">
		  <xs:simpleType>
		    <xs:restriction base="xs:int">
			  <xs:minInclusive value="0" />
			  <xs:maxInclusive value="1" />
		    </xs:restriction>
		  </xs:simpleType>
	    </xs:attribute>
	    <xs:attribute name="areaBorderThickness" use="optional">
		  <xs:simpleType>
		    <xs:restriction base="xs:int">
			  <xs:minInclusive value="0" />
		    </xs:restriction>
		  </xs:simpleType>
	    </xs:attribute>
	    <xs:attribute name="areaBorderColor" type="xs:string" use="optional" />
	    <xs:attribute name="alpha">
		  <xs:simpleType>
		    <xs:restriction base="xs:int">
			  <xs:minInclusive value="0" />
			  <xs:maxInclusive value="100" />
		    </xs:restriction>
		  </xs:simpleType>
	    </xs:attribute>
	  </xs:complexType>
    </xs:element>
    <xs:element minOccurs="0" maxOccurs="1" name="trendLines">
	  <xs:complexType>
	    <xs:sequence>
		  <xs:element minOccurs="0" maxOccurs="unbounded" name="line">
		    <xs:complexType>
			  <xs:attribute name="startValue" type="xs:decimal" />
			  <xs:attribute name="endValue" type="xs:decimal" />
			  <xs:attribute name="color" type="xs:string" />
			  <xs:attribute name="displayValue" type="xs:string" />
			  <xs:attribute name="thickness">
			    <xs:simpleType>
				  <xs:restriction base="xs:int">
				    <xs:minInclusive value="0" />
				  </xs:restriction>
			    </xs:simpleType>
			  </xs:attribute>
			  <xs:attribute name="isTrendZone">
			    <xs:simpleType>
				  <xs:restriction base="xs:int">
				    <xs:minInclusive value="0" />
				    <xs:maxInclusive value="1" />
				  </xs:restriction>
			    </xs:simpleType>
			  </xs:attribute>
			  <xs:attribute name="showOnTop">
			    <xs:simpleType>
				  <xs:restriction base="xs:int">
				    <xs:minInclusive value="0" />
				    <xs:maxInclusive value="1" />
				  </xs:restriction>
			    </xs:simpleType>
			  </xs:attribute>
			  <xs:attribute name="alpha">
			    <xs:simpleType>
				  <xs:restriction base="xs:int">
				    <xs:minInclusive value="0" />
				    <xs:maxInclusive value="100" />
				  </xs:restriction>
			    </xs:simpleType>
			  </xs:attribute>
		    </xs:complexType>
		  </xs:element>
	    </xs:sequence>
	  </xs:complexType>
    </xs:element>
  </xs:sequence>
  <xs:attribute name="caption" type="xs:string" use="optional" />
  <xs:attribute name="subCaption" type="xs:string" use="optional" />
  <xs:attribute name="bgColor" type="xs:string" />
  <xs:attribute name="bgAlpha">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="100" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="bgSWF" type="xs:string" />
  <xs:attribute name="canvasBgColor" type="xs:string" />
  <xs:attribute name="canvasBgAlpha">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="100" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="canvasBorderColor" type="xs:string" />
  <xs:attribute name="canvasBorderThickness">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="xAxisName" type="xs:string" />
  <xs:attribute name="yAxisName" />
  <xs:attribute name="yAxisMinValue" type="xs:decimal" />
  <xs:attribute name="yAxisMaxValue" type="xs:decimal" />
  <xs:attribute name="showNames">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showValues">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showLimits">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="rotateNames">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="animation">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showLegend">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showAreaBorder">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="areaBorderThickness">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="areaBorderColor" type="xs:string" />
  <xs:attribute name="areaAlpha">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="100" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="baseFont" type="xs:string" />
  <xs:attribute name="baseFontSize" type="xs:string" />
  <xs:attribute name="baseFontColor" type="xs:string" />
  <xs:attribute name="outCnvBaseFont" type="xs:string" />
  <xs:attribute name="outCnvBaseFontSze" type="xs:string" />
  <xs:attribute name="outCnvBaseFontColor" type="xs:string" />
  <xs:attribute name="numberPrefix" type="xs:string" />
  <xs:attribute name="numberSuffix" type="xs:string" />
  <xs:attribute name="formatNumber">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="formatNumberScale">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="decimalSeparator" type="xs:string" />
  <xs:attribute name="thousandSeparator" type="xs:string" />
  <xs:attribute name="decimalPrecision">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="divLineDecimalPrecision">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="limitsDecimalPrecision">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="zeroPlaneThickness">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="zeroPlaneColor" type="xs:string" />
  <xs:attribute name="zeroPlaneAlpha">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="100" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="numDivLines">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="divLineColor" type="xs:string" />
  <xs:attribute name="divLineThickness">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="divLineAlpha">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="100" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showDivLineValue">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showAlternateHGridColor">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="alternateHGridColor" type="xs:string" />
  <xs:attribute name="alternateHGridAlpha">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="numVDivLines">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="vDivlinecolor" type="xs:string" />
  <xs:attribute name="vDivLineThickness">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="vDivLineAlpha">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="100" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showAlternateVGridColor">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="alternateVGridColor" type="xs:string" />
  <xs:attribute name="alternateVGridAlpha">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="100" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="showHoverCap">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	    <xs:maxInclusive value="1" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="hoverCapBgColor" type="xs:string" />
  <xs:attribute name="hoverCapBorderColor" type="xs:string" />
  <xs:attribute name="hoverCapSepChar" type="xs:string" />
  <xs:attribute name="chartLeftMargin">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="chartRightMargin">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="chartTopMargin">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="chartBottomMargin">
    <xs:simpleType>
	  <xs:restriction base="xs:int">
	    <xs:minInclusive value="0" />
	  </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
   </xs:complexType>
  </xs:element>
</xs:schema>

Share this post


Link to post
Share on other sites

FCF_Column2D.xsd

<?xml version="1.0" encoding="utf-8"?>

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="graph">

  <xs:complexType>

  <xs:sequence>

  <xs:element minOccurs="0" maxOccurs="unbounded" name="set">

  <xs:complexType>

  <xs:attribute name="name" type="xs:string" use="optional" />

  <xs:attribute name="value" type="xs:decimal" use="optional" />

  <xs:attribute name="color" type="xs:string" use="optional" />

  <xs:attribute name="alpha" use="optional">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="100" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="hoverText" type="xs:string" />

  <xs:attribute name="link" type="xs:string" />

  <xs:attribute name="showName">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  </xs:complexType>

  </xs:element>

  <xs:element minOccurs="0" name="trendLines">

  <xs:complexType>

  <xs:sequence>

  <xs:element minOccurs="0" maxOccurs="unbounded" name="line">

  <xs:complexType>

  <xs:attribute name="startValue" type="xs:decimal" use="optional" />

  <xs:attribute name="displayValue" type="xs:string" use="optional" />

  <xs:attribute name="color" type="xs:string" use="optional" />

  <xs:attribute name="thickness" use="optional">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="isTrendZone" use="optional">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="endValue" type="xs:decimal" />

  <xs:attribute name="showOnTop">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="alpha">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="100" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  </xs:complexType>

  </xs:element>

  </xs:sequence>

  </xs:complexType>

  </xs:element>

  </xs:sequence>

  <xs:attribute name="bgColor" type="xs:string" use="optional" />

  <xs:attribute name="bgAlpha">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="100" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="bgSWF" type="xs:string" />

  <xs:attribute name="caption" type="xs:string" use="optional" />

  <xs:attribute name="subCaption" type="xs:string" use="optional" />

  <xs:attribute name="yAxisMaxValue" type="xs:decimal" use="optional" />

  <xs:attribute name="yAxisMinValue" type="xs:decimal" use="optional" />

  <xs:attribute name="yAxisName" type="xs:string" use="optional" />

  <xs:attribute name="xAxisName" type="xs:string" use="optional" />

  <xs:attribute name="canvasBgColor" type="xs:string" />

  <xs:attribute name="canvasBgAlpha">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="100" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="canvasBorderColor" type="xs:string" />

  <xs:attribute name="canvasBorderThickness">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="100" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="showNames">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="showValues">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="showLimits">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="rotateNames">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="animation">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="showColumnShadow">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="baseFont" type="xs:string" />

  <xs:attribute name="baseFontSize" type="xs:string" />

  <xs:attribute name="baseFontColor" type="xs:string" />

  <xs:attribute name="outCnvBaseFont" type="xs:string" />

  <xs:attribute name="outCnvBaseFontSze" type="xs:string" />

  <xs:attribute name="outCnvBaseFontColor" type="xs:string" />

  <xs:attribute name="numberPrefix" type="xs:string" />

  <xs:attribute name="formatNumber">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="formatNumberScale">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="decimalSeparator" type="xs:string" />

  <xs:attribute name="thousandSeparator" type="xs:string" />

  <xs:attribute name="decimalPrecision">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="divLineDecimalPrecision">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="limitsDecimalPrecision">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="zeroPlaneThickness">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="zeroPlaneColor" type="xs:string" />

  <xs:attribute name="zeroPlaneAlpha">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="100" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="numDivLines">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="divLineColor" type="xs:string" />

  <xs:attribute name="divLineThickness">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="divLineAlpha">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="100" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="showDivLineValue">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="showAlternateHGridColor">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="alternateHGridColor" type="xs:string" />

  <xs:attribute name="alternateHGridAlpha">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="100" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="numVDivLines">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="VDivLineColor" />

  <xs:attribute name="VDivLineThickness">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="VDivLineAlpha">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="100" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="showAlternateVGridColor">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="alternateVGridColor" type="xs:string" />

  <xs:attribute name="alternateVGridAlpha">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="100" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="showHoverCap">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  <xs:maxInclusive value="1" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="hoverCapBgColor" type="xs:string" />

  <xs:attribute name="hoverCapBorderColor" type="xs:string" />

  <xs:attribute name="hoverCapSepChar" type="xs:string" />

  <xs:attribute name="chartLeftMargin">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="chartRightMargin">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="chartTopMargin">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  <xs:attribute name="chartBottomMargin">

  <xs:simpleType>

  <xs:restriction base="xs:int">

  <xs:minInclusive value="0" />

  </xs:restriction>

  </xs:simpleType>

  </xs:attribute>

  </xs:complexType>

  </xs:element>

</xs:schema>

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now