Changeset 2510


Ignore:
Timestamp:
01/30/13 09:40:09 (11 years ago)
Author:
mwindhouwer
Message:

M clavas.xsl

  • make sure there is only one prefLabel per language
File:
1 edited

Legend:

Unmodified
Added
Removed
  • cats/ISOcat/trunk/mod-ISOcat-interface-rest/representations/dcs2/clavas.xsl

    r2509 r2510  
    158158                    </xsl:if>
    159159                   
    160                     <xsl:for-each select="dcif:nameSection[not($lang='en' and dcif:name=$name)]">
     160                    <xsl:for-each-group select="dcif:nameSection[not($lang='en' and dcif:name=$name)]" group-by="dcif:nameStatus">
    161161                        <xsl:choose>
    162                             <xsl:when test="dcif:nameStatus='preferred name'">
    163                                 <skos:prefLabel xml:lang="{$lang}">
    164                                     <xsl:value-of select="normalize-space(dcif:name)"/>
    165                                 </skos:prefLabel>
     162                            <xsl:when test="current-grouping-key()='preferred name'">
     163                                <xsl:variable name="pref" select="if ($lang='en') then () else (current-group()[1])"/>
     164                                <xsl:if test="exists($pref)">
     165                                    <skos:prefLabel xml:lang="{$lang}">
     166                                        <xsl:value-of select="normalize-space(dcif:name)"/>
     167                                    </skos:prefLabel>
     168                                </xsl:if>
     169                                <xsl:for-each select="current-group()[dcif:name ne $pref/dcif:name]">
     170                                    <skos:altLabel xml:lang="{$lang}">
     171                                        <xsl:value-of select="normalize-space(dcif:name)"/>
     172                                    </skos:altLabel>
     173                                </xsl:for-each>
    166174                            </xsl:when>
    167                             <xsl:when test="dcif:nameStatus='standardized name'">
    168                                 <skos:prefLabel xml:lang="{$lang}">
    169                                     <xsl:value-of select="normalize-space(dcif:name)"/>
    170                                 </skos:prefLabel>
     175                            <xsl:when test="current-grouping-key()='standardized name'">
     176                                <xsl:for-each select="current-group()">
     177                                    <skos:altLabel xml:lang="{$lang}">
     178                                        <xsl:value-of select="normalize-space(dcif:name)"/>
     179                                    </skos:altLabel>
     180                                </xsl:for-each>
    171181                            </xsl:when>
    172                             <xsl:when test="dcif:nameStatus='admitted name'">
    173                                 <skos:altLabel xml:lang="{$lang}">
    174                                     <xsl:value-of select="normalize-space(dcif:name)"/>
    175                                 </skos:altLabel>
     182                            <xsl:when test="current-grouping-key()='admitted name'">
     183                                <xsl:for-each select="current-group()">
     184                                    <skos:altLabel xml:lang="{$lang}">
     185                                        <xsl:value-of select="normalize-space(dcif:name)"/>
     186                                    </skos:altLabel>
     187                                </xsl:for-each>
    176188                            </xsl:when>
    177189                            <xsl:otherwise>
    178                                 <skos:hiddenLabel xml:lang="{$lang}">
    179                                     <xsl:value-of select="normalize-space(dcif:name)"/>
    180                                 </skos:hiddenLabel>
     190                                <xsl:for-each select="current-group()">
     191                                    <skos:hiddenLabel xml:lang="{$lang}">
     192                                        <xsl:value-of select="normalize-space(dcif:name)"/>
     193                                    </skos:hiddenLabel>
     194                                </xsl:for-each>
    181195                            </xsl:otherwise>
    182196                        </xsl:choose>
    183                     </xsl:for-each>
     197                    </xsl:for-each-group>
    184198                   
    185199                    <xsl:for-each select="dcif:definitionSection">
Note: See TracChangeset for help on using the changeset viewer.