The <QueryTemplate> element provides the Velocity template from which the SQL query is built. It carries no attributes or child elements.
Typically the XML CDATA construct is used to wrap the text because it avoids the need for special escaping of most characters.
As enumerated below, several variables are available to the Velocity template context. In practice $resolutionContext.principal and any dependent attributes tend to be most useful.
The AttributeResolutionContext. Commonly useful properties include $resolutionContext.principal and $resolutionContext.attributeRecipientID
foo, bar, etc.
For each IdPAttribute available from all the input dependencies, the attributes' values are available as a collection under the attribute's name. For the first value of an attribute with the ID "foo", foo.get(0) will provide it.
Note this this is a simplification of the actual native data structures to simplify the template.
SELECT * FROM people WHERE userid='$resolutionContext.principal'