digraph G { graph [splines="ortho" pad=0.5 ranksep="1.2.equally" nodesep="1.2.equally"] edge [color="gray50"] node [shape="box" fontname="Helvetica-bold"] AddressProfile [ shape="plain" fontname="Helvetica" label=<
AddressProfile
>] AddressClassProfile [ shape="plain" fontname="Helvetica" label=<
AddressClassProfile
>] AddressComponentProfile [ shape="plain" fontname="Helvetica" label=<
AddressComponentProfile
>] AttributeProfile [ shape="plain" fontname="Helvetica" label=<
AttributeProfile
>] ProfileCompliantAddress [ shape="plain" fontname="Helvetica" label=<
ProfileCompliantAddress
>] InterchangeAddressClassProfile [ shape="plain" fontname="Helvetica" label=<
InterchangeAddressClassProfile
>] AddressProfile -> AddressComponentProfile [dir="back" label="defines ▶" arrowtail="onormal" arrowhead="odiamond" taillabel="+componentProfile 0..*"] AddressProfile -> AddressClassProfile [dir="back" label="defines ▶" arrowtail="onormal" arrowhead="odiamond" taillabel="+addressProfile 0..*"] AddressClassProfile -> AttributeProfile [dir="both" headlabel="+addressClassProfile" taillabel="+attributeProfile" arrowtail="odiamond" arrowhead="vee"] AddressClassProfile -> ProfileCompliantAddress [dir="direct" label="◀ compliesWith" headlabel="+profile 1..1" arrowtail="onormal" arrowhead="vee"] AddressComponentProfile -> AddressClassProfile [dir="direct" label="◀ uses" taillabel="+componentProfile" arrowtail="onormal" arrowhead="odiamond"] AddressComponentProfile -> AttributeProfile [dir="both" headlabel="+addressClassProfile" taillabel="+attributeProfile" arrowtail="odiamond" arrowhead="vee"] InterchangeAddressClassProfile -> AddressClassProfile [dir="direct" arrowtail="onormal" arrowhead="onormal"] }