Before instantiating a macro component, you have to declare first. One of simplest way to declare is to use the component directives.
<?component name="username" macroURI="/WEB-INF/macros/username.zul"?>
As shown, you have to declare the name (the name attribute) and the URI of the page (the macroURI attribute).
In additions to the name, macroURI and class[55] attributes, you can specify a list of initial properties that will be used to initialize a component when it is instantiated.
<?component name="mycomp" macroURI="/macros/mycomp.zul" myprop="myval" another="anotherval"?>
Therefore,
<mycomp/>
is equivalent to
<mycomp myprop="myval1" another="anotherval"/>