Initial dev repository
[kcls-web.git] / opac / extras / xsl / MARC21slim2FGDC.xsl
diff --git a/opac/extras/xsl/MARC21slim2FGDC.xsl b/opac/extras/xsl/MARC21slim2FGDC.xsl
new file mode 100644 (file)
index 0000000..a8a0288
--- /dev/null
@@ -0,0 +1,737 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<xsl:stylesheet version="1.0" xmlns:marc="http://www.loc.gov/MARC21/slim"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="marc">\r
+    <xsl:import href="MARC21slimUtils.xsl"/>\r
+    <xsl:output method="xml" encoding="UTF-8" indent="yes"/>\r
+\r
+<xsl:template match="/">\r
+    <metadata>\r
+        <xsl:apply-templates/>\r
+    </metadata>\r
+</xsl:template>\r
+\r
+    <xsl:template match="marc:record">\r
+        <idinfo>\r
+            <citation>\r
+                <citeinfo>\r
+\r
+                <xsl:if test="marc:datafield[@tag=100]/marc:subfield[@code='a']!=''">\r
+                    <origin><xsl:value-of select="marc:datafield[@tag=100]/marc:subfield[@code='a']" /></origin>\r
+                </xsl:if>\r
+\r
+                <xsl:if test="marc:datafield[@tag=110]/marc:subfield[@code='a']!=''">\r
+                    <origin><xsl:value-of select="marc:datafield[@tag=110]/marc:subfield[@code='a']" /></origin>\r
+                </xsl:if>\r
+\r
+                <xsl:if test="marc:datafield[@tag=111]/marc:subfield[@code='a']!=''">\r
+                    <origin><xsl:value-of select="marc:datafield[@tag=111]/marc:subfield[@code='a']" /></origin>\r
+                </xsl:if>\r
+\r
+                <pubdate><xsl:value-of select="marc:datafield[@tag=260]/marc:subfield[@code='c']" /></pubdate>\r
+                <pubtime><xsl:value-of select="marc:datafield[@tag=260]/marc:subfield[@code='c']" /></pubtime>\r
+\r
+                <title><xsl:value-of select="marc:datafield[@tag=245]/marc:subfield[@code='a']" /></title>\r
+\r
+                <edition><xsl:value-of select="marc:datafield[@tag=250]/marc:subfield[@code='a']" /></edition>\r
+\r
+                <pubinfo>\r
+                    <pubplace><xsl:value-of select="marc:datafield[@tag=260]/marc:subfield[@code='a']" /></pubplace>\r
+                    <publish><xsl:value-of select="marc:datafield[@tag=260]/marc:subfield[@code='b']" /></publish>\r
+                </pubinfo>\r
+\r
+                <xsl:for-each select="marc:datafield[@tag=500]">\r
+                    <othercit><xsl:value-of select="marc:subfield[@code='a']" /></othercit>\r
+                </xsl:for-each>\r
+\r
+                <xsl:for-each select="marc:datafield[@tag=856]">\r
+                    <onlink><xsl:value-of select="marc:subfield[@code='u']" /></onlink>\r
+                </xsl:for-each>\r
+\r
+                </citeinfo>\r
+            </citation>\r
+            <descript>\r
+                <xsl:for-each select="marc:datafield[@tag=520]">\r
+                    <abstract><xsl:value-of select="marc:subfield[@code='a']" /></abstract>\r
+                </xsl:for-each>\r
+            </descript>\r
+            <timeperd>\r
+            </timeperd>\r
+            <status>\r
+                <update><xsl:value-of select="marc:datafield[@tag=310]/marc:subfield[@code='c']" /></update>\r
+\r
+                <xsl:for-each select="marc:datafield[@tag=583]">\r
+                    <progress><xsl:value-of select="marc:subfield[@code='a']" /></progress>\r
+                </xsl:for-each>\r
+\r
+            </status>\r
+            <spdom>\r
+                <bounding>\r
+                    <westbc><xsl:value-of select="marc:datafield[@tag=034]/marc:subfield[@code='d']" /></westbc>\r
+                    <eastbc><xsl:value-of select="marc:datafield[@tag=034]/marc:subfield[@code='e']" /></eastbc>\r
+                    <northbc><xsl:value-of select="marc:datafield[@tag=034]/marc:subfield[@code='f']" /></northbc>\r
+                    <southbc><xsl:value-of select="marc:datafield[@tag=034]/marc:subfield[@code='g']" /></southbc>\r
+                </bounding>\r
+                <dsgpoly>\r
+                    <dsgpolyo>\r
+                        <grngpoin>\r
+                            <gringlat><xsl:value-of select="marc:datafield[@tag=034]/marc:subfield[@code='s']" /></gringlat>\r
+                            <gringlon><xsl:value-of select="marc:datafield[@tag=034]/marc:subfield[@code='t']" /></gringlon>\r
+                        </grngpoin>\r
+                    </dsgpolyo>\r
+                </dsgpoly>\r
+            </spdom>\r
+            <keywords>\r
+                <xsl:for-each select="marc:datafield[@tag=650]">\r
+                    <theme>\r
+                        <themekt><xsl:value-of select="marc:subfield[@code='2']" /></themekt>\r
+                        <themekey><xsl:value-of select="marc:subfield[@code='a']" /></themekey>\r
+                    </theme>\r
+                </xsl:for-each>\r
+\r
+                <xsl:for-each select="marc:datafield[@tag=651]">\r
+                    <place>\r
+                        <placekt><xsl:value-of select="marc:subfield[@code='2']" /></placekt>\r
+                        <placekey><xsl:value-of select="marc:subfield[@code='a']" /></placekey>\r
+                    </place>\r
+                </xsl:for-each>\r
+\r
+\r
+            </keywords>\r
+\r
+            <xsl:for-each select="marc:datafield[@tag=506]">\r
+                <acconst><xsl:value-of select="marc:subfield[@code='a']" /></acconst>\r
+            </xsl:for-each>\r
+\r
+            <xsl:for-each select="marc:datafield[@tag=540]">\r
+                <useconst><xsl:value-of select="marc:subfield[@code='a']" /></useconst>\r
+            </xsl:for-each>\r
+\r
+\r
+            <xsl:for-each select="marc:datafield[@tag=856]">\r
+                <browse>\r
+                    <browsen><xsl:value-of select="marc:subfield[@code='f']" /></browsen>\r
+                    <browsed><xsl:value-of select="marc:subfield[@code='z']" /></browsed>\r
+                </browse>\r
+            </xsl:for-each>\r
+\r
+            <xsl:for-each select="marc:datafield[@tag=700]|marc:datafield[@tag=710]|marc:datafield[@tag=711]">\r
+                <datacred><xsl:value-of select="marc:subfield[@code='a']" /></datacred>\r
+            </xsl:for-each>\r
+\r
+            <xsl:for-each select="marc:datafield[@tag=355]">\r
+                <secinfo>\r
+                    <secsys><xsl:value-of select="marc:subfield[@code='e']" /></secsys>\r
+                    <secclass><xsl:value-of select="marc:subfield[@code='a']" /></secclass>\r
+                    <sechandl><xsl:value-of select="marc:subfield[@code='b']" /></sechandl>\r
+                </secinfo>\r
+            </xsl:for-each>\r
+\r
+            <xsl:for-each select="marc:datafield[@tag=538]">\r
+                <native><xsl:value-of select="marc:subfield[@code='a']" /></native>\r
+            </xsl:for-each>\r
+\r
+            <crossref>\r
+            </crossref>\r
+\r
+        </idinfo>\r
+\r
+        <dataqual>\r
+            <attracc>\r
+                <attraccr><xsl:value-of select="marc:datafield[@tag=514]/marc:subfield[@code='a']" /></attraccr>\r
+                <qattracc>\r
+                    <attraccv><xsl:value-of select="marc:datafield[@tag=514]/marc:subfield[@code='b']" /></attraccv>\r
+                    <attracce><xsl:value-of select="marc:datafield[@tag=514]/marc:subfield[@code='c']" /></attracce>\r
+                </qattracc>\r
+            </attracc>\r
+\r
+\r
+\r
+            <logic><xsl:value-of select="marc:datafield[@tag=514]/marc:subfield[@code='d']" /></logic>\r
+            <complete><xsl:value-of select="marc:datafield[@tag=514]/marc:subfield[@code='e']" /></complete>\r
+\r
+            <posacc>\r
+                <horizpa><xsl:value-of select="marc:datafield[@tag=514]/marc:subfield[@code='f']" /></horizpa>\r
+                <qhorizpa>\r
+                    <horizpav><xsl:value-of select="marc:datafield[@tag=514]/marc:subfield[@code='g']" /></horizpav>\r
+                    <horizpae><xsl:value-of select="marc:datafield[@tag=514]/marc:subfield[@code='h']" /></horizpae>\r
+                </qhorizpa>\r
+\r
+                <vertacc>\r
+                    <vertaccr><xsl:value-of select="marc:datafield[@tag=514]/marc:subfield[@code='i']" /></vertaccr>\r
+                    <qvertpa>\r
+                        <vertaccv><xsl:value-of select="marc:datafield[@tag=514]/marc:subfield[@code='j']" /></vertaccv>\r
+                        <vertacce><xsl:value-of select="marc:datafield[@tag=514]/marc:subfield[@code='k']" /></vertacce>\r
+                    </qvertpa>\r
+                </vertacc>\r
+            </posacc>\r
+\r
+            <lineage>\r
+\r
+                <srcinfo>\r
+                    <srcscale><xsl:value-of select="marc:datafield[@tag=786]/marc:subfield[@code='m']" /></srcscale>\r
+                    <typesrc><xsl:value-of select="marc:datafield[@tag=786]/marc:subfield[@code='h']" /></typesrc>\r
+                    <srctime>\r
+                        <srccurr><xsl:value-of select="marc:datafield[@tag=786]/marc:subfield[@code='j']" /></srccurr>\r
+                    </srctime>\r
+                    <srccitea><xsl:value-of select="marc:datafield[@tag=786]/marc:subfield[@code='p']" /></srccitea>\r
+                    <srccontr><xsl:value-of select="marc:datafield[@tag=786]/marc:subfield[@code='v']" /></srccontr>\r
+                </srcinfo>\r
+\r
+                <procstep>\r
+                    <procdesc><xsl:value-of select="marc:datafield[@tag=583]/marc:subfield[@code='a']" /></procdesc>\r
+                    <procdate><xsl:value-of select="marc:datafield[@tag=583]/marc:subfield[@code='c']" /></procdate>\r
+                    <proctime><xsl:value-of select="marc:datafield[@tag=583]/marc:subfield[@code='c']" /></proctime>\r
+                    <srcprod><xsl:value-of select="marc:datafield[@tag=583]/marc:subfield[@code='b']" /></srcprod>\r
+\r
+                </procstep>\r
+            </lineage>\r
+\r
+            <cloud><xsl:value-of select="marc:datafield[@tag=514]/marc:subfield[@code='m']" /></cloud>\r
+\r
+\r
+        </dataqual>\r
+\r
+        <spdoinfo>\r
+            <indspref><xsl:value-of select="marc:datafield[@tag=352]/marc:subfield[@code='i']" /></indspref>\r
+            <direct><xsl:value-of select="marc:datafield[@tag=352]/marc:subfield[@code='a']" /></direct>\r
+            <xsl:variable name="object" select="marc:datafield[@tag=352]/marc:subfield[@code='a']" />\r
+\r
+            <xsl:if test="contains(translate($object,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'raster')=false">\r
+\r
+                <ptvctinf>\r
+                    <sdtsterm>\r
+                        <sdtstype><xsl:value-of select="marc:datafield[@tag=352]/marc:subfield[@code='b']" /></sdtstype>\r
+                        <ptvctcnt><xsl:value-of select="marc:datafield[@tag=352]/marc:subfield[@code='c']" /></ptvctcnt>\r
+                    </sdtsterm>\r
+\r
+                    <vpfterm>\r
+                        <vpflevel><xsl:value-of select="marc:datafield[@tag=352]/marc:subfield[@code='g']" /></vpflevel>\r
+                        <vpfinfo><xsl:value-of select="marc:datafield[@tag=352]/marc:subfield[@code='b']" /></vpfinfo>\r
+                    </vpfterm>\r
+                </ptvctinf>\r
+            </xsl:if>\r
+\r
+            <xsl:if test="contains(translate($object,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'raster')">\r
+                <rastinfo>\r
+                    <rasttype><xsl:value-of select="marc:datafield[@tag=352]/marc:subfield[@code='b']" /></rasttype>\r
+                    <rowcount><xsl:value-of select="marc:datafield[@tag=352]/marc:subfield[@code='d']" /></rowcount>\r
+                    <colcount><xsl:value-of select="marc:datafield[@tag=352]/marc:subfield[@code='e']" /></colcount>\r
+                    <vrtcount><xsl:value-of select="marc:datafield[@tag=352]/marc:subfield[@code='f']" /></vrtcount>\r
+                </rastinfo>\r
+            </xsl:if>\r
+        </spdoinfo>\r
+\r
+        <spref>\r
+            <xsl:for-each select="marc:datafield[@tag=342]">\r
+                <!--This is the branch for the horizontal grid system-->\r
+                <xsl:if test="@ind1=0">\r
+                    <horizsys>\r
+                        <geograph>\r
+                            <latres><xsl:value-of select="marc:subfield[@code='c']" /></latres>\r
+                            <longres><xsl:value-of select="marc:subfield[@code='d']" /></longres>\r
+                            <geogunit><xsl:value-of select="marc:subfield[@code='b']" /></geogunit>\r
+                        </geograph>\r
+\r
+                        <xsl:if test="@ind2=3">\r
+                            <!--Planar system-->\r
+                            <planar>\r
+                                <mapproj>\r
+\r
+                                   <mapprojn><xsl:value-of select="marc:subfield[@code='a']" /></mapprojn>\r
+                                   <xsl:variable name="mapproj" select="marc:subfield[@code='a']" />\r
+\r
+                                    <xsl:if test="contains(translate($mapproj,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'albers')">\r
+                                        <albers>\r
+                                            <mapprojp>\r
+                                                <stdparll><xsl:value-of select="marc:subfield[@code='e']" /></stdparll>\r
+                                                <longcm><xsl:value-of select="marc:subfield[@code='g']" /></longcm>\r
+                                                <latprjo><xsl:value-of select="marc:subfield[@code='h']" /></latprjo>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </albers>\r
+                                    </xsl:if>\r
+\r
+                                    <xsl:if test="contains(translate($mapproj,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'azimuthal equidistant')">\r
+                                        <azimequi>\r
+                                            <mapprojp>\r
+                                                <longcm><xsl:value-of select="marc:subfield[@code='g']" /></longcm>\r
+                                                <latprjo><xsl:value-of select="marc:subfield[@code='h']" /></latprjo>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </azimequi>\r
+                                    </xsl:if>\r
+\r
+                                    <xsl:if test="contains(translate($mapproj,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'equidistant conic')">\r
+                                        <equicon>\r
+                                            <mapprojp>\r
+                                                <stdparll><xsl:value-of select="marc:subfield[@code='e']" /></stdparll>\r
+                                                <longcm><xsl:value-of select="marc:subfield[@code='g']" /></longcm>\r
+                                                <latprjo><xsl:value-of select="marc:subfield[@code='h']" /></latprjo>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </equicon>\r
+                                    </xsl:if>\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'equirectangular')">\r
+                                        <equirect>\r
+                                            <mapprojp>\r
+                                                <stdparll><xsl:value-of select="marc:subfield[@code='e']" /></stdparll>\r
+                                                <longcm><xsl:value-of select="marc:subfield[@code='g']" /></longcm>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </equirect>\r
+                                    </xsl:if>\r
+\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'general vertical near')">\r
+                                        <gvnsp>\r
+                                            <mapprojp>\r
+                                                <heightpt><xsl:value-of select="marc:subfield[@code='l']" /></heightpt>\r
+                                                <longpc><xsl:value-of select="marc:subfield[@code='g']" /></longpc>\r
+                                                <latprjc><xsl:value-of select="marc:subfield[@code='h']" /></latprjc>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </gvnsp>\r
+                                    </xsl:if>\r
+\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'gnomonic')">\r
+                                        <gnomonic>\r
+                                            <mapprojp>\r
+                                                <longpc><xsl:value-of select="marc:subfield[@code='g']" /></longpc>\r
+                                                <latprjc><xsl:value-of select="marc:subfield[@code='h']" /></latprjc>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </gnomonic>\r
+                                    </xsl:if>\r
+\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'lambert azimuthal')">\r
+                                        <lamberta>\r
+                                            <mapprojp>\r
+                                                <longpc><xsl:value-of select="marc:subfield[@code='g']" /></longpc>\r
+                                                <latprjc><xsl:value-of select="marc:subfield[@code='h']" /></latprjc>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </lamberta>\r
+                                    </xsl:if>\r
+\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'lambert conformal')">\r
+                                        <lambertc>\r
+                                            <mapprojp>\r
+                                                <stdparll><xsl:value-of select="marc:subfield[@code='e']" /></stdparll>\r
+                                                <longcm><xsl:value-of select="marc:subfield[@code='g']" /></longcm>\r
+                                                <latprjo><xsl:value-of select="marc:subfield[@code='h']" /></latprjo>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </lambertc>\r
+                                    </xsl:if>\r
+\r
+                                   <xsl:if test="translate($mapproj,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='Mercator'">\r
+                                        <mercator>\r
+                                            <mapprojp>\r
+                                                <xsl:if test="@ind2=1">\r
+                                                    <stdparll><xsl:value-of select="marc:subfield[@code='e']" /></stdparll>\r
+                                                </xsl:if>\r
+                                                <xsl:if test="@ind1=1">\r
+                                                    <sfequat><xsl:value-of select="marc:subfield[@code='k']" /></sfequat>\r
+                                                </xsl:if>\r
+                                                <longcm><xsl:value-of select="marc:subfield[@code='g']" /></longcm>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </mercator>\r
+                                    </xsl:if>\r
+\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'alaska')">\r
+                                        <modsak>\r
+                                            <mapprojp>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </modsak>\r
+                                    </xsl:if>\r
+\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'miller cylindrical')">\r
+                                        <miller>\r
+                                            <mapprojp>\r
+                                                <longcm><xsl:value-of select="marc:subfield[@code='g']" /></longcm>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </miller>\r
+                                    </xsl:if>\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'oblique mercator')">\r
+                                        <obqmerc>\r
+                                            <mapprojp>\r
+                                                <xsl:if test="@ind1=1">\r
+                                                    <sfctrlin><xsl:value-of select="marc:subfield[@code='k']" /></sfctrlin>\r
+                                                    <obqlazim>\r
+                                                        <azimangl><xsl:value-of select="marc:subfield[@code='m']" /></azimangl>\r
+                                                        <azimptl><xsl:value-of select="marc:subfield[@code='n']" /></azimptl>\r
+                                                    </obqlazim>\r
+                                                </xsl:if>\r
+\r
+                                                <xsl:if test="@ind2=1">\r
+                                                    <!--This should repeat, but I haven't set this up-->\r
+                                                    <obqlpt>\r
+                                                        <obqllat><xsl:value-of select="marc:subfield[@code='e']" /></obqllat>\r
+                                                        <obqllong><xsl:value-of select="marc:subfield[@code='f']" /></obqllong>\r
+                                                    </obqlpt>\r
+                                                    <latprjo><xsl:value-of select="marc:subfield[@code='h']" /></latprjo>\r
+                                                    <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                    <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                                </xsl:if>\r
+\r
+                                            </mapprojp>\r
+                                        </obqmerc>\r
+                                    </xsl:if>\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'orthographic')">\r
+                                        <orthogr>\r
+                                            <mapprojp>\r
+                                                <longpc><xsl:value-of select="marc:subfield[@code='g']" /></longpc>\r
+                                                <latprjc><xsl:value-of select="marc:subfield[@code='h']" /></latprjc>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </orthogr>\r
+                                    </xsl:if>\r
+\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'polar stereographic')">\r
+                                        <polarst>\r
+                                            <mapprojp>\r
+                                                <svlong><xsl:value-of select="marc:subfield[@code='n']" /></svlong>\r
+                                                <xsl:if test="@ind1=1">\r
+                                                    <stdparll><xsl:value-of select="marc:subfield[@code='e']" /></stdparll>\r
+                                                </xsl:if>\r
+\r
+                                                <xsl:if test="@ind2=1">\r
+                                                    <sfprjorg><xsl:value-of select="marc:subfield[@code='k']" /></sfprjorg>\r
+                                                </xsl:if>\r
+\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </polarst>\r
+                                    </xsl:if>\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'polyconic')">\r
+                                        <polycon>\r
+                                            <mapprojp>\r
+                                                <longcm><xsl:value-of select="marc:subfield[@code='g']" /></longcm>\r
+                                                <latprjo><xsl:value-of select="marc:subfield[@code='h']" /></latprjo>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </polycon>\r
+                                    </xsl:if>\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'robinson')">\r
+                                        <robinson>\r
+                                            <mapprojp>\r
+                                                <longpc><xsl:value-of select="marc:subfield[@code='g']" /></longpc>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </robinson>\r
+                                    </xsl:if>\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'sinusoidal')">\r
+                                        <sinusoid>\r
+                                            <mapprojp>\r
+                                                <longcm><xsl:value-of select="marc:subfield[@code='g']" /></longcm>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </sinusoid>\r
+                                    </xsl:if>\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'space oblique mercator')">\r
+                                        <spaceobq>\r
+                                            <mapprojp>\r
+                                                <landsat><xsl:value-of select="marc:subfield[@code='o']" /></landsat>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </spaceobq>\r
+                                    </xsl:if>\r
+\r
+\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'stereographic')">\r
+                                        <stereo>\r
+                                            <mapprojp>\r
+                                                <longpc><xsl:value-of select="marc:subfield[@code='g']" /></longpc>\r
+                                                <latprjc><xsl:value-of select="marc:subfield[@code='h']" /></latprjc>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </stereo>\r
+                                    </xsl:if>\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'transverse mercator')">\r
+                                        <transmer>\r
+                                            <mapprojp>\r
+                                                <sfctrmer><xsl:value-of select="marc:subfield[@code='k']" /></sfctrmer>\r
+                                                <longcm><xsl:value-of select="marc:subfield[@code='g']" /></longcm>\r
+                                                <latprjo><xsl:value-of select="marc:subfield[@code='h']" /></latprjo>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </transmer>\r
+                                    </xsl:if>\r
+\r
+                                    <xsl:if test="contains(translate($mapproj, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'van der grinten')">\r
+                                        <vdgrin>\r
+                                            <mapprojp>\r
+                                                <longcm><xsl:value-of select="marc:subfield[@code='g']" /></longcm>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                            </mapprojp>\r
+                                        </vdgrin>\r
+                                    </xsl:if>\r
+\r
+\r
+                                </mapproj>\r
+                            </planar>\r
+                        </xsl:if>\r
+                        <xsl:if test="@ind2=2">\r
+                            <!--Grid Coordinate system-->\r
+                            <gridsys>\r
+                                <gridsysn><xsl:value-of select="marc:subfield[@code='a']" /></gridsysn>\r
+                                <xsl:variable name="gridname" select="marc:subfield[@code='a']" />\r
+                                <xsl:if test="contains(translate($gridname,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'universal transverse mercator')">\r
+                                    <utm>\r
+                                        <utmzone><xsl:value-of select="marc:subfield[@code='p']" /></utmzone>\r
+                                        <mapprojp>\r
+                                                <sfctrmer><xsl:value-of select="marc:subfield[@code='k']" /></sfctrmer>\r
+                                                <longcm><xsl:value-of select="marc:subfield[@code='g']" /></longcm>\r
+                                                <latprjo><xsl:value-of select="marc:subfield[@code='h']" /></latprjo>\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                        </mapprojp>\r
+                                    </utm>\r
+                                </xsl:if>\r
+\r
+                                <xsl:if test="contains(translate($gridname,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'), 'universal polar stereographic')">\r
+                                    <ups>\r
+                                        <upszone><xsl:value-of select="marc:subfield[@code='p']" /></upszone>\r
+                                        <mapprojp>\r
+                                                <svlong><xsl:value-of select="marc:subfield[@code='n']" /></svlong>\r
+                                                <xsl:if test="@ind1=1">\r
+                                                    <stdparll><xsl:value-of select="marc:subfield[@code='e']" /></stdparll>\r
+                                                </xsl:if>\r
+\r
+                                                <xsl:if test="@ind2=1">\r
+                                                    <sfprjorg><xsl:value-of select="marc:subfield[@code='k']" /></sfprjorg>\r
+                                                </xsl:if>\r
+\r
+                                                <feast><xsl:value-of select="marc:subfield[@code='i']" /></feast>\r
+                                                <fnorth><xsl:value-of select="marc:subfield[@code='j']" /></fnorth>\r
+                                        </mapprojp>\r
+                                    </ups>\r
+                                </xsl:if>\r
+\r
+                                <xsl:if test="contains(translate($gridname,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'1927')">\r
+                                    <spcs>\r
+                                        <spcszone>1927</spcszone>\r
+                                    </spcs>\r
+                                </xsl:if>\r
+\r
+                                <xsl:if test="contains(translate($gridname, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'1983')">\r
+                                    <spcs>\r
+                                        <spcszone>1983</spcszone>\r
+                                    </spcs>\r
+                                </xsl:if>\r
+\r
+                                <xsl:if test="contains(translate($gridname,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'arc')">\r
+                                    <arcsys>\r
+                                        <arczone><xsl:value-of select="marc:subfield[@code='p']" /></arczone>\r
+                                    </arcsys>\r
+                                </xsl:if>\r
+\r
+                                <xsl:if test="translate(contains($gridname,'other'), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')">\r
+                                    <othergrd>\r
+                                    </othergrd>\r
+                                </xsl:if>\r
+                            </gridsys>\r
+                        </xsl:if>\r
+\r
+                        <planci>\r
+                            <plance><xsl:value-of select="marc:datafield[@tag=343]/marc:subfield[@code='a']" /></plance>\r
+                            <coordrep>\r
+                                <absres><xsl:value-of select="marc:datafield[@tag=343]/marc:subfield[@code='c']" /></absres>\r
+                                <ordres><xsl:value-of select="marc:datafield[@tag=343]/marc:subfield[@code='d']" /></ordres>\r
+                            </coordrep>\r
+                            <distbrep>\r
+                                <distres><xsl:value-of select="marc:datafield[@tag=343]/marc:subfield[@code='e']" /></distres>\r
+                                <bearres><xsl:value-of select="marc:datafield[@tag=343]/marc:subfield[@code='f']" /></bearres>\r
+                                <bearunit><xsl:value-of select="marc:datafield[@tag=343]/marc:subfield[@code='a']" /></bearunit>\r
+                                <bearrefd><xsl:value-of select="marc:datafield[@tag=343]/marc:subfield[@code='n']" /></bearrefd>\r
+                                <bearrefm><xsl:value-of select="marc:datafield[@tag=343]/marc:subfield[@code='i']" /></bearrefm>\r
+                            </distbrep>\r
+                        </planci>\r
+\r
+\r
+                    </horizsys>\r
+                </xsl:if>\r
+                <xsl:if test="@ind1=1">\r
+                    <vertdef>\r
+                        <altsys>\r
+                            <altdatum><xsl:value-of select="marc:subfield[@code='a']" /></altdatum>\r
+                            <altres><xsl:value-of select="marc:field[@code='t']" /></altres>\r
+                            <altunits><xsl:value-of select="marc:subfield[@code='b']" /></altunits>\r
+                            <altenc><xsl:value-of select="marc:subfield[@code='u']" /></altenc>\r
+                        </altsys>\r
+\r
+\r
+                    </vertdef>\r
+\r
+                </xsl:if>\r
+\r
+\r
+            </xsl:for-each>\r
+\r
+        </spref>\r
+\r
+\r
+        <eainfo>\r
+            <xsl:for-each select="marc:datafield[@tag=552]">\r
+                <detailed>\r
+\r
+                    <enttype>\r
+                        <enttypl><xsl:value-of select="marc:subfield[@code='a']" /></enttypl>\r
+                        <enttypd><xsl:value-of select="marc:subfield[@code='b']" /></enttypd>\r
+                    </enttype>\r
+\r
+                    <attr>\r
+                        <attrlabl><xsl:value-of select="marc:subfield[@code='c']" /></attrlabl>\r
+                        <attrdef><xsl:value-of select="marc:subfield[@code='d']" /></attrdef>\r
+                        <attrdomv>\r
+                            <edom>\r
+                                <edomv><xsl:value-of select="marc:subfield[@code='e']" /></edomv>\r
+                                <edomvd><xsl:value-of select="marc:subfield[@code='f']" /></edomvd>\r
+                            </edom>\r
+\r
+                            <rdom>\r
+                                <rdommin><xsl:value-of select="substring-before(marc:subfield[@code='g'],'-')" /></rdommin>\r
+                                <rdommax><xsl:value-of select="substring-after(marc:subfield[@code='g'],'-')" /></rdommax>\r
+                            </rdom>\r
+                            <codesetd>\r
+                                <codesets><xsl:value-of select="marc:subfield[@code='h']" /></codesets>\r
+                            </codesetd>\r
+                            <udom><xsl:value-of select="marc:subfield[@code='i']" /></udom>\r
+                        </attrdomv>\r
+\r
+                        <attrunit><xsl:value-of select="marc:subfield[@code='j']" /></attrunit>\r
+                        <begdatea><xsl:value-of select="substring-before(marc:subfield[@code='k'],'-')" /></begdatea>\r
+                        <enddatea><xsl:value-of select="substring-after(marc:subfield[@code='k'],'-')" /></enddatea>\r
+                        <attrvai>\r
+                            <attrva><xsl:value-of select="marc:subfield[@code='l']" /></attrva>\r
+                            <attrvae><xsl:value-of select="marc:subfield[@code='m']" /></attrvae>\r
+                        </attrvai>\r
+\r
+                        <attrmfrq><xsl:value-of select="marc:subfield[@code='n']" /></attrmfrq>\r
+                    </attr>\r
+\r
+                    <overview>\r
+                        <eaover><xsl:value-of select="marc:subfield[@code='o']" /></eaover>\r
+                        <eadetcit><xsl:value-of select="marc:subfield[@code='p']" /></eadetcit>\r
+                    </overview>\r
+\r
+                </detailed>\r
+            </xsl:for-each>\r
+\r
+        </eainfo>\r
+\r
+\r
+        <distinfo>\r
+            <xsl:for-each select="marc:datafield[@tag=037]">\r
+                <stdorder>\r
+                    <nondig><xsl:value-of select="marc:subfield[@code='f']" /></nondig>\r
+                    <digform>\r
+                        <digtinfo>\r
+                            <formname><xsl:value-of select="marc:subfield[@code='g']" /></formname>\r
+                            <formspec><xsl:value-of select="marc:subfield[@code='h']" /></formspec>\r
+                            <formcont><xsl:value-of select="marc:subfield[@code='n']" /></formcont>\r
+                        </digtinfo>\r
+                        <digtopt>\r
+                            <onlinopt>\r
+                                 <computer>\r
+                                    <dialinst>\r
+                                        <lowbps><xsl:value-of select="substring-before(marc:datafield[@tag='856']/marc:subfield[@code='j'],'-')" /></lowbps>\r
+                                        <highbps><xsl:value-of select="substring-after(marc:datafield[@tag='856']/marc:subfield[@code='j'],'-')" /></highbps>\r
+                                        <numdata><xsl:value-of select="marc:datafield[@tag='856']/marc:subfield[@code='r']" /></numdata>\r
+                                        <compress><xsl:value-of select="marc:datafield[@tag='856']/marc:subfield[@code='c']" /></compress>\r
+                                        <dialtel><xsl:value-of select="marc:datafield[@tag='856']/marc:subfield[@code='b']" /></dialtel>\r
+                                        <dialfile><xsl:value-of select="marc:datafield[@tag='856']/marc:subfield[@code='f']" /></dialfile>\r
+                                    </dialinst>\r
+                                    <accinstr><xsl:value-of select="marc:datafield[@tag='856']/marc:subfield[@code='i']" /></accinstr>\r
+                                </computer>\r
+                            </onlinopt>\r
+                        </digtopt>\r
+                    </digform>\r
+                    <custom><xsl:value-of select="marc:subfield[@code='c']" /></custom>\r
+                </stdorder>\r
+                <availabl>\r
+                    <timeinfo>\r
+                        <sngdate>\r
+                            <caldate><xsl:value-of select="marc:datafield[@tag=045]/marc:subfield[@code='b']" /></caldate>\r
+                        </sngdate>\r
+\r
+                    </timeinfo>\r
+                </availabl>\r
+            </xsl:for-each>\r
+        </distinfo>\r
+\r
+        <metainfo>\r
+            <metd><xsl:value-of select="marc:datafield[@tag=583]/marc:subfield[@code='c']" /></metd>\r
+            <metrd><xsl:value-of select="marc:datafield[@tag=583]/marc:subfield[@code='z']" /></metrd>\r
+            <metc>\r
+                <cntinfo>\r
+                    <cntperp>\r
+                        <cntper><xsl:value-of select="marc:datafield[@tag=270]/marc:subfield[@code='p']" /></cntper>\r
+                        <cntorg><xsl:value-of select="marc:datafield[@tag=270]/marc:subfield[@code='q']" /></cntorg>\r
+                    </cntperp>\r
+                    <cntaddr>\r
+                        <addrtype><xsl:value-of select="marc:datafield[@tag=270]/marc:subfield[@code='i']" /></addrtype>\r
+                        <address><xsl:value-of select="marc:datafield[@tag=270]/marc:subfield[@code='a']" /></address>\r
+                        <city><xsl:value-of select="marc:datafield[@tag=270]/marc:subfield[@code='b']" /></city>\r
+                        <state><xsl:value-of select="substring-before(marc:datafield[@tag=270]/marc:subfield[@code='c'],',')" /></state>\r
+                        <postal><xsl:value-of select="substring-after(marc:datafield[@tag=270]/marc:subfield[@code='c'],',')" /></postal>\r
+                        <country><xsl:value-of select="marc:datafield[@tag=270]/marc:subfield[@code='d']" /></country>\r
+                    </cntaddr>\r
+                    <cntvoice><xsl:value-of select="marc:datafield[@tag=270]/marc:subfield[@code='k']" /></cntvoice>\r
+                    <cnttdd><xsl:value-of select="marc:datafield[@tag=270]/marc:subfield[@code='h']" /></cnttdd>\r
+                    <cntemail><xsl:value-of select="marc:datafield[@tag=270]/marc:subfield[@code='m']" /></cntemail>\r
+                    <hours><xsl:value-of select="marc:datafield[@tag=270]/marc:subfield[@code='r']" /></hours>\r
+                    <cntinst><xsl:value-of select="marc:datafield[@tag=270]/marc:subfield[@code='z']" /></cntinst>\r
+                </cntinfo>\r
+            </metc>\r
+            <metstdn><xsl:value-of select="marc:datafield[@tag=583]/marc:subfield[@code='f']" /></metstdn>\r
+            <metac><xsl:value-of select="marc:datafield[@tag=506]/marc:subfield[@code='a']" /></metac>\r
+        </metainfo>\r
+\r
+\r
+\r
+    </xsl:template>\r
+</xsl:stylesheet>\r
+<!--http://creativecommons.org/licenses/zero/1.0/\r
+Creative Commons 1.0 Universal\r
+The person who associated a work with this document has dedicated this work to the \r
+Commons by waiving all of his or her rights to the work under copyright law and all \r
+related or neighboring legal rights he or she had in the work, to the extent allowable by law. \r
+-->\r