1digraph {
2	compound=true
3	fontname="Inconsolata, Consolas"
4	fontsize=10
5	margin="0,0"
6	ranksep=0.2
7	penwidth=0.5
8
9	node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
10	edge [fontname="Inconsolata, Consolas", fontsize=10, arrowhead=normal]
11
12	{
13		node [shape=record, fontsize="8", margin="0.04", height=0.2, color=gray]
14		srcjson [label="\{|\"|p|r|o|j|e|c|t|\"|:|\"|r|a|p|i|d|j|s|o|n|\"|,|\"|s|t|a|r|s|\"|:|1|0|\}"]
15		dstjson [label="\{|\"|p|r|o|j|e|c|t|\"|:|\"|r|a|p|i|d|j|s|o|n|\"|,|\"|s|t|a|r|s|\"|:|1|1|\}"]
16	}
17
18	{
19		node [shape="box", style="filled", fillcolor="gray95"]
20		Document2 [label="(Modified) Document"]
21		Writer
22	}
23
24	subgraph cluster1 {
25		margin="10,10"
26		labeljust="left"
27		label = "Document"
28		style=filled
29		fillcolor=gray95
30		node [shape=Mrecord, style=filled, colorscheme=spectral7]
31
32		root [label="{object|}", fillcolor=3]
33
34		{
35			project [label="{string|\"project\"}", fillcolor=5]
36			rapidjson [label="{string|\"rapidjson\"}", fillcolor=5]
37			stars [label="{string|\"stars\"}", fillcolor=5]
38			ten [label="{number|10}", fillcolor=6]
39		}
40
41		edge [arrowhead=vee]
42		root -> { project; stars }
43
44		edge [arrowhead="none"]
45		project -> rapidjson
46		stars -> ten
47	}
48
49	srcjson -> root [label=" Parse()", lhead="cluster1"]
50
51	ten -> Document2 [label=" Increase \"stars\"", ltail="cluster1" ]
52	Document2  -> Writer [label=" Traverse DOM by Accept()"]
53	Writer -> dstjson [label=" Output to StringBuffer"]
54}