Project Components are all the elements found inside a project, i.e. targets, tasks, types, etc. Project components may have attributes and nested tags. Attributes only contain simple values, i.e. strings, integers etc. Nested elements may be complex Phing types (like FileSets) or simple wrapper classes for values with custom keys (see Appendix D, Core Types for example).
Any nested elements must be supported by the class that implements the project
component, and because the nested tags are handled by the project component class the
same nested tag may have different meanings (and different attributes) depending on the
context. So, for example, the nested tag <param
.../> within the
<phingcall>
tag is handled very differently from
the<param.../>
tag within the
<xsltfilter>
tag -- in the first case setting project
properties, in the second case setting XSLT parameters.