@startuml skinparam svgDimensionStyle false package "FHIR R5 (current)" #ccc { class "ActorDefinition" as ad { description purpose type } class "Requirements" as req { description purpose } class "Statement" as s { conformance requirement } package "Profile" #ddd { class "ElementDefinition" as ed { condition mustHaveValue valueAlternatives mustSupport isSummary binding } class "StructureDefinition" as sd { } } class "Obligation Profile Flag Extension" as obf { } Note right marks a profile as "obligation profile only" end Note class "Obligation Ext." as o { code documentation usage filter filterDocumentation process } ad <-- ad: derived from req <-- req: derived from req --> ad : actor req *-- "0..*" s s <-- s : derived from sd *-- "0..*" ed o --> ad o --> ed : replaces mustSupport obf --> sd } @enduml