Person names

The stylesheets support three different styles for rendering a person's name from a personname element. You select the style for a given instance by adding a role attribute to the personname element. The styles are:

personname role attributeExample output
none or role="first-last"Bob Stayton
role="last-first"Stayton, Bob
role="family-given"Stayton Bob [FAMILY Given]

The family-given style commonly used in Asia adds a text label to identify the style so it will not be confused with the first-name last-name order. If you want to change the way that style is handled, you can customize the template named person.name.family-given in common/common.xsl as follows:

<xsl:template name="person.name.family-given">
  <xsl:param name="node" select="."/>

  <!-- The family-given style applies a convention for identifying given -->
  <!-- and family names in locales where it may be ambiguous -->
  <xsl:apply-templates select="$node//surname[1]"/>

  <xsl:if test="$node//surname and $node//firstname">
    <xsl:text> </xsl:text>
  </xsl:if>

  <xsl:apply-templates select="$node//firstname[1]"/>

  <xsl:text> [FAMILY Given]</xsl:text>
</xsl:template>

The style of person names can also be globally changed for each language using the gentext locale files. For example, the English gentext file common/en.xml has this entry which sets the English style to first-last:

<l:context name="styles">
     <l:template name="person-name" text="first-last"/>
 </l:context>

See the section “Generated text” for more information on customizing gentext.

If you want to change the handling of a named style or add additional person name styles, you can customize the template named person.name in the stylesheet module common/common.xsl.