Person names

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

personname role attributeExample output
noneBob 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 won't 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>