A NamedElement with package visibility is visible to all Elements within the nearest enclosing Package (given that other owning Elements have proper visibility).
A NamedElement with package visibility is visible to all Elements within the nearest enclosing Package (given that other owning Elements have proper visibility). Outside the nearest enclosing Package, a NamedElement marked as having package visibility is not visible. Only NamedElements that are not owned by Packages can be marked as having package visibility.
A NamedElement with private visibility is only visible inside the Namespace that owns it.
A NamedElement with protected visibility is visible to Elements that have a generalization relationship to the Namespace that owns it.
A Named Element with public visibility is visible to all elements that can access the contents of the Namespace that owns it.