@startuml class PdmUiItem{ } package PdmObject{ PdmUiItem <|---- PdmUiObjectHandle PdmObjectHandle -* "n" PdmObjectCapability PdmObjectCapability <|-- PdmUiObjectHandle PdmObjectHandle <|-- PdmObject PdmUiObjectHandle <|-- PdmObject PdmXmlObjectHandle <|-- PdmObject PdmObjectCapability <|-- PdmXmlObjectHandle } package PdmField{ PdmUiItem <|---- PdmUiFieldHandle PdmFieldCapability <|-- PdmUiFieldHandle PdmObjectHandle -> "n" PdmFieldHandle PdmFieldHandle -* "n" PdmFieldCapability PdmFieldCapability <|-- PdmXmlFieldHandle PdmFieldHandle <|--- "PdmField" PdmFieldHandle <|--- "PdmProxyField" PdmFieldHandle <|--- "PdmPtrField" PdmFieldHandle <|--- "PdmChildField" PdmFieldHandle <|--- "PdmChildArrayField" } PdmObject <|-- YourClass @enduml