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=<
>]
AddressClassProfile [
shape="plain"
fontname="Helvetica"
label=<>]
AddressComponentProfile [
shape="plain"
fontname="Helvetica"
label=<>]
AttributeProfile [
shape="plain"
fontname="Helvetica"
label=<>]
ProfileCompliantAddress [
shape="plain"
fontname="Helvetica"
label=<>]
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"]
}