2005-06-20

Een bibliotheek van xslt templates

Ik stel voor dat we, voordat iedereen allerlei template libraries gaat zitten maken, eerst wat algemene afspraken over dit soort dingen maken. Vorige week heb ik voor "het" korte format iets dergelijks gedaan tbv. de uitleen.

M.i. belangrijke aspecten hiervan (ivm. herbruikbaarheid) zijn:

- inhoud: geen enkele html-tag, wel tekst-indeling volgens standaards (ISBD), behalve evt. op het niveau van de titelbeschrijving zelf. In geen geval style elementen of van de omgeving (bv database of toepassing) afhankelijke zaken. Op titelbeschrijving-niveau kan evt. een class attribute zinvol zijn.

- naamgeving (mijn voorkeur: duidelijke namen voor de xslt's, waarbij niet de applicatie maar de inhoud duidelijk wordt. (bv. titelbeschrijving-kort voor de enige echte korte titelbeschrijving (en over de inhoud daarvan zal de bibliotheek - dus niet alleen onze afdeling - het eens moeten zijn, dus eerst bespreken in projectgroepvergadering van 1501), geen underscores maar koppeltekens in de naam)

- template-gebruik: nooit call-template gebruiken maar altijd apply-templates,
en altijd consequent gebruiken daarvan, dus een template voor elk element op elk niveau, inclusief dezelfde mode als de caller. Conditionele vaste teksten op het laagst mogelijke niveau; pre-literals
vóór en post-literals ná de inhoud, ook voor herhalingen (dus bv. komma-spatie vóór de volgende occurrencee en niet ná de vorige, en een punt ná de laatste). Dit klinkt misschien overdreven, maar het is essentieel voor doelmatig hergebruik. In een toepassing kunnnen dan waar nodig templates gemaakt worden die details anders doen. In de huidige situatie (zoals in de productie-omgeving gegroeid) kan dat niet, omdat geen rekening gehouden is met hergebruik van delen.

- literals: altijd als text element opnemen, niet "los" neerzetten. Tabs en returns (alleen als ze echt in elke denkbare situatie noodzakelijk zijn) opnemen als numerieke enttites ( resp
), niet met de tab- resp. enter-toets.

- alleen templates in zo'n bibliotheek opnemen die universeel bruikbaar zijn, en dus vooraf nadenken over mogelijke herbruikbaarheid (ook in toepassingen die nog niet bedacht zijn ;-).

- goed documenteren, bij voorkeur boven elke template een korte uitleg in een javadoc-compatibel commentaar.

zie titelbeschrijving-short.xslt in de productie-omgeving voor een (nog niet compleet) voorbeeld. Dit is een afgeleide van het belangrijkste deel van het beruchte "restregel" template (dat ooit bedoeld was als "de" korte titelbeschrijving), en bevat nog een aantal daarvan afkomstige fouten. En, inderdaad, de naam ervan moet eigenlijk titelbeschrijving-kort worden en de documentatie moet er nog bij.

Age Jan