Nice marriage between great cause and technology!
But..., have you ever tried to support the lifecycle of an XSLT? When
you want to change things overtime - after not having touched it for
let's say a few months - it's a pain. Plus, I still don't like the
direct relationship and exposure between a table and its output.
What about adding an extra "projection" or "view" abstraction layer
that you maintain via the admin panel. Here you define the table or
query for your projection, including an HTML template for generating
an (unordered) list or table and the brackets for the applicable
fields, like "My name is {firstname} {lastname}. {bio}". Furthermore,
the projection gets an alias name that completely hides your
credentials, like a
bit.ly shortlink. And its the projection level
where you define your access and security settings; these don't belong
on a database or table level since they can be different for different
purposes.
Clear? Ivo