// load from xml found on IOEDiagram Diagram.registerItemClass( Custom1Node.class, "Custom1Node", 1 ); Diagram.registerItemClass( StyledTextComponent.class, "StyledTextComponent", 1 ); Diagram.registerItemClass( TitleNode.class, "TitleNode", 1 ); Diagram diagram = new Diagram(); diagram.addDiagramListener( new DiagramAdapter() { @SuppressWarnings({"RefusedBequest", "MethodDoesntCallSuperMethod"}) @Override public void serializeTag( SerializeTagEvent serializeTagEvent ) { onSerializeTag( serializeTagEvent ); } @SuppressWarnings({"RefusedBequest", "MethodDoesntCallSuperMethod"}) @Override public void deserializeTag( SerializeTagEvent serializeTagEvent ) { onDeserializeTag( serializeTagEvent ); } } ); try { DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder(); StringReader reader = new StringReader( myDiagramHolder.getXml() ); Document doc = builder.parse( new InputSource( reader ) ); diagram.loadFromXml( doc, false ); } catch (SAXException | ParserConfigurationException | IOException | XmlException se) { logger.error( "Failed to load diagram from XML", se ); }