This code sample is adapted from Clifford B. Anderson and Joseph C. Wicentowski, XQuery for Humanists (College Station: Texas A&M University Press, 2020), 123. Download this code sample in its raw form. View the source on GitHub.

xquery version "3.1";

module namespace tf = "";

import module namespace functx = ""
    at "";

declare namespace tei = "";

declare function tf:make-tei-title(
    $title as xs:string,
    $subtitle as xs:string?
    ) as element(tei:title) {
    <title type="full" xmlns="">
        <title type="main">{ functx:capitalize-first($title) }</title>
        <title type="sub">{ functx:capitalize-first($subtitle) }</title>