Takes the published UAVariable rather than UAVariableImpl.
This function is exported from the package entry while UAVariableImpl is not, so naming the
implementation class here made the first overload uncallable from outside - and from the
package's own tests, which hold public types. The instanceof UAVariableImpl below still
narrows it at run time; that check is what decides the branch, not the declared type.
Optionalnamespace: INamespace
where the element's Variable is created when one is made for it; the address space's own namespace by default
Building and maintaining a variable whose value is an array of extension objects.