4. Budujemy szablony dodatkowe

Pora przyjrzeć się teraz, jak tworzyć szablony dla poszczególnych modułów. Tutaj nie możemy już oczywiście wyświetlać prologów i DTD, dlatego naszym podstawowym narzędziem będzie opt:root, który pozwoli ładnie opakować nam kod do wyświetlenia:

<?xml version="1.0" ?>
<opt:root>
  <h1>News</h1>
  <p>Strona z newsami</p>
  <opt:section name="news">
    ...
  </opt:section>
</opt:root>

Analogicznie jak poprzednio, prolog XML widoczny w kodzie, znajduje się tam wyłącznie dla wiadomości OPT (co nie znaczy, że może zawierać kompletne głupoty. Kompilator akurat sprawdza jego zawartość oraz składnię). Dzięki opt:root nie musimy się przejmować ograniczeniem "jeden główny znacznik", a przy okazji możemy ustawić warunki escape'owania oraz dołączyć dodatkowy szablon ze snippetami, które będziemy mogli używać w naszym kodzie:

<?xml version="1.0" ?>
<opt:root escaping="yes" include="snippets.tpl">
  <h1>News</h1>
  <p>Strona z newsami</p>
  <opt:section name="news">
    ...
  </opt:section>
 
  <!-- wklej tutaj domyslny snippet do stronicowania z pliku snippets.tpl -->
  <opt:insert snippet="pagination" />
</opt:root>

Z tego powodu opt:root warto mieć w każdym szablonie nawet, jeśli wyłączyliśmy odpowiednie ograniczenie kompilatora.