There is a Form component that is defined explicitly, as an XML element in a Tapestry namespace. There are four Tapestry components inside this form. Two of them, of the type Label, are defined in the same way, explicitly, while two others??”TextField and PasswordField??”are hidden inside the HTML controls. Why is this mixture of two approaches used when defining Tapestry components? See, I am trying to follow a certain guideline. Those components that render themselves as HTML controls should preferably be hidden inside such controls. However, those components which are invisible on the page, like Form, or render themselves as plain text, like Label, are simpler to define in the explicit way. This is because, in my experience, it makes a lot of sense to start development of a page from its HTML mock-up. If I follow the suggested guideline, then even after inserting Tapestry instrumentation, such a template remains editable by standard HTML tools and can be previewed in a web browser. This keeps developer's efforts when customer's preferences change to a minimum. However, if you prefer a different approach??”say, you define all components explicitly, and it works for you, then follow it.