I have some ideas about component parameters. At this moment Tapestry allows us to define parameters only as attributes for a component tag, like everybory knows:
<tagName jwcid="[EMAIL PROTECTED]" param1="value" param2="value"/>. This mechanism allows to define as well as formal and informal parameters. It is also possible to allow body for a component in a component-specification file. As everybody knows this body may be rendered using @RenderBody component. But what I really need sometimes is to define a _formal_ body for my component. Let's say I want to develope a @Toolbar component that manages ToolbarItems such as ToolbarButton, ToolbarLabel, ToolbarEdit etc. It would be good if I can write like this: <toolbar jwcid="@Toolbar"> <toolbarLabel jwcid="@ToolbarLabel" ... /> <toolbarEdit jwcid="@ToolbarEdit" .../> <toolbarButton jwcid="@ToolbarButton" ... /> etc. </toolbar> ... and to check at runtime that the body is valid in order to inspect the component body as DOM and may be even perform some XSLT transformation for it or just use getContainer() & getComponents() and be sure that I will find exactly what I need there. I can write like that too but I can not guarantee that someone put some component inside of my toolbar that is not allowed there... Thats why I think about some analogue of XML-Schema or DTD for my component in order to control component layout in my page template. I know this is alitle crude but maybe some of you have also thought about this? What do you think?