Virtual XML template

Virtual XML templates (or deferred nodes) extend the Widget API by allowing widgets to inherit properties.
 <Frame name="MyFrameTemplate" virtual="true" />
 <Frame inherits="MyFrameTemplate" />
 
 CreateFrame("Frame", nil, nil, "MyFrameTemplate")
== Usage ==
* Add virtual="true" (and a name) in XML to any kind of , or .
* New widgets may inherit templates using a comma-delimited list of template names:
** The inherits="" attribute in XML.
** The fourth argument in ().
* FrameXML provides numerous templates that AddOns may use, including:
** A complete list (compiled by Ketho); and
** Several basic widget appearances (SharedUIPanelTemplates.xml, archived at Townlong-Yak).
== Details ==
* Templates do not reside in the global environment () during runtime; they exist in a separate state.
* Reusing the same name on two virtual templates will throw a warning in Logs/FrameXML.log and in-game.
== Patch changes ==
* 
* 
== See also ==
* Intrinsic frame - Alternative means to extend the widget API.
== References ==