Skip to content

Instantly share code, notes, and snippets.

@jmewes
Last active April 7, 2023 05:48
Show Gist options
  • Save jmewes/df7978e3ed32c594897fe30c297733de to your computer and use it in GitHub Desktop.
Save jmewes/df7978e3ed32c594897fe30c297733de to your computer and use it in GitHub Desktop.
Drawing UML - Component Diagram

Drawing UML - Component Diagram

This Gist contains a custom shape libary for the creation of UML Component diagrams with Diagrams.net.

Usage

(1) Copy link to libary

Copy this link to the clipboard:

https://gist.githubusercontent.com/jmewes/df7978e3ed32c594897fe30c297733de/raw/03594b84c747370bc8fc286a63242ee33da49418/UML_Component_Diagram.xml

(2) Open the app

Open the Diagrams.net web app by opening the following URL in a browser:

https://draw.io

(3) Create new diagram

Click on the "Decide later" link in the dialog that asks where to save the new diagram.

(4) Import a library

The UML Component Diagram library can be imported via the menu entry "File > Open library from > URL...".

Paste the URL copied above into the dialog that opens after clicking on this menu entry.

Afterwards, the UML Component Diagram library can be seen in the left side bar.

(5) Draw diagram

Drag-and-drop the respective shape from the side bar into the canvas to draw the diagram.

(6) Export and save

To export the diagram as PNG file, click on the menu entry "File > Export as > PNG...".

Then click on "Export" in the dialog that opens afterwards.

Then click on the "Device" icon to save the file to the local computer.

Similarly, the diagram source file can be saved for later editing by clicking on the menu entry "File > Save as...".

License

The contents of this Gist are licensed under the MIT license.

MIT License
Copyright (c) 2023 Experimental Software
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
<mxlibrary>[
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"&amp;lt;b&amp;gt;component&amp;lt;/b&amp;gt;&amp;amp;nbsp;Foo\" style=\"shape=umlFrame;whiteSpace=wrap;html=1;width=234;height=31;boundedLbl=1;verticalAlign=middle;align=left;spacingLeft=5;strokeWidth=1;container=1;recursiveResize=0;collapsible=0;swimlaneFillColor=none;connectable=0;\" vertex=\"1\" parent=\"1\"&gt;&lt;mxGeometry width=\"396\" height=\"223\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 396,
"h": 223,
"aspect": "fixed",
"title": "Frame"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"\" style=\"fontStyle=1;align=right;verticalAlign=top;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;allowArrows=0;connectable=0;strokeColor=#000000;strokeWidth=1;fontSize=12;fillColor=default;shadow=1;\" vertex=\"1\" parent=\"1\"&gt;&lt;mxGeometry width=\"360\" height=\"200\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"3\" value=\"&amp;lt;span style=&amp;quot;font-weight: normal;&amp;quot;&amp;gt;«component»&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;font style=&amp;quot;font-size: 16px;&amp;quot;&amp;gt;Subsytem&amp;lt;/font&amp;gt;\" style=\"html=1;align=center;spacingLeft=4;verticalAlign=middle;strokeColor=none;fillColor=none;fontStyle=1;strokeWidth=1;fontSize=12;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry width=\"360\" height=\"50\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"4\" value=\"\" style=\"shape=component;jettyWidth=8;jettyHeight=4;fontSize=12;fillColor=default;strokeColor=default;strokeWidth=1;\" vertex=\"1\" parent=\"3\"&gt;&lt;mxGeometry x=\"1\" width=\"24\" height=\"16\" relative=\"1\" as=\"geometry\"&gt;&lt;mxPoint x=\"-31\" y=\"7\" as=\"offset\"/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id=\"5\" value=\"\" style=\"swimlane;swimlaneBody=1;swimlaneHead=1;horizontal=1;swimlaneLine=0;collapsible=0;fontStyle=0;strokeColor=#000000;strokeWidth=1;fontSize=12;fillColor=none;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry y=\"50\" width=\"360\" height=\"150\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 360,
"h": 200,
"aspect": "fixed",
"title": "Subsystem"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"\" style=\"fontStyle=1;align=right;verticalAlign=top;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;allowArrows=0;connectable=0;strokeColor=#000000;strokeWidth=1;fontSize=12;fillColor=default;spacingBottom=0;spacingTop=0;shadow=1;\" vertex=\"1\" parent=\"1\"&gt;&lt;mxGeometry width=\"200\" height=\"67\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"3\" value=\"&amp;lt;span style=&amp;quot;font-weight: normal;&amp;quot;&amp;gt;«component»&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;font style=&amp;quot;font-size: 16px;&amp;quot;&amp;gt;Foo&amp;lt;/font&amp;gt;\" style=\"html=1;align=center;spacingLeft=4;verticalAlign=top;strokeColor=none;fillColor=none;fontStyle=1;strokeWidth=1;fontSize=12;spacingTop=8;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry width=\"200\" height=\"67\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"4\" value=\"\" style=\"shape=component;jettyWidth=8;jettyHeight=4;fontSize=12;fillColor=default;strokeColor=default;strokeWidth=1;\" vertex=\"1\" parent=\"3\"&gt;&lt;mxGeometry x=\"1\" width=\"24\" height=\"16\" relative=\"1\" as=\"geometry\"&gt;&lt;mxPoint x=\"-31\" y=\"7\" as=\"offset\"/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 200,
"h": 67,
"aspect": "fixed",
"title": "Component"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"Class\" style=\"rounded=0;whiteSpace=wrap;html=1;fontStyle=1\" vertex=\"1\" parent=\"1\"&gt;&lt;mxGeometry width=\"120\" height=\"60\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 120,
"h": 60,
"aspect": "fixed",
"title": "Class"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"\" style=\"endArrow=none;html=1;rounded=0;jumpStyle=gap;jumpSize=10;\" edge=\"1\" parent=\"1\"&gt;&lt;mxGeometry width=\"50\" height=\"50\" relative=\"1\" as=\"geometry\"&gt;&lt;mxPoint y=\"50\" as=\"sourcePoint\"/&gt;&lt;mxPoint x=\"50\" as=\"targetPoint\"/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 49.99999999999999,
"h": 49.99999999999999,
"aspect": "fixed",
"title": "Delegating connector"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"\" style=\"endArrow=open;html=1;rounded=0;endFill=0;fontSize=12;endSize=10;startSize=10;jumpStyle=gap;jumpSize=10;\" edge=\"1\" parent=\"1\"&gt;&lt;mxGeometry width=\"50\" height=\"50\" relative=\"1\" as=\"geometry\"&gt;&lt;mxPoint y=\"40\" as=\"sourcePoint\"/&gt;&lt;mxPoint x=\"30\" as=\"targetPoint\"/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 30,
"h": 40,
"aspect": "fixed",
"title": "Association"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"\" style=\"endArrow=open;html=1;rounded=0;dashed=1;endFill=0;fontSize=12;endSize=10;startSize=10;jumpStyle=gap;jumpSize=10;\" edge=\"1\" parent=\"1\"&gt;&lt;mxGeometry width=\"50\" height=\"50\" relative=\"1\" as=\"geometry\"&gt;&lt;mxPoint y=\"40\" as=\"sourcePoint\"/&gt;&lt;mxPoint x=\"30\" as=\"targetPoint\"/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 29.999999999999996,
"h": 40,
"aspect": "fixed",
"title": "Depedendeny"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"Text\" style=\"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;\" vertex=\"1\" parent=\"1\"&gt;&lt;mxGeometry width=\"60\" height=\"30\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 60,
"h": 30,
"aspect": "fixed",
"title": "Label"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"\" style=\"rounded=0;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;fillColor=none;strokeColor=none;rotation=-225;\" vertex=\"1\" parent=\"1\"&gt;&lt;mxGeometry y=\"5.642135623730951\" width=\"40\" height=\"17\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"3\" value=\"\" style=\"rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=halfCircle;endFill=0;endSize=6;strokeWidth=1;sketch=0;fontSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" edge=\"1\" source=\"2\" target=\"2\" parent=\"1\"&gt;&lt;mxGeometry relative=\"1\" as=\"geometry\"&gt;&lt;mxPoint x=\"34\" y=\"13.642135623730951\" as=\"sourcePoint\"/&gt;&lt;mxPoint x=\"-6\" y=\"13.642135623730951\" as=\"targetPoint\"/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 40,
"h": 28.284271247461874,
"aspect": "fixed",
"title": "Required interface"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"\" style=\"group;rotation=-45;\" vertex=\"1\" connectable=\"0\" parent=\"1\"&gt;&lt;mxGeometry width=\"43\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"3\" value=\"\" style=\"ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fillColor=default;rotation=-45;strokeColor=default;fontSize=12;container=0;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry x=\"28\" y=\"-12\" width=\"10\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"4\" value=\"\" style=\"endArrow=none;html=1;rounded=0;fontSize=11;\" edge=\"1\" parent=\"2\" target=\"3\"&gt;&lt;mxGeometry width=\"50\" height=\"50\" relative=\"1\" as=\"geometry\"&gt;&lt;mxPoint x=\"6\" y=\"20\" as=\"sourcePoint\"/&gt;&lt;mxPoint x=\"54\" y=\"54\" as=\"targetPoint\"/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 43,
"h": 10,
"aspect": "fixed",
"title": "Provided interface"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"\" style=\"group;rotation=45;\" vertex=\"1\" connectable=\"0\" parent=\"1\"&gt;&lt;mxGeometry width=\"17\" height=\"49.857864376268935\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"3\" value=\"\" style=\"rounded=0;whiteSpace=wrap;html=1;points=[];fillColor=default;rotation=45;fontSize=12;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry x=\"-10\" y=\"34\" width=\"10\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"4\" value=\"\" style=\"rounded=0;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;fillColor=none;strokeColor=none;rotation=135;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry x=\"-8\" y=\"13\" width=\"40\" height=\"17\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"5\" value=\"\" style=\"rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=halfCircle;endFill=0;endSize=6;strokeWidth=1;sketch=0;fontSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" edge=\"1\" parent=\"2\" source=\"4\" target=\"4\"&gt;&lt;mxGeometry relative=\"1\" as=\"geometry\"&gt;&lt;mxPoint x=\"22\" y=\"31\" as=\"sourcePoint\"/&gt;&lt;mxPoint x=\"-6\" y=\"3\" as=\"targetPoint\"/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 17,
"h": 49.857864376268935,
"aspect": "fixed",
"title": "Required interface with port"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"\" style=\"group;rotation=-180;\" vertex=\"1\" connectable=\"0\" parent=\"1\"&gt;&lt;mxGeometry y=\"-2.2737367544323206e-13\" width=\"51\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"3\" value=\"\" style=\"rounded=0;whiteSpace=wrap;html=1;points=[];fillColor=default;rotation=-450;fontSize=12;container=0;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry x=\"41\" width=\"10\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"4\" value=\"\" style=\"ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fillColor=default;rotation=-540;strokeColor=default;fontSize=12;container=0;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry width=\"10\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"5\" value=\"\" style=\"endArrow=none;html=1;rounded=0;fontSize=11;\" edge=\"1\" parent=\"2\" source=\"3\" target=\"4\"&gt;&lt;mxGeometry width=\"50\" height=\"50\" relative=\"1\" as=\"geometry\"&gt;&lt;mxPoint x=\"42\" y=\"8\" as=\"sourcePoint\"/&gt;&lt;mxPoint x=\"31\" y=\"-51\" as=\"targetPoint\"/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 51,
"h": 10,
"aspect": "fixed",
"title": "Provided interface with port"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"\" style=\"group;rotation=-90;\" vertex=\"1\" connectable=\"0\" parent=\"1\"&gt;&lt;mxGeometry x=\"-2.2737367544323206e-13\" width=\"51\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"3\" value=\"\" style=\"rounded=0;whiteSpace=wrap;html=1;points=[];fillColor=default;rotation=-360;fontSize=12;container=0;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry x=\"21\" y=\"21\" width=\"10\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"4\" value=\"\" style=\"ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fillColor=default;rotation=-450;strokeColor=default;fontSize=12;container=0;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry x=\"21\" y=\"-20\" width=\"10\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"5\" value=\"\" style=\"endArrow=none;html=1;rounded=0;fontSize=11;\" edge=\"1\" parent=\"2\" source=\"3\" target=\"4\"&gt;&lt;mxGeometry width=\"50\" height=\"50\" relative=\"1\" as=\"geometry\"&gt;&lt;mxPoint x=\"23\" y=\"22\" as=\"sourcePoint\"/&gt;&lt;mxPoint x=\"82\" y=\"11\" as=\"targetPoint\"/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 51,
"h": 10,
"aspect": "fixed",
"title": "Provided interface with port"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"\" style=\"group;rotation=90;\" vertex=\"1\" connectable=\"0\" parent=\"1\"&gt;&lt;mxGeometry y=\"2.2737367544323206e-13\" width=\"51\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"3\" value=\"\" style=\"rounded=0;whiteSpace=wrap;html=1;points=[];fillColor=default;rotation=-180;fontSize=12;container=0;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry x=\"20\" y=\"-21\" width=\"10\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"4\" value=\"\" style=\"ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fillColor=default;rotation=-270;strokeColor=default;fontSize=12;container=0;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry x=\"20\" y=\"20\" width=\"10\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"5\" value=\"\" style=\"endArrow=none;html=1;rounded=0;fontSize=11;\" edge=\"1\" parent=\"2\" source=\"3\" target=\"4\"&gt;&lt;mxGeometry width=\"50\" height=\"50\" relative=\"1\" as=\"geometry\"&gt;&lt;mxPoint x=\"28\" y=\"-12\" as=\"sourcePoint\"/&gt;&lt;mxPoint x=\"-31\" y=\"-1\" as=\"targetPoint\"/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 51,
"h": 10,
"aspect": "fixed",
"title": "Provided interface with port"
},
{
"xml": "&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id=\"0\"/&gt;&lt;mxCell id=\"1\" parent=\"0\"/&gt;&lt;mxCell id=\"2\" value=\"\" style=\"group\" vertex=\"1\" connectable=\"0\" parent=\"1\"&gt;&lt;mxGeometry y=\"2.2737367544323206e-13\" width=\"51\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"3\" value=\"\" style=\"rounded=0;whiteSpace=wrap;html=1;points=[];fillColor=default;rotation=-270;fontSize=12;container=0;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry width=\"10\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"4\" value=\"\" style=\"ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fillColor=default;rotation=-360;strokeColor=default;fontSize=12;container=0;\" vertex=\"1\" parent=\"2\"&gt;&lt;mxGeometry x=\"41\" width=\"10\" height=\"10\" as=\"geometry\"/&gt;&lt;/mxCell&gt;&lt;mxCell id=\"5\" value=\"\" style=\"endArrow=none;html=1;rounded=0;fontSize=11;\" edge=\"1\" parent=\"2\" source=\"3\" target=\"4\"&gt;&lt;mxGeometry width=\"50\" height=\"50\" relative=\"1\" as=\"geometry\"&gt;&lt;mxPoint x=\"9\" y=\"2\" as=\"sourcePoint\"/&gt;&lt;mxPoint x=\"20\" y=\"61\" as=\"targetPoint\"/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;",
"w": 51,
"h": 10,
"aspect": "fixed",
"title": "Provided interface with port"
}
]</mxlibrary>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment