[PATCH] Made some corrections to the XSLT transforms to remedy missing fields, replaced PNG files with different images, added background colors and borders to code and header elements, created table for Security Identifiers and References (and added prefixes to references to make the source more obvious)

Maura Dailey maura at eclipse.ncsc.mil
Thu Oct 10 21:46:13 UTC 2013


Signed-off-by: Maura Dailey <maura at eclipse.ncsc.mil>
---
 RHEL6/output/images/collapsed.png |  Bin 1075 -> 742 bytes
 RHEL6/output/images/expanded.png  |  Bin 1090 -> 1206 bytes
 RHEL6/transforms/xccdf2html.xslt  |  249 +++++++++++++++++++++++++------------
 3 files changed, 171 insertions(+), 78 deletions(-)

diff --git a/RHEL6/output/images/collapsed.png b/RHEL6/output/images/collapsed.png
index ffe32f6d3f6d4d862a5001e7b60bb92db7ada80d..0e7089159d3aa747e8e6aeac5d61e97fd1327d74 100644
GIT binary patch
literal 742
zcmV<C0vY{@P)<h;3K|Lk000e1NJLTq001Ze001Zm1^@s6jQ+T700001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L0Rx2q0Rx2rrBpor00007bV*G`2i*z^
z5EuhMO*aPs00L%7L_t(o!`<0Sh)!V`2k_r#XpGCq-C!geMNLSd7`ZIiAd<^Mv#>H)
zlTs{XYauB$MOKO_QLGfrLJ8$kC`q}DalbR;*gRjIM80o)bG~DqI;-<u{^xn#|Ns5J
z?}6=jg%;GKM$X~|l6Y=o2WDb$UI4B}cM4>Jo7fdV>#7N^1`jY5vjW@?G+;SqV<O(g
zGU%xWzyy!67-Iv>waDCbEW&(D!dpDa8lcEdH<n;H&f_o&m>e0Nhh|KP_D{3U<~X!P
zMqgqX#$zRp;!C{yguC$p3$g||A9n)CMGTEB4n`B&Q$+fPPMpQ4tN;$g?pTKjw*IEg
zCfvfuAWeez*qN1%HsDNTC<&7M8pE+Iviz(XI@*l;DTX)xq1|X~2vT+Sg^vEI9FH(E
zfYxIK&c)>E_#9cgfQKp2)3VUfdRz`r&#<|KJ`=DGCj(FtpswQp=2p7YP3Ve=IxwRQ
z$y$X|coY4<2DuJmPNnzi;sl3+Af-ehfcCkL*2Q2&!mKT`e<nIQ2lry&3$fkxHp<e`
zQbn~ZT+Y%k5Fc<A-+KY at 7Ea(fYB4M_xH6VgA;7;6e^7Fa#qs#!F08<Sf2>SeN1vz4
ze*=5MsFW28V}U0jB||Di#F5yDOR2IaXdfWoQOJ9V8%rH%P?&(CmhBHK*4wDK*{GV#
z^b4WR^;VZ_vygkcwKuk!9vu72;vIu6IQ@%UbYNd(thQfT{{QaKl>1|6t`F|HzWS&|
zYfPTt2-atH=qYutE&9CIxRPRJpB@`aB}QB7^0GS%9V;i+$nh00|G_1CYp}LO4u3=Z
Y1jF(x4v6=%=Kufz07*qoM6N<$f_lPC;{X5v

literal 1075
zcmV-31kC%1P)<h;3K|Lk000e1NJLTq002Ay002A)1^@s6I{evk00001b5ch_0Itp)
z=>Px#32;bRa{vGf6951U69E94oEQKA1K3GKK~!jg?VC++8b=s_pJlz6PaA&)6O4^x
z1O|424M{*XHY{cr5}ZSOZO=Wn$KKjoulWP*xtIQm9x6pjq(qjL<`6}Zl~dYFdrqeZ
ziz=}kJI2iN5uWqx`@WB6(CoakC_)IqCxmC%1-Q*rc+!~)PdZcKNyh{5-4DO;+wXty
z_U*sJu17kG5JG(Z<pThg7D9Ad1)Ti?b7B9GOOwNU!aX!?hWgGn-L^?`eR)Ww$>B`l
zcQNt_x{k at 6@(mP4aj`Tx%v?0!@aUMsqhq4i=DBAVX*F~Lfmt_dlfs2Fd>X&ci?x at d
z>y)@2TaZ|q94;;V|AUIc&0>=K9g~8-!MLpU3zzhV5JK?y$x9wTdC6LQk%P8LV>idF
zx9^ay(Dw|VMJVXQwsh_~C03Tg1Bp3k1}fY`RXtS7TO4#uvYGfmV_y|T2qC`z at mCIy
zj- at 2n+Kkd|m#9 at UXqqY|$7N825aR1^f9B1fe at jgii3Djk4LbV;B9WlfT<0NWNuP(N
zsnn_&y6qBMn^D*D_HbSJU9y=t2OX12c?(r_=ioNfJ>=Q**F1avnw6z6cbyWpr4tJJ
zq~;vz44-D!J40hP$3fd<Exsrv$4CkHP!uTW8{F at h+$<&sdT1HR*CHX{>ESD$9=_sw
zY=N#*!rIH>_j#`zdn9N0ECPX9S`D3hc9H0{`M%?fjc^Y|QMgmSLDw-c@`+17KaxxO
zJcJNDeDs2ck6w^mU#8nOsqbu~X&<L@@}~98PrUi-AIYW4V=nB+*)Py(6<AsbojX<$
zLWnQEdcY*yA*!l}ol2T++a#S at J#&l)m<U-o*~k5UFRJ?CZEWm*!)K9B#jq`%S~Y{u
zr=2@?Y=wh?S?aYcPSao`@$s$Xu at lZ_;@FnXP9=@Ek9N{n2!}&Htlb>8WnB3kdt`+b
z1 at vqJ+cK!$P7SPEGIGN6a{-!rC$kw_jSM{gNC+#6LQ!AGwsb1DQc{}%Lls_J2+^$P
zX*KdhSNcB?Tn5*LJst(Kki=;kluMhgwRU>ACcLr~rdiLk-_VEJq?anJsvgRvO`N8I
zSxDmX4F3X3ig0vgo>n7Ivz}-1g42uJ3`|&6JydR`uq~aUzCN;-=T{bvtwyjdgXUh2
z`MJO#YLZG{!kVU1y`93g4D at VbZ0?5PlEQ28MQqE!+RYIT$!(a+;zD7scZQux8r#xG
z?&`B2J}A7ASjK4@)N5ISWBd`zY2Fj|`7~<P47R0{PQ`{*lT>El<kH%<bap at 6Cg8t%
tcYl;orvG`EaHhhO&Qy5PnF>!j{{byM;L3EqKf(Y2002ovPDHLkV1hoC1c?9u

diff --git a/RHEL6/output/images/expanded.png b/RHEL6/output/images/expanded.png
index e360e8aa51b703fc79a0ba757c52d7bef5d85db7..468b56d1f127c722c10aa6b4c44679cd786c37f4 100644
GIT binary patch
literal 1206
zcmV;n1WEgeP)<h;3K|Lk000e1NJLTq001oj001or1^@s6IvV1d00001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L0Rx2q0Rx2rrBpor00007bV*G`2i*z^
z5Hm6U>YMHW00cHkL_t(o!`0bOs8nSb$MKK%N;d;<w1@;P7b=-Zfv6A!g at oBc7*H&x
zMMPjlD~EzMA-HIfF&hnBh~dJ4FmUh^Ud)A>X0#DvxM||T{EL5(G`e)triIV3*J1vg
z>zx_xfnm;h&+|Ud_dMr4?|Fac4B{Ppk3Uhv-yS}D3?JYCF2POI<M$m_gww+UyCS$U
z#y?<V?EDk|*YFwUKVabb!EvpDZzDW~D-8$gIE2?Q*k{<m$a^SZ$+)fruj$y798AG4
z#@Wv66Y#vqcd-FDW7-tFU at 6YVft&ah6G_J(u%^erYa&mUb0Rphd+uy--nE(7nsq1?
z%k at IBT*rkZ$OUZ1>@LI3j=1;aN*J==*5JIymL+3*Ea|j6={Sxbv93$N>muHGl4Ez0
zdn_5t%d$?>lK?er$0v9$Yb+GYYoS^x!J}A?omh#Fas57EpNQ(dg&|CfT(CCr%Q&_N
z9~ej+#_=uA2jp0qB?8vs%!lx9O!hA{oP0Z*9{vZS|4_uMMf|&#<Ub!=<ISMqC+vys
zMU5E?#qwg5BTyYna1a|XH>+3^n-<46g#VK0e;(zC+h|$-J;8NPuts}1F8|yZ+l!h}
zR4b+Zcm<C{(-C}uQT&y-4q+8O!b{OMfrEu&d1Z^(V*z~zZ^xXiRi%Z){;0&FR at XTa
zZjPx)0PVo1m=kStVt+>hd={Hq0Vh?i2gjjim#vw-h_CT9ZWM~;;dTSHS}BcSb<#8%
z<M!34a%LliVtI9kST`^nC-(-9HTn#+=z9z!vEm!<baw?v374a36+TaZFQe26IBYob
zjx+;q2Mv{M8Cb29uIB(R$8<H?5PKAB<G2o0&hlJ}{4J-TR(2GJ at n*9pQ48?Hk^I9L
z!$%6m@|O)mq at B&g?Z|sno2jUsy&h-$I8GLd<%PXkcvLH;6L=QCqlkU2d<Qzj+7}O$
zY at Y3<W%GQk9dI6KSdUwnQLU6t_o&LJF(dM<@8q8c`WI}8?Pq#a<t*-&$k*1U<qSFt
zKjTT9=;qjtvAi%=a?fWo)>JDESFtU&yL~fe at wP=C-GaV_z1btXS}E1KROMRoXx|%o
zx&{p=BQPxPQkAnfdn3MXL*I<m-_ at wnsVP?ZR5J8-M*OZrr|Je4OtH!fnyHdrK(|#l
zlc;h_RniOSj_M|-wNxd&f}X%Pp(-X_?Zp2~#F^*^bZ&KXKdPjc(C`(`C2Av2l{3F{
z(O<uzC#7!ks*+wqPfFe7RVDp^&eYBA9O@>QD(MF_?24z^V650$t>gy7Z`V{4b^|((
zy2-6d`UTxq-Aq=M^b at +Bx|x(J>9@^_mojx6kN3;RWB+m-f9Ndzb~7G}q3mV(Ci!0n
z_uZD_H~+oWugCt<ZYCM%GIXkL>i45c9+WM2=aWV~{+Ih7*dX3_=S%B*dhqe|UqjEF
UG6-tKMF0Q*07*qoM6N<$g7E1?s{jB1

literal 1090
zcmV-I1ikx-P)<h;3K|Lk000e1NJLTq002Ay002A)1^@s6I{evk00001b5ch_0Itp)
z=>Px#32;bRa{vGf6951U69E94oEQKA1LsLZK~!jg?VHPT8b=g{|DMqd!~JfA5fZW}
z5HMV1Y(rTf7z9W*_5<WSvh>EwyhvUsm1QamuUxh_$--5sa*;(M1v|2)d-`<avi<F(
z>dX0<;dJ+zfvwl;HNGKs{2KiD;%EH!`)krk83S^eINrSb)3<Ftm%wfziC=zw<=eJa
z-NjEYf4H at c;Wx;_bA2ZgWxWQMEC9TD`v;dS0IV)feB1a6j~^eyaV)M0w at Ee~!|9;r
z+s;=w61FiK)=7d=$>qEQ)AZHx7Y5Ya)|6P*4wmN~uC`plwQ3Ou<(yPdDw&)fBM}dC
zwdE29faR<mI3U&VB&#d9g(ss1Y}<Dg(@wipMrEJ>?&B7YMnYU!P&cb3|J4Nqgn=(F
zc@^#?@u+`KsE?3vqh7*ZDI+w2N}evdV2la%5fTP~h4*D7udridJ{7;?goV9v6P9HP
zPehG()<h%{67DA~9FI8|KCB8)L<wUIt7R`xUtwWj`?vM|ZUuLX=|Fu03A>Flio2;m
z6H at T}Qfw*OB#<y;+q=qpr3^amLE!#@gaKf7*5o>!Q1k5K1cEEkM+A;InTTNUKyUJj
zMIB7XO{p=YE|Kn?*TQoVlHAWr33uIn6!J-_0C+J?15W}jMVm+oGsZBVwxomLVbDK9
zJ{y-FM>^}wCM_+=>zTw-w25 at 2nRE>O-XTRSpXKPVfJVJUG8W0DQC$sLUC4iTuOJaV
z=~PI*UpJ9TMM<lsB*KQlFq^1JUKg`A>FJCt+ni5b7>2|a=mspy#3g6>l@~JMd^V1g
zPK9bX0KjNiM=BL19g}oDp-x_u$?6JH;ePKBnRJX~tVX?rqr(EpSeuXvo2EgQyr?!B
zpF+MxnonE8mBdfUXX6<3kBB1r7;@o4K8dcoFEz%KWl!05RmrF_$HtJoqx9IRM0oI^
ziew at ZsPA;#L at eqMNAw>`giX`H>`c5e!Pq|~9F-_L*DbuZaP6t%9w>j5qfEHCn}XXY
z3-ysHzw)B=<StUmy<1G<ez&47n14|!JbYM1JjR!RR?D9B`ptt<Vaqb%ag<dfkr2E9
zNiGP=i%~qc^?d3g?AWS90iZ#6uavp99>o~L(?wTx7}scdR&v|U=~4e43U~C>wgFAT
zr-K at zpLuvK`cjH4T7+$T2a{3bfB&!S=g at A6t<|z<d;E7(HALivGAgtQACz;bRg2eu
zC*omDPLFj>e~s1$yqn2udES9#>3_3NtMF)8M<i^+G!0zNY0Iy?X#I#C$HMsWG2Xxb
z3t6IKpD5bzsfFj_!-wttu7rJSziQF{R?3$7F8sCgUHEI~Z~u~SdIssz=Kufz07*qo
IM6N<$g0Ia4R{#J2

diff --git a/RHEL6/transforms/xccdf2html.xslt b/RHEL6/transforms/xccdf2html.xslt
index 82d1d16..bdf04f7 100644
--- a/RHEL6/transforms/xccdf2html.xslt
+++ b/RHEL6/transforms/xccdf2html.xslt
@@ -98,52 +98,60 @@
   </script>
 
   <style type="text/css">
-      /*	   { background-color: #FFFFFF; } */
-      body { margin-left: 8%; margin-right: 8%; foreground: black; }
-      h1   { text-align: center; font-size: 200%;  margin-top: 2em; margin-bottom: 2em;
-             font-family: verdana, arial, helvetica, sans-serif; 
-             border-bottom: solid 2px gray; margin-bottom: 1.0em; 
-             border-top: solid 2px gray; margin-bottom: 1.0em; }
-      h2   { margin-left: -2%; font-size: 125%; 
-             border-bottom: solid 1px gray; margin-bottom: 1.0em; 
-             margin-top: 2em; margin-bottom: 0.75em;
-             font-family: verdana, arial, helvetica, sans-serif; }
-      h3   { margin-left: 6%; font-size: 110%; margin-bottom: 0.25em; 
-             font-family: verdana, arial, helvetica, sans-serif; }
-      h4   { margin-left: 10%; font-size: 100%; margin-bottom: 0.75em; 
-             font-family: verdana, arial, helvetica, sans-serif; }
+      /*    { background-color: #FFFFFF; } */
+      body  { margin-left: 8%; margin-right: 8%; foreground: black; }
+      h1    { text-align: center; font-size: 200%;
+              margin-top: 2em; margin-bottom: 1.0em;
+              font-family: verdana, arial, helvetica, sans-serif; 
+              background-color: black; color: white; }
+      h2    { margin-left: 0%; font-size: 125%; 
+              /*border-bottom: solid 1px gray; margin-bottom: 1.0em; */
+              margin-top: 2em; margin-bottom: 0.75em;
+              padding: 2px;
+              font-family: verdana, arial, helvetica, sans-serif; }
+      h2    { color: black; background-color: #ccc; }
+      h2.toplevel { color: white; background-color: black; font-size: 175%; text-align: center; }
+      h3    { margin-left: 6%; font-size: 110%; margin-bottom: 0.25em; 
+              font-family: verdana, arial, helvetica, sans-serif; }
+      h4    { margin-left: 10%; font-size: 100%; margin-bottom: 0.75em; 
+              font-family: verdana, arial, helvetica, sans-serif; }
       h5,h6 { margin-left: 10%; font-size: 90%; margin-bottom: 0.5em;  
               font-family: verdana, arial, helvetica, sans-serif; }
-      p    { margin-bottom: 0.2em; margin-top: 0.2em; }
-      pre  { margin-bottom: 0.5em; margin-top: 0.25em; margin-left: 3%;
-             font-family: monospace; font-size: 90%; }
-      ul   { margin-bottom: 0.5em; margin-top: 0.25em; }
-      td   { vertical-align: top; }
-
-      *.simpleText   { margin-left: 10%; }
-      *.propertyText { margin-left: 10%; margin-top: 0.2em; margin-bottom: 0.2em }
-      *.toc	     { background: #FFFFFF; }
-      *.toc2	     { background: #FFFFFF; }
-      div	     { margin-top: 1em; margin-bottom: 1em; }
-      div.rule	     { margin-left: 10%; border: 1px solid; padding: 10px 10px 10px 10px; margin-top: 1em; margin-bottom: 1em; }
-      div.hiddencheck	     { margin-left: 10%; border: 1px solid; padding: 10px 10px 10px 10px; margin-top: 1em; margin-bottom: 1em; display: none; }
-      div.check	     { margin-left: 10%; border: 1px solid; padding: 10px 10px 10px 10px; margin-top: 1em; margin-bottom: 1em; display: block; }
-      div.legal      { margin-left: 10%; }
+      p     { margin-bottom: 0.2em; margin-top: 0.2em; }
+      pre   { margin-bottom: 0.5em; margin-top: 0.25em; margin-left: 3%;
+              font-family: monospace; font-size: 90%; }
+      ul    { margin-bottom: 0.5em; margin-top: 0.25em; }
+      td    { vertical-align: top; }
+
+      *.simpleText     { margin-left: 10%; }
+      *.propertyText   { margin-left: 10%; margin-top: 0.2em; margin-bottom: 0.2em }
+      *.toc	           { background: #FFFFFF; }
+      *.toc2           { background: #FFFFFF; }
+      div              { margin-top: 1em; margin-bottom: 1em; }
+      div.rule	       { margin-left: 10%; border: 1px solid; background: #ccc; padding: 10px 10px 10px 10px; margin-top: 1em; margin-bottom: 1em; }
+      div.hiddencheck  { margin-left: 10%; border: 1px solid; background: #ccc; padding: 10px 10px 10px 10px; margin-top: 1em; margin-bottom: 1em; display: none; }
+      div.check	       { margin-left: 10%; border: 1px solid; background: #ccc; padding: 10px 10px 10px 10px; margin-top: 1em; margin-bottom: 1em; display: block; }
+      div.legal        { margin-left: 10%; margin-top: 0.2em; margin-bottom: 0.2em}
       
-      div.toc	     { margin-left: 6%; margin-bottom: 4em;
-                       padding-bottom: 0.75em; padding-top: 1em; 
-                       padding-left: 2em; padding-right: 2em; 
-                     }
-      h2.toc	     { border-bottom: none; margin-left: 0%; margin-top: 0em; }
-      p.toc          { margin-left: 2em; margin-bottom: 0.2em; margin-top: 0.5em; }
-      p.toc2         { margin-left: 5em; margin-bottom: 0.1em; margin-top: 0.1em; }
-      ul.smallList   { margin-bottom: 0.1em; margin-top: 0.1em; font-size: 85%; }
+      div.toc          { margin-left: 6%; margin-bottom: 4em;
+                         padding-bottom: 0.75em; padding-top: 1em; 
+                         padding-left: 2em; padding-right: 2em; 
+                       }
+      h2.toc           { border-bottom: none; margin-left: 0%; margin-top: 0em; }
+      p.toc            { margin-left: 2em; margin-bottom: 0.2em; margin-top: 0.5em; }
+      p.toc2           { margin-left: 5em; margin-bottom: 0.1em; margin-top: 0.1em; }
+      ul.smallList     { margin-bottom: 0.1em; margin-top: 0.1em; font-size: 85%; }
       /* table.propertyTable { margin-left: 14%; width: 90%; margin-top: 0.5em; margin-bottom: 0.25em; }
       th.propertyTableHead { font-size: 80%; background-color: #CCCCCC; } */
-      table          { border-collapse:collapse; /*border: 1px solid black;*/ }
-      table,th,td   { text-align: left; padding: 8px 8px; }
+      table            { border-collapse:collapse; /*border: 1px solid black;*/ }
+      table,th,td      { text-align: left; padding: 8px 8px; }
       table tr:nth-child(2n+2) { background-color: #F4F4F4; }
-      th            { border-bottom: 3px solid gray; }
+      th               { border-bottom: 3px solid gray; }
+      table#references { border-collapse: collapse; border-top: 1px #ccc solid; width:90%;
+                         margin-left:10%; margin-top: 0.75em; margin-bottom: 0.75em;
+                         font-family: verdana, arial, helvetica, sans-serif; }
+      td.ident         { width: 30%; font-size: 90%; }
+      td.ref           { width: 70%; font-size: 90%; }
       .expandstyle a         { color: black; text-decoration: none; }
       .expandstyle a:link    { color: black; text-decoration: none; }
       .expandstyle a:visited { color: black; text-decoration: none; }
@@ -175,7 +183,9 @@
       </xsl:if>
       <xsl:if test="./cdf:platform">
 	<p>Applies to:<ul>
-	  <xsl:apply-templates select="./cdf:platform" mode="list"/>
+        <xsl:for-each select="./cdf:platform">
+          <li><xsl:value-of select="@idref"/></li>
+        </xsl:for-each>
 	</ul></p>
       </xsl:if>
     </div>
@@ -186,16 +196,14 @@
   <xsl:if test="./cdf:front-matter">
      <xsl:for-each select="./cdf:front-matter">
        <div class="propertyText">
-          <xsl:apply-templates select="./text() | ./*" mode="text"/>
+          <xsl:copy-of select="./text() | ./* | node()" />
        </div>
      </xsl:for-each>
   </xsl:if>
   <xsl:if test="./cdf:description">
      <h3>Description</h3>
      <xsl:for-each select="./cdf:description">
-       <div class="propertyText">
-          <xsl:apply-templates select="./text() | ./*" mode="text"/>
-       </div>
+       <div class="propertyText"><p><xsl:copy-of select="./text() | ./* | node()" /></p></div>
      </xsl:for-each>
   </xsl:if>
   <xsl:if test="./cdf:notice">
@@ -205,8 +213,9 @@
       </xsl:for-each>
   </xsl:if>
 
+  <br />
+
   <!-- Build the Table of Contents -->
-  <br/>
   <h3 class="toc">Contents</h3>
   <div class="toc">
      <!-- rules and groups TOC -->
@@ -368,7 +377,9 @@
     </xsl:if>
     <xsl:if test="./cdf:platform">
       <p>Applies only to:<ul>
-        <xsl:apply-templates select="./cdf:platform" mode="list"/>
+        <xsl:for-each select="./cdf:platform">
+          <li><xsl:value-of select="@idref"/></li>
+        </xsl:for-each>
       </ul></p>
     </xsl:if>
   </div>
@@ -402,11 +413,19 @@
    </div>
   </xsl:if>
 
+  <!-- Top level reference -->
   <xsl:if test="./cdf:reference">
-    <h4>References: 
+    <h4 class="references">References: 
 	<xsl:for-each select="./cdf:reference">
 	    <xsl:if test="@href">
-	      <a href="{@href}"><xsl:value-of select="text()"/></a>
+	      <xsl:choose>
+	        <xsl:when test='. != ""'>
+	          <a href="{@href}"><xsl:value-of select="text()"/></a>
+	        </xsl:when>
+	        <xsl:otherwise>
+	          <a href="{@href}"><xsl:value-of select="./@href"/></a>
+	        </xsl:otherwise>
+	      </xsl:choose>
         </xsl:if>
 	</xsl:for-each>
     </h4>
@@ -472,11 +491,25 @@
   <!--<xsl:message>In body template for Group, id=<xsl:value-of select="@id"/>.</xsl:message>-->
   <xsl:comment>Group id = <xsl:value-of select="./@id"/></xsl:comment>
   <div  xmlns="http://www.w3.org/1999/xhtml">
-  <h2><a name="{@id}"></a>
-     <xsl:value-of select="$section-prefix"/>
-     <xsl:value-of select="$section-num"/>
-     <xsl:value-of select="concat(' ', ./cdf:title/text())"/>
-  </h2>
+
+  <!--<h1><xsl:value-of select="$section-prefix" />meh<br /><xsl:value-of select="$section-num" />meh</h1>-->
+
+  <xsl:choose>
+    <xsl:when test="$section-prefix">
+      <h2><a name="{@id}"></a>
+         <xsl:value-of select="$section-prefix"/>
+         <xsl:value-of select="$section-num"/>
+         <xsl:value-of select="concat(' ', ./cdf:title/text())"/>
+      </h2>
+    </xsl:when>
+    <xsl:otherwise>
+      <h2 class="toplevel"><a name="{@id}"></a>
+         <xsl:value-of select="$section-prefix"/>
+         <xsl:value-of select="$section-num"/>
+         <xsl:value-of select="concat('. ', ./cdf:title/text())"/>
+      </h2>
+    </xsl:otherwise>
+  </xsl:choose>
 
   <xsl:if test="./cdf:description">
      <xsl:for-each select="./cdf:description">
@@ -503,15 +536,44 @@
      </xsl:for-each>
   </xsl:if>
 
-
-  <xsl:if test="./cdf:reference">
-     <h4>References:
-       <xsl:for-each select="./cdf:reference">
-	     <xsl:if test="@href">
-	      <a href="{@href}"><xsl:value-of select="text()"/> </a>
-         </xsl:if>
-        </xsl:for-each>
-      </h4>
+  <!-- Group level reference -->
+  <xsl:if test="./cdf:ident or ./cdf:reference">
+    <table id="references">
+      <tr valign="top">
+        <td class="ident">
+          <strong>Security Identifiers: </strong>
+          <xsl:if test="not(./cdf:ident)">none<br /></xsl:if>
+          <xsl:for-each select='./cdf:ident'><xsl:value-of select='.' /><xsl:if test='not(position()=last())'>, </xsl:if></xsl:for-each>
+        </td>
+        <td class="ref">
+          <strong>References: </strong>
+          <xsl:if test="not(./cdf:reference)">none<br /></xsl:if>
+          <xsl:for-each select='./cdf:reference'>
+            <xsl:if test="@href">
+              <xsl:choose>
+                <xsl:when test='. != ""'>
+                  <xsl:choose>
+                    <xsl:when test='./@href = "http://iase.disa.mil/cci/index.html"'>
+                      <a href="{@href}">DISA CCI-<xsl:value-of select="text()"/></a>
+                    </xsl:when>
+                    <xsl:when test='./@href = "http://csrc.nist.gov/publications/nistpubs/800-53-Rev3/sp800-53-rev3-final.pdf"'>
+                      <a href="{@href}">NIST <xsl:value-of select="text()"/></a>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <a href="{@href}"><xsl:value-of select="text()"/></a>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </xsl:when>
+                <xsl:otherwise>
+                  <a href="{@href}"><xsl:value-of select="./@href"/></a>
+                </xsl:otherwise>
+              </xsl:choose>
+              <xsl:if test="not(position()=last())">, </xsl:if>
+            </xsl:if>
+          </xsl:for-each>
+        </td>
+      </tr>
+    </table>
   </xsl:if>
 
   <xsl:if test="./cdf:Group | ./cdf:Rule">
@@ -568,30 +630,61 @@
      </xsl:for-each>
   </xsl:if>
 
-
   <xsl:if test="./cdf:check[@system='ocil-transitional']">
   <xsl:variable name="manualcheck" select="concat('manualcheck-', @id)"/>
-     <xsl:for-each select="./cdf:check[@system='ocil-transitional']/cdf:check-content">
+    <xsl:for-each select="./cdf:check[@system='ocil-transitional']/cdf:check-content">
       <h4 class="expandstyle">
-      	<a href="javascript:toggle('{$manualcheck}', 'link-{$manualcheck}');">
-      	<img id="link-{$manualcheck}" src="images/collapsed.png" height="20" width="20"/> Check Procedure
+        <a href="javascript:toggle('{$manualcheck}', 'link-{$manualcheck}');" style="height:25px; line-height: 25px">
+      	<span style="display:inline-block; vertical-align:middle"><img id="link-{$manualcheck}" src="images/collapsed.png" height="15" width="15" style="vertical-align: middle"/> Check Procedure</span>
       	</a>
       </h4>
-       <div id="{$manualcheck}" class="hiddencheck">
+      <div id="{$manualcheck}" class="hiddencheck">
       <xsl:apply-templates select="node()" />
-       </div>
-     </xsl:for-each>
+      </div>
+    </xsl:for-each>
   </xsl:if>
 
-  <xsl:if test="./cdf:reference">
-     <h4>References: 
-	 <xsl:for-each select="./cdf:reference">
-	     <xsl:if test="@href">
-	        <a href="{@href}" style="padding-right:15px"><xsl:value-of select="text()"/></a>
-         </xsl:if>
-	 </xsl:for-each>
-     </h4>
+  <!-- Rule level reference -->
+  <xsl:if test="./cdf:ident or ./cdf:reference">
+    <table id="references">
+      <tr valign="top">
+        <td class="ident">
+          <strong>Security Identifiers: </strong>
+          <xsl:if test="not(./cdf:ident)">none<br /></xsl:if>
+          <xsl:for-each select='./cdf:ident'><xsl:value-of select='.' /><xsl:if test='not(position()=last())'>, </xsl:if></xsl:for-each>
+        </td>
+        <td class="ref">
+          <strong>References: </strong>
+          <xsl:if test="not(./cdf:reference)">none<br /></xsl:if>
+          <xsl:for-each select='./cdf:reference'>
+            <xsl:if test="@href">
+              <xsl:choose>
+                <xsl:when test='. != ""'>
+                  <xsl:choose>
+                    <xsl:when test='./@href = "http://iase.disa.mil/cci/index.html"'>
+                      <a href="{@href}">DISA CCI-<xsl:value-of select="text()"/></a>
+                    </xsl:when>
+                    <xsl:when test='./@href = "http://csrc.nist.gov/publications/nistpubs/800-53-Rev3/sp800-53-rev3-final.pdf"'>
+                      <a href="{@href}">NIST <xsl:value-of select="text()"/></a>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <a href="{@href}"><xsl:value-of select="text()"/></a>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </xsl:when>
+                <xsl:otherwise>
+                  <a href="{@href}"><xsl:value-of select="./@href"/></a>
+                </xsl:otherwise>
+
+              </xsl:choose>
+              <xsl:if test="not(position()=last())">, </xsl:if>
+            </xsl:if>
+          </xsl:for-each>
+        </td>
+      </tr>
+    </table>
   </xsl:if>
+
   </div>
 </xsl:template>
 
-- 
1.7.1



More information about the scap-security-guide mailing list