36. Araxis Merge File Comparison Report

Produced by Araxis Merge on Fri Nov 21 17:21:44 2008 UTC. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a reasonably standards compliant browser such as the latest version of Firefox or Internet Explorer. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

36.1 Files compared

# Location File Last Modified
1 C:\Documents and Settings\allums\Desktop\2008.1.20396.b\Formats\Shared\common\baggage document.xsl Tue Dec 19 21:46:18 2006 UTC
2 C:\Documents and Settings\allums\Desktop\2008.2.20597.p2\Formats\Shared\common\baggage document.xsl Fri Jun 27 16:45:56 2008 UTC

36.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 18 334
Changed 15 149
Inserted 0 0
Removed 2 5

36.3 Comparison options

Whitespace Differences in whitespace are significant
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

36.4 Active regular expressions

Expression Description
\$(Author|Date|Header|Id|Locker|Name|RCSfile|Revision|Source|State):[^$]*\$ CVS comments

36.5 Comparison detail

1   <?xml vers ion="1.0"  encoding=" UTF-8"?>   1   <?xml vers ion="1.0"  encoding=" UTF-8"?>
2   <xsl:style sheet vers ion="1.0"  xmlns="urn :WebWorks- Baggage-Sc hema"   2   <xsl:style sheet vers ion="1.0"  xmlns="urn :WebWorks- Baggage-Sc hema"
3                                    xmlns:xsl= "http://ww w.w3.org/1 999/XSL/Tr ansform"   3                                    xmlns:xsl= "http://ww w.w3.org/1 999/XSL/Tr ansform"
4                                    xmlns:msxs l="urn:sch emas-micro soft-com:x slt"   4                                    xmlns:msxs l="urn:sch emas-micro soft-com:x slt"
5                                    xmlns:wwmo de="urn:We bWorks-Eng ine-Mode"   5                                    xmlns:wwmo de="urn:We bWorks-Eng ine-Mode"
6                                    xmlns:wwfi les="urn:W ebWorks-En gine-Files -Schema"   6                                    xmlns:wwfi les="urn:W ebWorks-En gine-Files -Schema"
7                                    xmlns:wwdo c="urn:Web Works-Docu ment-Schem a"   7                                    xmlns:wwdo c="urn:Web Works-Docu ment-Schem a"
8                                    xmlns:wwpr oject="urn :WebWorks- Publish-Pr oject"   8                                    xmlns:wwpr oject="urn :WebWorks- Publish-Pr oject"
9                                    xmlns:wwba ggage="urn :WebWorks- Baggage-Sc hema"   9                                    xmlns:wwba ggage="urn :WebWorks- Baggage-Sc hema"
10                                    xmlns:wwpr ogress="ur n:WebWorks -XSLT-Exte nsion-Prog ress"   10                                    xmlns:wwpr ogress="ur n:WebWorks -XSLT-Exte nsion-Prog ress"
11                                    xmlns:wwlo g="urn:Web Works-XSLT -Extension -Log"   11                                    xmlns:wwlo g="urn:Web Works-XSLT -Extension -Log"
12                                    xmlns:wwfi lesystem=" urn:WebWor ks-XSLT-Ex tension-Fi leSystem"   12                                    xmlns:wwfi lesystem=" urn:WebWor ks-XSLT-Ex tension-Fi leSystem"
13                                    xmlns:wwur i="urn:Web Works-XSLT -Extension -URI"   13                                    xmlns:wwur i="urn:Web Works-XSLT -Extension -URI"
14                                    xmlns:wwst ring="urn: WebWorks-X SLT-Extens ion-String Utilities"   14                                    xmlns:wwst ring="urn: WebWorks-X SLT-Extens ion-String Utilities"
15                                    xmlns:wwfi lesext="ur n:WebWorks -XSLT-Exte nsion-File s"   15                                    xmlns:wwfi lesext="ur n:WebWorks -XSLT-Exte nsion-File s"
16                                    xmlns:wwpr ojext="urn :WebWorks- XSLT-Exten sion-Proje ct"   16                                    xmlns:wwpr ojext="urn :WebWorks- XSLT-Exten sion-Proje ct"
17                                    xmlns:wwex sldoc="urn :WebWorks- XSLT-Exten sion-Docum ent"   17                                    xmlns:wwex sldoc="urn :WebWorks- XSLT-Exten sion-Docum ent"
18                                    exclude-re sult-prefi xes="xsl m sxsl wwmod e wwfiles  wwdoc wwpr oject wwba ggage wwpr ogress wwl og wwfiles ystem wwur i wwstring  wwfilesex t wwprojex t wwexsldo c"   18                                    exclude-re sult-prefi xes="xsl m sxsl wwmod e wwfiles  wwdoc wwpr oject wwba ggage wwpr ogress wwl og wwfiles ystem wwur i wwstring  wwfilesex t wwprojex t wwexsldo c"
19   >   19   >
20    <xsl:para m name="Gl obalInput"  />   20    <xsl:para m name="Gl obalInput"  />
21    <xsl:para m name="Gl obalPipeli neName" />   21    <xsl:para m name="Gl obalPipeli neName" />
22    <xsl:para m name="Gl obalProjec t" />   22    <xsl:para m name="Gl obalProjec t" />
23    <xsl:para m name="Gl obalFiles"  />   23    <xsl:para m name="Gl obalFiles"  />
24    <xsl:para m name="Pa rameterDep endsType"  />   24    <xsl:para m name="Pa rameterDep endsType"  />
25    <xsl:para m name="Pa rameterTyp e" />   25    <xsl:para m name="Pa rameterTyp e" />
26     26  
27     27  
28    <xsl:name space-alia s styleshe et-prefix= "wwbaggage " result-p refix="#de fault" />   28    <xsl:name space-alia s styleshe et-prefix= "wwbaggage " result-p refix="#de fault" />
29     29  
30     30  
31    <xsl:key  name="wwfi les-files- by-type" m atch="wwfi les:File"  use="@type " />   31    <xsl:key  name="wwfi les-files- by-type" m atch="wwfi les:File"  use="@type " />
32    <xsl:key  name="wwpr oject-docu ments-by-d ocumentid"  match="ww project:Do cument" us e="@Docume ntID" />   32    <xsl:key  name="wwpr oject-docu ments-by-d ocumentid"  match="ww project:Do cument" us e="@Docume ntID" />
33     33  
34     34  
35    <xsl:vari able name= "GlobalAct ionChecksu m">   35    <xsl:vari able name= "GlobalAct ionChecksu m">
36     <xsl:var iable name ="VarTrans formChecks ums">   36     <xsl:var iable name ="VarTrans formChecks ums">
37      <xsl:va lue-of sel ect="conca t(wwuri:As FilePath(' wwtransfor m:self'),  ':', wwfil esystem:Ge tChecksum( wwuri:AsFi lePath('ww transform: self')))"  />   37      <xsl:va lue-of sel ect="conca t(wwuri:As FilePath(' wwtransfor m:self'),  ':', wwfil esystem:Ge tChecksum( wwuri:AsFi lePath('ww transform: self')))"  />
38     </xsl:va riable>   38     </xsl:va riable>
39     <xsl:val ue-of sele ct="wwstri ng:MD5Chec ksum($VarT ransformCh ecksums)"  />   39     <xsl:val ue-of sele ct="wwstri ng:MD5Chec ksum($VarT ransformCh ecksums)"  />
40    </xsl:var iable>   40    </xsl:var iable>
41     41  
42     42  
43    <!-- Proj ect Docume nts via Ab solute Pat h -->   43    <!-- Proj ect Docume nts via Ab solute Pat h -->
44    <!--                                         -->   44    <!--                                         -->
45    <xsl:vari able name= "GlobalPro jectDocume ntsAsXML">   45    <xsl:vari able name= "GlobalPro jectDocume ntsAsXML">
46     <wwproje ct:Documen ts>   46     <wwproje ct:Documen ts>
47      <xsl:fo r-each sel ect="$Glob alProject/ wwproject: Project/ww project:Gr oups//wwpr oject:Docu ment">   47      <xsl:fo r-each sel ect="$Glob alProject/ wwproject: Project/ww project:Gr oups//wwpr oject:Docu ment">
48       <xsl:v ariable na me="VarPro jectDocume nt" select ="." />   48       <xsl:v ariable na me="VarPro jectDocume nt" select ="." />
49     49  
50       <xsl:c opy>   50       <xsl:c opy>
51        <xsl: copy-of se lect="@*[l ocal-name( ) != 'Path ']" />   51        <xsl: copy-of se lect="@*[l ocal-name( ) != 'Path ']" />
52        <xsl: attribute  name="Path ">   52        <xsl: attribute  name="Path ">
53         <xsl :value-of  select="ww projext:Ge tDocumentP ath($VarPr ojectDocum ent/@Docum entID)" />   53         <xsl :value-of  select="ww projext:Ge tDocumentP ath($VarPr ojectDocum ent/@Docum entID)" />
54        </xsl :attribute >   54        </xsl :attribute >
55       </xsl: copy>   55       </xsl: copy>
56      </xsl:f or-each>   56      </xsl:f or-each>
57     </wwproj ect:Docume nts>   57     </wwproj ect:Docume nts>
58    </xsl:var iable>   58    </xsl:var iable>
59    <xsl:vari able name= "GlobalPro jectDocume nts" selec t="msxsl:n ode-set($G lobalProje ctDocument sAsXML)" / >   59    <xsl:vari able name= "GlobalPro jectDocume nts" selec t="msxsl:n ode-set($G lobalProje ctDocument sAsXML)" / >
60     60  
61     61  
62    <xsl:temp late match ="/">   62    <xsl:temp late match ="/">
63     <wwfiles :Files ver sion="1.0" >   63     <wwfiles :Files ver sion="1.0" >
64     64  
65      <!-- It erate inpu t document s -->   65      <!-- It erate inpu t document s -->
66      <!--                            -->   66      <!--                            -->
67      <xsl:fo r-each sel ect="$Glob alInput[1] ">   67      <xsl:fo r-each sel ect="$Glob alInput[1] ">
68       <xsl:v ariable na me="VarFil esByType"  select="ke y('wwfiles -files-by- type', $Pa rameterDep endsType)"  />   68       <xsl:v ariable na me="VarFil esByType"  select="ke y('wwfiles -files-by- type', $Pa rameterDep endsType)"  />
69     69  
70       <xsl:v ariable na me="VarPro gressWIFFi lesStart"  select="ww progress:S tart(count ($VarFiles ByType))"  />   70       <xsl:v ariable na me="VarPro gressWIFFi lesStart"  select="ww progress:S tart(count ($VarFiles ByType))"  />
71     71  
72       <xsl:f or-each se lect="$Var FilesByTyp e">   72       <xsl:f or-each se lect="$Var FilesByTyp e">
73        <xsl: variable n ame="VarWI FFile" sel ect="." />   73        <xsl: variable n ame="VarWI FFile" sel ect="." />
74     74  
75        <xsl: variable n ame="VarPr ogressWIFF ileStart"  select="ww progress:S tart(1)" / >   75        <xsl: variable n ame="VarPr ogressWIFF ileStart"  select="ww progress:S tart(1)" / >
76     76  
77        <!--  Aborted? - ->   77        <!--  Aborted? - ->
78        <!--           - ->   78        <!--           - ->
79        <xsl: if test="n ot(wwprogr ess:Abort( ))">   79        <xsl: if test="n ot(wwprogr ess:Abort( ))">
80         <!--  Up to dat e? -->   80         <!--  Up to dat e? -->
81         <!--               -->   81         <!--               -->
82         <xsl :variable  name="VarP ath" selec t="wwfiles ystem:Comb ine(wwfile system:Get DirectoryN ame($VarWI FFile/@pat h), concat (translate ($Paramete rType, ':' , '_'),'.x ml'))" />   82         <xsl :variable  name="VarP ath" selec t="wwfiles ystem:Comb ine(wwfile system:Get DirectoryN ame($VarWI FFile/@pat h), concat (translate ($Paramete rType, ':' , '_'),'.x ml'))" />
83         <xsl :variable  name="VarU pToDate" s elect="wwf ilesext:Up ToDate($Va rPath, $Gl obalProjec t/wwprojec t:Project/ @ChangeID,  $VarWIFFi le/@groupI D, $VarWIF File/@docu mentID, $G lobalActio nChecksum) " />   83         <xsl :variable  name="VarU pToDate" s elect="wwf ilesext:Up ToDate($Va rPath, $Gl obalProjec t/wwprojec t:Project/ @ChangeID,  $VarWIFFi le/@groupI D, $VarWIF File/@docu mentID, $G lobalActio nChecksum) " />
84         <xsl :if test=" not($VarUp ToDate)">   84         <xsl :if test=" not($VarUp ToDate)">
85          <xs l:variable  name="Var ResultAsXM L">   85          <xs l:variable  name="Var ResultAsXM L">
86           <! -- Baggage  Files -->   86           <! -- Baggage  Files -->
87           <! --                -->   87           <! --                -->
88           <x sl:call-te mplate nam e="Baggage Files">   88           <x sl:call-te mplate nam e="Baggage Files">
89            < xsl:with-p aram name= "ParamWIFF ile" selec t="$VarWIF File" />   89            < xsl:with-p aram name= "ParamWIFF ile" selec t="$VarWIF File" />
90           </ xsl:call-t emplate>   90           </ xsl:call-t emplate>
91          </x sl:variabl e>   91          </x sl:variabl e>
92          <xs l:variable  name="Var Result" se lect="msxs l:node-set ($VarResul tAsXML)" / >   92          <xs l:variable  name="Var Result" se lect="msxs l:node-set ($VarResul tAsXML)" / >
93          <xs l:variable  name="Var WriteResul t" select= "wwexsldoc :Document( $VarResult , $VarPath , 'utf-8',  'xml', '1 .0', 'yes' )" />   93          <xs l:variable  name="Var WriteResul t" select= "wwexsldoc :Document( $VarResult , $VarPath , 'utf-8',  'xml', '1 .0', 'yes' )" />
94         </xs l:if>   94         </xs l:if>
95     95  
96         <wwf iles:File  path="{$Va rPath}" ty pe="{$Para meterType} " checksum ="{wwfiles ystem:GetC hecksum($V arPath)}"  projectche cksum="{$G lobalProje ct/wwproje ct:Project /@ChangeID }" groupID ="{$VarWIF File/@grou pID}" docu mentID="{$ VarWIFFile /@document ID}" actio nchecksum= "{$GlobalA ctionCheck sum}">   96         <wwf iles:File  path="{$Va rPath}" ty pe="{$Para meterType} " checksum ="{wwfiles ystem:GetC hecksum($V arPath)}"  projectche cksum="{$G lobalProje ct/wwproje ct:Project /@ChangeID }" groupID ="{$VarWIF File/@grou pID}" docu mentID="{$ VarWIFFile /@document ID}" actio nchecksum= "{$GlobalA ctionCheck sum}">
97          <ww files:Depe nds path=" {$VarWIFFi le/@path}"  checksum= "{$VarWIFF ile/@check sum}" grou pID="{$Var WIFFile/@g roupID}" d ocumentID= "{$VarWIFF ile/@docum entID}" />   97          <ww files:Depe nds path=" {$VarWIFFi le/@path}"  checksum= "{$VarWIFF ile/@check sum}" grou pID="{$Var WIFFile/@g roupID}" d ocumentID= "{$VarWIFF ile/@docum entID}" />
98         </ww files:File >   98         </ww files:File >
99        </xsl :if>   99        </xsl :if>
100     100  
101        <xsl: variable n ame="VarPr ogressWIFF ileEnd" se lect="wwpr ogress:End ()" />   101        <xsl: variable n ame="VarPr ogressWIFF ileEnd" se lect="wwpr ogress:End ()" />
102       </xsl: for-each>   102       </xsl: for-each>
103     103  
104       <xsl:v ariable na me="VarPro gressWIFFi lesEnd" se lect="wwpr ogress:End ()" />   104       <xsl:v ariable na me="VarPro gressWIFFi lesEnd" se lect="wwpr ogress:End ()" />
105      </xsl:f or-each>   105      </xsl:f or-each>
106     106  
107     </wwfile s:Files>   107     </wwfile s:Files>
108    </xsl:tem plate>   108    </xsl:tem plate>
109     109  
110     110  
111    <xsl:temp late name= "BaggageFi les">   111    <xsl:temp late name= "BaggageFi les">
112     <xsl:par am name="P aramWIFFil e" />   112     <xsl:par am name="P aramWIFFil e" />
113     113  
114     <wwbagga ge:Baggage  version=" 1.0">   114     <wwbagga ge:Baggage  version=" 1.0">
115      <!-- WI F document  -->   115      <!-- WI F document  -->
116      <!--                -->   116      <!--                -->
117      <xsl:va riable nam e="VarWIFD ocument" s elect="wwe xsldoc:Loa dXMLWithou tResolver( $ParamWIFF ile/@path) " />   117      <xsl:va riable nam e="VarWIFD ocument" s elect="wwe xsldoc:Loa dXMLWithou tResolver( $ParamWIFF ile/@path) " />
118     118  
119      <xsl:ap ply-templa tes select ="$VarWIFD ocument/ww doc:Docume nt/wwdoc:C ontent/*"  mode="wwmo de:baggage ">   119      <xsl:ap ply-templa tes select ="$VarWIFD ocument/ww doc:Docume nt/wwdoc:C ontent/*"  mode="wwmo de:baggage ">
120       <xsl:w ith-param  name="Para mWIFFile"  select="$P aramWIFFil e" />   120       <xsl:w ith-param  name="Para mWIFFile"  select="$P aramWIFFil e" />
121      </xsl:a pply-templ ates>   121      </xsl:a pply-templ ates>
122     </wwbagg age:Baggag e>   122     </wwbagg age:Baggag e>
123    </xsl:tem plate>   123    </xsl:tem plate>
124     124  
125     125  
126    <xsl:temp late name= "Links">   126    <xsl:temp late match ="wwdoc:Pa ragraph" m ode="wwmod e:baggage" >
        127     <xsl:par am name="P aramParagr aph" selec t="." />
127     <xsl:par am name="P aramWIFFil e" />   128     <xsl:par am name="P aramWIFFil e" />
128     <xsl:par am name="P aramLinks"  />        
129     129  
130     <xsl:for -each sele ct="$Param Links">   130     <!-- Get  context r ule -->
131      <xsl:va riable nam e="VarLink " select=" ." />   131     <!--                    -->
        132     <xsl:var iable name ="VarConte xtRule" se lect="wwpr ojext:GetC ontextRule ('Paragrap h', $Param Paragraph/ @stylename , $ParamWI FFile/@doc umentID, $ ParamParag raph/@id)"  />
132     133  
133        <!--  Fil e
? -->
  134     
<!--  Generat e  output ? -->
134        <!--        
-->
  135     
<!--                      -->
135      <xsl:if  test="wwu ri:IsFile( $VarLink/@ url)">   136     <xsl:var iable name ="VarGener ateOutputO ption" sel ect="$VarC ontextRule /wwproject :Options/w wproject:O ption[@Nam e = 'gener ate-output ']/@Value"  />
136       <xsl:v ariable na me="VarLin kPath" sel ect="wwuri :AsFilePat h($VarLink /@url)" />   137     
<xsl:varia ble name=" Var G en erateOutpu t
" select=" (st r ing-l e ng t h($Var Ge nera t
e Ou t putOption)  = 0) or  ($Var Ge n er at eOutputOpt ion != 'fa lse' )" />
137       <xsl:f or-each se lect="$Glo balProject Documents[ 1]">   138     
<xsl:if te st="
$Var G en erateOutpu t
">
138        <!--  In project ? -->   139      
<!--  P r
oc
e ss   n e s te d l i
n ks  -->
139        <!--               -->   140      
<!--                        
-->
140          <xsl:varia ble name=" Var Docum en
t ID " select=" wwp r oj e x t : Ge
t Docum e n t ID ($Var Li n kP at h )" />
  141      <xsl:ap ply-templa tes mode=" wwmode:bag gage">
141          <xsl:if te st=" string-len gth( $Var Docum en
t ID) = 0 ">
  142       
<xsl: with-p ar
a m  name="
P a r a m WIFFil e
" select=" $ParamWIFF ile " />
142           <!--  Determine  o r iginal d oc um e nt  
e x te ns i o n
 -->
  143      </xsl:a pply-templ ates>
143           <!--                                            -->   144     </xsl:if >
144         <xsl :variable  name="VarD ocumentExt ension">   145    </xsl:tem plate>
145          <xs l:for-each  select="$ GlobalProj ect[1]">        
146           <x sl:for-eac h select=" key('wwpro ject-docum ents-by-do cumentid',  $ParamWIF File/@docu mentID)[1] ">        
147              <xsl: v ar i a ble  name=" Var P
r ojectDocu m
e nt " select=" . " />
       
148     146  
149            < xsl:value- of select= "wwstring: ToLower(ww filesystem :GetExtens ion($VarPr ojectDocum ent/@Path) )" />        
150           </ xsl:for-ea ch>        
151          </x sl:for-eac h>        
152         </xs l:variable >        
153     147  
154         <!--  Determine  link exte nsion -->   148    <xsl:temp late match ="wwdoc:Te xtRun" mod e="wwmode: baggage">
155         <!--                             -->   149     <xsl:par am name="P aramTextRu n" select= "." />
156         <xsl :variable  name="VarL inkExtensi on" select ="wwstring :ToLower(w wfilesyste m:GetExten sion($VarL inkPath))"  />   150     <xsl:par am name="P aramWIFFil e" />
157     151  
158         <!--  Record fi le only if  link exte nsion does  not match  the origi nal docume nt extensi on -->   152     <!-- Get  rule -->
159         <!--                                                                                            -->   153     <!--           -->
160           <xsl:if te st="$Var LinkExt en sion != $V a r Docum e n t Ex t ension ">   154     <xsl:var iable name ="VarRule"  select="w wprojext:G etRule('Ch aracter',  $ParamText Run/@style name)" />
161            <!--  Unkn o w n
  fi l e  -->
  155  
162            <!--               
-->
  156     <!-- Gen erate outp ut? -->
163          <ww baggage:Fi le path="{ $VarLinkPa th}" patht olower="{w wstring:To Lower($Var LinkPath)} " />   157     <!--                    -->
164         </xs l:if>   158     <xsl:var iable name ="VarGener ateOutputO ption" sel ect="$VarR ule/wwproj ect:Option s/wwprojec t:Option[@ Name = 'ge nerate-out put']/@Val ue" />
165        </xsl :if>   159     <xsl:var iable name ="VarGener ateOutput"  select="( string-len gth($VarGe nerateOutp utOption)  = 0) or ($ VarGenerat eOutputOpt ion != 'fa lse')" />
166       </xsl: for-each>   160     
<xsl:if te st="$Var G en e r at e Ou t pu t
">
167      </xsl: if >   161      
<!--  Pr o cess  n ested  
l inks  -->
168     </xsl:
f or-each >
  162      
<!--                         -->
        163      <xsl:ap ply-templa tes mode=" wwmode:bag gage">
        164       <xsl:w ith-param  name="Para mWIFFile"  select="$P aramWIFFil e" />
        165      </xsl: apply-temp lates >
        166     </xsl: i f
>
169    </xsl:tem plate>   167    </xsl:tem plate>
170     168  
171     169  
172    <xsl:temp late match ="wwdoc: Paragr a ph " mode="ww mode:bagga ge">   170    <xsl:temp late match ="wwdoc: T a ble " mode="ww mode:bagga ge">
173     <xsl:par am name="P aram Paragr a ph " select=" ." />   171     <xsl:par am name="P aram T a ble " select=" ." />
174     <xsl:par am name="P aramWIFFil e" />   172     <xsl:par am name="P aramWIFFil e" />
175     173  
176     <!-- Get  context r ule -->   174     <!-- Get  context r ule -->
177     <!--                    -->   175     <!--                    -->
178     <xsl:var iable name ="VarConte xtRule" se lect="wwpr ojext:GetC ontextRule (' Paragr a ph ', $Param Paragr a ph /@stylenam e, $ParamW IFFile/@do cumentID,  $Param Paragr a ph /@id)" />   176     <xsl:var iable name ="VarConte xtRule" se lect="wwpr ojext:GetC ontextRule (' T a ble ', $Param T a ble /@stylenam e, $ParamW IFFile/@do cumentID,  $Param T a ble /@id)" />
179     177  
180     <!-- Gen erate outp ut? -->   178     <!-- Gen erate outp ut? -->
181     <!--                    -->   179     <!--                    -->
182     <xsl:var iable name ="VarGener ateOutputO ption" sel ect="$VarC ontextRule /wwproject :Options/w wproject:O ption[@Nam e = 'gener ate-output ']/@Value"  />   180     <xsl:var iable name ="VarGener ateOutputO ption" sel ect="$VarC ontextRule /wwproject :Options/w wproject:O ption[@Nam e = 'gener ate-output ']/@Value"  />
183     <xsl:var iable name ="VarGener ateOutput"  select="( string-len gth($VarGe nerateOutp utOption)  = 0) or ($ VarGenerat eOutputOpt ion != 'fa lse')" />   181     <xsl:var iable name ="VarGener ateOutput"  select="( string-len gth($VarGe nerateOutp utOption)  = 0) or ($ VarGenerat eOutputOpt ion != 'fa lse')" />
184     <xsl:if  test="$Var GenerateOu tput">   182     <xsl:if  test="$Var GenerateOu tput">
185      <!--  L inks -->   183      <!--  Process ne sted l inks -->
186      <!--        
-->
  184      <!--                          -->
187      <xsl: c a
l l -template
  na m
e=" Links ">
  185      <xsl:
a pp l y -template s  
m od e=" wwmode:bag gage ">
188       <xsl:w ith-param  name="Para mWIFFile"  select="$P aramWIFFil e" />   186       <xsl:w ith-param  name="Para mWIFFile"  select="$P aramWIFFil e" />
189       <xsl:w ith-param  name="Para mLinks" se lect="$Par amParagrap h/wwdoc:Li nk" />   187      </xsl:a pply-templ ates>
190        </xsl: call-templ ate >   188     
</xsl: if >
        189    </xsl:tem plate>
        190  
191     191  
192        <xsl: apply- template s   select="$P ara m Par a grap h / wwdoc: * " mode="ww mode:bagga ge">   192    
<xsl:
template
 
m
a tc h =" wwdoc: Frame " mode="ww mode:bagga ge">
        193     <xsl:par am name="P aramFrame"  select=". " />
        194     <xsl:par am name="P aramWIFFil e" />
        195  
        196     <!-- Get  context r ule -->
        197     <!--                    -->
        198     <xsl:var iable name ="VarConte xtRule" se lect="wwpr ojext:GetC ontextRule ('Graphic' , $ParamFr ame/@style name, $Par amWIFFile/ @documentI D, $ParamF rame/@id)"  />
        199  
        200     <!-- Gen erate outp ut? -->
        201     <!--                    -->
        202     <xsl:var iable name ="VarGener ateOutputO ption" sel ect="$VarC ontextRule /wwproject :Options/w wproject:O ption[@Nam e = 'gener ate-output ']/@Value"  />
        203     <xsl:var iable name ="VarGener ateOutput"  select="( string-len gth($VarGe nerateOutp utOption)  = 0) or ($ VarGenerat eOutputOpt ion != 'fa lse')" />
        204     <xsl:if  test="$Var GenerateOu tput">
        205      <!-- Pr ocess nest ed links - ->
        206      <!--                        - ->
        207      <xsl:ap ply-templa tes mode=" wwmode:bag gage">
193       <xsl:w ith-param  name="Para mWIFFile"  select="$P aramWIFFil e" />   208       <xsl:w ith-param  name="Para mWIFFile"  select="$P aramWIFFil e" />
194      </xsl:a pply-templ ates>   209      </xsl:a pply-templ ates>
195     </xsl:if >   210     </xsl:if >
196    </xsl:tem plate>   211    </xsl:tem plate>
197     212  
198     213  
199    <xsl:temp late match ="wwdoc: TextRu n
" mode="ww mode:bagga ge">
  214    <xsl:temp late match ="wwdoc: Li n k " mode="ww mode:bagga ge">
200     <xsl:par am name="P aram TextRu n
" select=" ." />
  215     <xsl:par am name="P aram Li n k " select=" ." />
201     <xsl:par am name="P aramWIFFil e" />   216     <xsl:par am name="P aramWIFFil e" />
202     217  
203     <!--  L i nks  -->   218     <!--  F i le?  -->
204     <!--        -->   219     <!--        -->
205     <xsl:cal l-template  name="Lin ks">   220     
<xsl:
i f   t e st =" wwu r i: I s File ( $Param L i nk/@ur l ) "
>
206        <xsl: w i th-param   nam e
=" Pa r amW I F File " select=" $Param WIFF i
l e "  / >
  221      <xsl: v ar i a ble  name=" V ar
Link Path " select=" wwuri:AsFi lePath( $Param
Link /@url) " />
207      <xsl: with-p ar
a m  name=" P ar am Link s " select="
$Param TextRun/ww doc: Link
" />
  222      <xsl:fo r-each sel ect="$Glob alProjectD ocuments[1 ]">
208     </xsl:ca ll-templat e>   223       <!-- I n project?  -->
        224       <!--               -->
        225       <xsl:v ariable na me="VarDoc umentID" s elect="wwp rojext:Get DocumentID ($VarLinkP ath)" />
        226       <xsl:i f test="st ring-lengt h($VarDocu mentID) =  0">
        227        <!--  Determine  original d ocument ex tension -- >
        228        <!--                                           -- >
        229        <xsl: variable n ame="VarDo cumentExte nsion">
        230         <xsl :for-each  select="$G lobalProje ct[1]">
        231          <xs l:for-each  select="k ey('wwproj ect-docume nts-by-doc umentid',  $ParamWIFF ile/@docum entID)[1]" >
        232           <x sl:variabl e name="Va rProjectDo cument" se lect="." / >
209     233  
210     <xsl:app ly-templat es select= "$ParamTex tRun/wwdoc :*" mode=" wwmode:bag gage">   234           <x sl:value-o f select=" wwstring:T oLower(wwf ilesystem: GetExtensi on($VarPro jectDocume nt/@Path)) " />
211      <xsl:wi th-param n ame="Param WIFFile" s elect="$Pa ramWIFFile " />   235          </x sl:for-eac h>
212     </xsl: apply-temp lates >   236         </xs l:for-each >
        237        </xsl :variable>
        238  
        239        <!--  Determine  link exten sion -->
        240        <!--                             -->
        241        <xsl: variable n ame="VarLi nkExtensio n" select= "wwstring: ToLower(ww filesystem :GetExtens ion($VarLi nkPath))"  />
        242  
        243        <!--  Record fil e only if  link exten sion does  not match  the origin al documen t extensio n -->
        244        <!--                                                                                            -->
        245        <xsl: if test="$ VarLinkExt ension !=  $VarDocume ntExtensio n">
        246         <!--  Unknown f ile -->
        247         <!--                -->
        248         <wwb aggage:Fil e path="{$ VarLinkPat h}" pathto lower="{ww string:ToL ower($VarL inkPath)}"  />
        249        </xsl :if>
        250       </xsl: if>
        251      </xsl:f or-each>
        252     </xsl: if >
213    </xsl:tem plate>   253    </xsl:tem plate>
214     254  
215     255  
216    <xsl:temp late match ="wwdoc:*"  mode="wwm ode:baggag e">   256    <xsl:temp late match ="wwdoc:*"  mode="wwm ode:baggag e">
217     <xsl:par am name="P aramNode"  select="."  />   257     <xsl:par am name="P aramNode"  select="."  />
218     <xsl:par am name="P aramWIFFil e" />   258     <xsl:par am name="P aramWIFFil e" />
219     259  
220     <xsl:app ly-templat es  select="$P aramNode/w wdoc:*"  mode="wwmo de:baggage ">   260     <xsl:app ly-templat es 
mode="wwmo de:baggage ">
221      <xsl:wi th-param n ame="Param WIFFile" s elect="$Pa ramWIFFile " />   261      <xsl:wi th-param n ame="Param WIFFile" s elect="$Pa ramWIFFile " />
222     </xsl:ap ply-templa tes>   262     </xsl:ap ply-templa tes>
223    </xsl:tem plate>   263    </xsl:tem plate>
224   </xsl:styl esheet>   264   </xsl:styl esheet>