Changeset 223 for Document_handling


Ignore:
Timestamp:
12/08/04 14:31:16 (15 years ago)
Author:
selatham
Message:

Changed for version 1.1 of the NDG_B schema plus other enhancements.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Document_handling/trunk/XSLT/dif_to_ndg.xsl

    r222 r223  
    44       If the original document contains just "DIF" a skeleton NDG MDM document is created with all mandatory fields but no content. 
    55      Author - Sue Latham 01/06/2004 
    6       Version 1.1 amended for changes to MDM schema as at v1.1 
     6      Version 1.1 01/08/04 amended for changes to MDM schema as at v1.1. 
     7                         09/08/04 amended to split address lines, use GCMD level 4 name as ParameterName if GCMD detailed parameter doesn't exist. 
    78--> 
    89<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
     
    1112                <xsl:apply-templates/> 
    1213        </xsl:template> 
     14         
     15        <xsl:template match="node()" mode="replaceLineBreaks" 
     16              name="replaceLineBreaks"> 
     17          <xsl:param name="string" select="." /> 
     18          <xsl:choose> 
     19             <!-- if the string starts with a line break... --> 
     20            <xsl:when test="starts-with($string, '&#x000A;')"> 
     21                      <!-- and then call the template recursively on the rest of the string after the line break--> 
     22              <xsl:call-template name="replaceLineBreaks"> 
     23                <xsl:with-param name="string" 
     24                                select="substring-after($string, '&#x000A;')" /> 
     25              </xsl:call-template> 
     26            </xsl:when> 
     27            <!-- if the string contains a line break... --> 
     28            <xsl:when test="contains($string, '&#x000A;')"> 
     29              <!-- give the part before the line break in an addressline element... --> 
     30              <addressline><xsl:value-of select="substring-before($string, '&#x000A;')" /> 
     31              </addressline> 
     32              <!-- and then call the template recursively on the rest of the string --> 
     33              <xsl:call-template name="replaceLineBreaks"> 
     34                <xsl:with-param name="string" 
     35                                select="substring-after($string, '&#x000A;')" /> 
     36              </xsl:call-template> 
     37            </xsl:when> 
     38            <!-- if the string doesn't contain a line break, just give its 
     39                 value, followed by an addressline element --> 
     40            <xsl:otherwise> 
     41              <xsl:if test="$string !=''">         
     42                  <addressline><xsl:value-of select="$string" /></addressline> 
     43              </xsl:if> 
     44            </xsl:otherwise> 
     45          </xsl:choose> 
     46        </xsl:template> 
     47 
    1348        <xsl:template match="DIF"> 
    1449                 <dgMetadata> 
     
    122157                                                        </dgStdParameterMeasured> 
    123158                                                        <ParameterName> 
    124                                                                 <xsl:value-of select="Detailed_Variable"/> 
     159                                                                <xsl:choose> 
     160                                                                        <xsl:when  test="count(Detailed_Variable)=0"> 
     161                                                                                <xsl:value-of select="Variable"/> 
     162                                                                        </xsl:when> 
     163                                                                        <xsl:otherwise> 
     164                                                                                <xsl:value-of select="Detailed_Variable"/> 
     165                                                                        </xsl:otherwise> 
     166                                                                </xsl:choose> 
    125167                                                        </ParameterName> 
    126168                                                        <ParameterAbbreviation> 
    127                                                                 <xsl:value-of select="Detailed_Variable"/> 
     169                                                                <xsl:choose> 
     170                                                                        <xsl:when  test="count(Detailed_Variable)=0"> 
     171                                                                                <xsl:value-of select="Variable"/> 
     172                                                                        </xsl:when> 
     173                                                                        <xsl:otherwise> 
     174                                                                                <xsl:value-of select="Detailed_Variable"/> 
     175                                                                        </xsl:otherwise> 
     176                                                                </xsl:choose> 
    128177                                                        </ParameterAbbreviation> 
    129178                                                        <ParameterLevel>0</ParameterLevel> 
    130179                                                </dgParameterSummary> 
    131180                                        </xsl:for-each>  
    132                                         <!-- where there are no parameters in the DIf create one empty dgParameterSummary --> 
     181                                        <!-- where there are no parameters in the DIF create one empty dgParameterSummary --> 
    133182                                        <xsl:if test="count(Parameters)=0"> 
    134183                                                <dgParameterSummary>     
     
    199248                                                        <telephone><xsl:value-of select="Data_Center/Personnel/Phone"></xsl:value-of></telephone> 
    200249                                                        <address> 
    201                                                                 <addressline><xsl:value-of select="Data_Center/Personnel/Address"></xsl:value-of></addressline> 
     250                                                                <xsl:apply-templates select="Data_Center/Personnel/Address" mode="replaceLineBreaks" /> 
    202251                                                                <city></city> 
    203252                                                                <postcode></postcode> 
Note: See TracChangeset for help on using the changeset viewer.