How to save swimming pool as xml file

We are evaluating your GODiagram win 4.0.0 For .net3.5,Is's great,

there is swimming pool demo in the Nodelinkdemo sample,but this sample can only be saved as Binary Format, Can someone give me exact example which can save the same swimming pool in the as XML Format .

when i draw a single swimming pool using the sample and save it as XML file according to the methods in the sample, I encount a problem when I reload the XML file, the nodes and links in the swimming pool is messed, for example ,the links is outside the original swimming pool. below is my C#(VS2008) code:

private static void InitReaderWriter(GoXmlReaderWriterBase rw)<?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

{

GoXmlBindingTransformer.DefaultTracingEnabled = true; // for debugging, check your Output window (trace listener)

GoXmlBindingTransformer t;

#region GoDocument

t = new GoXmlBindingTransformer("GoDocument", new GraphDoc());

t.AddBinding("userobjects", "UserObject");

rw.AddTransformer(t);

#endregion

#region GoBasicNode

t = new GoXmlBindingTransformer("state", new GoBasicNode());

t.IdAttributeUsedForSharedObjects = true; // each GraphNode gets a unique ID

t.HandlesNamedPorts = true; // generate attributes for each of the named ports, specifying their IDs

t.AddBinding("label", "Text");

t.AddBinding("loc", "Location");

t.AddBinding("LabelSpot", "LabelSpot");

t.AddBinding("LabelEditable", "Label.Editable");

t.AddBinding("Editable", "Editable");

t.AddBinding("userobjects", "UserObject");//UserObject

t.AddBinding("userflag", "UserFlags");//UserFlags

rw.AddTransformer(t);

#endregion

#region GoText

#endregion

#region GoLink GoLabeledLink

t = new GoXmlBindingTransformer("link", new GoLink());

t.IdAttributeUsedForSharedObjects = true; // each GraphNode gets a unique ID

t.HandlesNamedPorts = true; // generate attributes for each of the named ports, specifying their IDs

t.AddBinding("Orthogonal", "Orthogonal");

t.AddBinding("ToArrow", "ToArrow");

t.AddBinding("FromPort", "FromPort");//UserObject

t.AddBinding("ToPort", "ToPort");//UserFlags

t.AddBinding("linkBottom", "Bottom");

t.AddBinding("linkHeight", "Height");

t.AddBinding("linkLeft", "Left");

t.AddBinding("linkLocation", "Location");

t.AddBinding("linkRight", "Right");

t.AddBinding("linkTop", "Top");

t.AddBinding("linkWidth", "Width");

rw.AddTransformer(t);

t = new GoXmlBindingTransformer("labellink", new GoLabeledLink());

t.IdAttributeUsedForSharedObjects = true; // each GraphNode gets a unique ID

t.HandlesNamedPorts = true; // generate attributes for each of the named ports, specifying their IDs

t.AddBinding("label", "Text");

t.AddBinding("Orthogonal", "Orthogonal");

t.AddBinding("ToArrow", "ToArrow");

t.AddBinding("FromPort", "FromPort");//UserObject

t.AddBinding("ToPort", "ToPort");//UserFlags

t.AddBinding("labellinkBottom", "Bottom");

t.AddBinding("labellinkHeight", "Height");

t.AddBinding("labellinkLeft", "Left");

t.AddBinding("labellinkLocation", "Location");

t.AddBinding("labellinkRight", "Right");

t.AddBinding("labellinkTop", "Top");

t.AddBinding("labellinkWidth", "Width");

rw.AddTransformer(t);

#endregion

#region Transition

t = new GoXmlBindingTransformer("transition", new Transition());

t.AddBinding("from", "FromPort");

t.AddBinding("to", "ToPort");

t.AddBinding("curviness", "Curviness");

t.AddBinding("brush", "RealLink.BrushColor");

//t.AddBinding("adjusted", "RealLink.AdjustingStyle");

t.AddBinding("points", "RealLink.Points");

t.AddBinding("label", "MidLabel.Text");

t.AddBinding("userobjects", "UserObject");//UserObject

t.AddBinding("userflag", "UserFlags");//UserFlags

t.AddBinding("transitionBottom", "Bottom");

t.AddBinding("transitionHeight", "Height");

t.AddBinding("transitionLeft", "Left");

t.AddBinding("transitionLocation", "Location");

t.AddBinding("transitionRight", "Right");

t.AddBinding("transitionTop", "Top");

t.AddBinding("transitionWidth", "Width");

rw.AddTransformer(t);

#endregion

#region GoListGroup

t = new GoXmlBindingTransformer("GoListGroup", new GoListGroup());

t.IdAttributeUsedForSharedObjects = true; // each GoSubGraph gets a unique ID

t.AddBinding("label", "Text");

// to generate id for GoSubGraph as a node

t.IdAttributeUsedForSharedObjects = true;

// to generate id for GoSubGraph.Port

t.HandlesNamedPorts = true;

// generates children and consumes them by adding to the subgraph

t.HandlesChildren = true;

// make sure reading/writing each child calls the

// Generate/ConsumeChildAttributes methods

t.HandlesChildAttributes = true;

// add attributes for SavedBounds or SavedPath to each child node

// or link when the subgraph is collapsed

t.HandlesSubGraphCollapsedChildren = true;

t.GeneratesPortsAsChildElements = true;

t.IdAttributeUsedForSharedObjects = true; // each GraphNode gets a unique ID

t.HandlesNamedPorts = true; // generate attributes for each of the named ports, specifying their IDs

t.AddBinding("label", "Text");

t.AddBinding("loc", "Location");

t.AddBinding("userobjects", "UserObject");//UserObject

t.AddBinding("userflag", "UserFlags");//UserFlags

t.AddBinding("GoListGroupBottom", "Bottom");

t.AddBinding("GoListGroupHeight", "Height");

t.AddBinding("GoListGroupLeft", "Left");

t.AddBinding("GoListGroupLocation", "Location");

t.AddBinding("GoListGroupRight", "Right");

t.AddBinding("GoListGroupTop", "Top");

t.AddBinding("GoListGroupWidth", "Width");

rw.AddTransformer(t);

#endregion

#region GoSubGraphBase

t = new GoXmlBindingTransformer("GoSubGraphBase", new GoSubGraphBase());

t.IdAttributeUsedForSharedObjects = true; // each GoSubGraph gets a unique ID

t.AddBinding("label", "Text");

// to generate id for GoSubGraph as a node

t.IdAttributeUsedForSharedObjects = true;

// to generate id for GoSubGraph.Port

t.HandlesNamedPorts = true;

// generates children and consumes them by adding to the subgraph

t.HandlesChildren = true;

// make sure reading/writing each child calls the

// Generate/ConsumeChildAttributes methods

t.HandlesChildAttributes = true;

// add attributes for SavedBounds or SavedPath to each child node

// or link when the subgraph is collapsed

t.HandlesSubGraphCollapsedChildren = true;

t.GeneratesPortsAsChildElements = true;

t.AddBinding("back", "BackgroundColor");

t.AddBinding("opacity", "Opacity");

t.AddBinding("border", "BorderPen.Color");

t.AddBinding("borderwidth", "BorderPen.Width");

t.AddBinding("loc", "Location");

// define these AFTER defining Location binding

t.AddBinding("wasexpanded", "WasExpanded");

t.AddBinding("topleftmargin", "TopLeftMargin");

t.AddBinding("bottomrightmargin", "BottomRightMargin");

t.AddBinding("corner", "Corner");

t.AddBinding("resizeable", "Resizable");

t.AddBinding("reshapable", "Reshapable");

t.AddBinding("shadowed", "Shadowed");

t.AddBinding("borderpen", "BorderPen");

t.AddBinding("borderpencolor", "BorderPenColor");

t.AddBinding("borderpenwidth", "BorderPenWidth");

t.AddBinding("bottom", "Bottom");

t.AddBinding("editable", "Editable");

t.AddBinding("labelspot", "LabelSpot");

t.AddBinding("labeleditwhenselected", "Label.EditableWhenSelected ");

t.AddBinding("expanded", "IsExpanded");

t.AddBinding("labelmultiline", "Label.Multiline");

t.AddBinding("labeleditable", "Label.Editable");

t.AddBinding("userobjects", "UserObject");//UserObject

t.AddBinding("userflag", "UserFlags");//UserFlags

rw.AddTransformer(t);

#endregion

#region GoComment

t = new GoXmlBindingTransformer("comment", new GoComment());

t.IdAttributeUsedForSharedObjects = true; // each GoComment gets a unique ID

t.AddBinding("label", "Text");

t.AddBinding("center", "Center"); // last property, since it depends on content/alignment

rw.AddTransformer(t);

#endregion

#region SwimmingPool

t = new GoXmlBindingTransformer("swimmingpool", new SwimmingPool());

t.AddBinding("swimmingpoollabels", "Text");

t.AddBinding("swimmingpoolResizable", "Resizable");

t.AddBinding("swimmingpoolPickableBackground", "PickableBackground");

t.AddBinding("swimmingpoolSelectable", "Selectable");

t.AddBinding("swimmingpoolBottom", "Bottom");

t.AddBinding("swimmingpoolHeight", "Height");

t.AddBinding("swimmingpoolLeft", "Left");

t.AddBinding("swimmingpoolLocation", "Location");

t.AddBinding("swimmingpoolRight", "Right");

t.AddBinding("swimmingpoolTop", "Top");

t.AddBinding("swimmingpoolWidth", "Width");

rw.AddTransformer(t);

#endregion

#region SwimLane

t = new GoXmlBindingTransformer("swimlane", new SwimLane());

t.AddBinding("swimlaneEditable", "Editable");

t.AddBinding("swimlaneResizable", "Resizable");

t.AddBinding("swimlanePickableBackground", "PickableBackground");

t.AddBinding("swimlaneRectangleFBounds", "RectangleF.Bounds");

t.AddBinding("swimlaneBrushBrush", "Brush.Brush");

t.AddBinding("swimlaneBrushBrushColor", "Brush.BrushColor");

t.AddBinding("swimlaneSizeFBrushFocusScales", "SizeF.BrushFocusScales");

t.AddBinding("swimlaneBrushForeColor", "BrushForeColor");

t.AddBinding("swimlaneBrushMidColor", "BrushMidColor");

t.AddBinding("swimlaneBrushMidFraction", "BrushMidFraction");

t.AddBinding("swimlaneBrushStartPoint", "BrushStartPoint");

t.AddBinding("swimlanePenPen", "Pen.Pen");

t.AddBinding("swimlanePenPenColor", "Pen.PenColor");

t.AddBinding("swimlanePenPenColor", "Pen.PenColor");

t.AddBinding("swimlaneBottom", "Bottom");

t.AddBinding("swimlaneHeight", "Height");

t.AddBinding("swimlaneLeft", "Left");

t.AddBinding("swimlaneLocation", "Location");

t.AddBinding("swimlaneRight", "Right");

t.AddBinding("swimlaneTop", "Top");

t.AddBinding("swimlaneWidth", "Width");

rw.AddTransformer(t);

#endregion

#region SwimmingPoolLanes

t = new GoXmlBindingTransformer("swimmingpoollanes", new SwimmingPoolLanes());

t.AddBinding("swimmingpoollaneslabel", "Text");

t.AddBinding("swimmingpoollanescenter", "Center");

t.AddBinding("swimmingpoollanesSelectable", "Selectable");

t.AddBinding("swimmingpoollanesResizable", "Resizable");

t.AddBinding("swimmingpoollanesReshapable", "Reshapable");

t.AddBinding("swimmingpoollanesTopLeftMargin", "TopLeftMargin");

t.AddBinding("swimmingpoollanesBottomRightMargin", "BottomRightMargin");

t.AddBinding("swimmingpoollanesSpacing", "Spacing");

t.AddBinding("swimmingpoollanesBorderPenColor", "BorderPenColor");

t.AddBinding("swimmingpoollanesBorderPenWidth", "BorderPenWidth");

t.AddBinding("swimmingpoollanesBottom", "Bottom");

t.AddBinding("swimmingpoollanesHeight", "Height");

t.AddBinding("swimmingpoollanesLeft", "Left");

t.AddBinding("swimmingpoollanesLocation", "Location");

t.AddBinding("swimmingpoollanesRight", "Right");

t.AddBinding("swimmingpoollanesTop", "Top");

t.AddBinding("swimmingpoollanesWidth", "Width");

rw.AddTransformer(t);

#endregion

thanks for help!!

note: handled via email.