What the diagram shows
Each recognised shape is a box with its type at the top, its name, and up to two references (or the XML element name) below.
- Order: shapes run from top to bottom in the order they appear in the file.
- Arrows join each shape to the next one in the flow.
- Curved lines without arrows join a container to the shapes inside it.
- Branches: the children of a Decide or Listen shape are spread side by side.
- Containers: the children of a Scope, Loop, Construct or Exception shape are indented to the right.
- Colours follow the shape type, the same as the dots in the shape list.
The title above the diagram is the root element's Name (or its target namespace, or the file name), with the namespace below it.
Zoom and arrange
| Control | What it does |
|---|---|
| Zoom out / Zoom in | Change the zoom in 10% steps, from 55% to 145%. The current zoom is shown between the buttons. |
| Drag a shape | Move it on the diagram. It snaps to a grid and its lines follow. |
| Auto arrange | Put every shape back where the viewer placed it. |
Moved shapes are not saved. Opening another file, or a change to the open file, resets the layout.
Files the viewer can read
In an .odx, the viewer reads only the designer XML between #if __DESIGNER_DATA and #endif. The XLANG/s code after it is ignored:
#if __DESIGNER_DATA
#error Do not define __DESIGNER_DATA.
<?xml version="1.0" encoding="utf-8"?>
<om:MetaModel xmlns:om="http://schemas.microsoft.com/BizTalk/2003/DesignerData">
<om:Element Type="Module">
<om:Property Name="Name" Value="Orders" />
<om:Element Type="Receive">
<om:Property Name="Name" Value="Receive order" />
<om:Property Name="PortName" Value="ReceiveOrderPort" />
<om:Property Name="MessageName" Value="OrderIn" />
</om:Element>
...
</om:Element>
</om:MetaModel>
#endif // __DESIGNER_DATA
module Orders
{
... // XLANG/s code: not read by the viewer
}Plain XML with shape-like element names works too:
<Orchestration Name="ProcessOrder">
<Receive Name="Receive order" Port="OrdersIn" Message="OrderMsg" />
<Scope Name="Handle order">
<Transform Name="Order to invoice" MapName="Billing.Maps.OrderToInvoice" />
<Send Name="Send invoice" Port="InvoicesOut" Message="InvoiceMsg" Operation="Submit" />
</Scope>
</Orchestration>