Please,help noob with advice!

Hello,friends! I am new to GoDiagram but have one problem.
Maybe its very stupid question but i would be glad if you can help me.
I have very simple xml file like this:
<?xml version="1.0" encoding="utf-8"?>












































[/SIZE=1]


So, all i need - just draw diagram with nodes and links.
Iam trying such code:
<BR>goView1.StartTransaction();<BR> goView1.Document.Clear();<BR> Stream file = null;<BR><BR> GoXmlReader r = new GoXmlReader();<BR> file = File.Open(@"C:\data.xml", FileMode.Open);<BR> r.AddTransformer(new SimpleXmlTransformBasicNode());<BR> r.AddTransformer(new SimpleXmlTransformLink());<BR> r.RootObject = goView1.Document;<BR> r.Consume(file);<BR>goView1.FinishTransaction("loaded XML");<BR>

The ConsumeAttributes of nodes is:
public override void ConsumeAttributes(Object obj) <BR>{<BR> base.ConsumeAttributes(obj);<BR> GoBasicNode n = (GoBasicNode)obj;<BR> n.Text = StringAttr("name", "");<BR>}<BR>

And for links:
<BR>public override void ConsumeAttributes(Object obj) <BR> {<BR><BR> base.ConsumeAttributes(obj);<BR> GoLabeledLink link = (GoLabeledLink)obj;<BR> String fromid = StringAttr("from", null);<BR> GoBasicNode from = this.Reader.FindShared(fromid) as GoBasicNode;<BR> if (from != null) <BR> {<BR> link.FromPort = from.Port;<BR> }<BR> String toid = StringAttr("to", null);<BR> GoBasicNode to = this.Reader.FindShared(toid) as GoBasicNode;<BR> if (to != null) <BR> {<BR> link.ToPort = to.Port;<BR> }<BR>}<BR>

Problems - nodes are ok! But I see all my nodes in one point and cannot understand how can i set coordinates of each node.
And - the important thing - have no links! The ConsumeAttributes function for links is not started!

Sorry for big post, thanks for your understanding.
Waiting for any answer.

The basic problem with reading the links is that you had these elements surrounding them. One way to handle that is to define a placeholder data class to remember the “name” attribute for the “linkGroup”, and make sure each link is labeled with that name after each element is consumed.

Try http://www.nwoods.com/forum/uploads/GroupedXml.cs.
Defining placeholder classes and transformers for your and elements is only needed when GoXmlReader.UseDOM is true. I have defined them so that they can also handle elements that are not inside elements. Of course I can't know what your schema really is....
For the other part of your question, yes, all the nodes will have the same location, unless you assign them.
One way of assigning them is to use GoLayoutForceDirected:
GoLayoutForceDirected layout = new GoLayoutForceDirected();
layout.Document = goView1.Document;
// maybe set some other properties...
layout.PerformLayout();

Big thanks ;)
Now all is clear for me! Groups! This is solution! =)

ps. when im making PerformLayout and starting program i need to touch scrollbar - and my nodes will reconstruct. so to make normal view i need to click onceon scrollbar.


You might want to call GoView.RescaleToFit().