<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl"
    xmlns:odpx="http://www.gomoos.org/schema/odpx/1"
    xmlns:xsi="http://www.gomoos.org/schema/odpx/1"
    xmlns:gml="http://www.opengis.net/gml"
    xmlns:swe="http://www.opengis.net/swe/1.0.1"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    exclude-result-prefixes="xd"
    version="1.0">
    <xd:doc scope="stylesheet">
        <xd:desc>
            <xd:p><xd:b>Created on:</xd:b> Oct 13, 2010</xd:p>
            <xd:p><xd:b>Author:</xd:b>Ian Ogilvie, GMRI</xd:p>
            <xd:p></xd:p>
        </xd:desc>
    </xd:doc>
    <xsl:output method="xml"/>
    <xsl:template match="django-objects">
        <ODPX xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.gomoos.org/schema/odpx/1" xmlns:gml="http://www.opengis.net/gml" xmlns:odpx="http://www.gomoos.org/schema/odpx/1" xmlns:swe="http://www.opengis.net/swe/1.0.1" xsi:schemaLocation="http://www.gomoos.org/schema/odpx/1  http://www.gomoos.org/schema/odpx/1/index.xsd" schemaVersion="1.0">
            <!-- xsi:schemaLocation="http://www.gomoos.org/schema/odpx/1 http://www.gomoos.org/schema/odpx/1/index.xsd"    -->
            <!-- xsi:schemaLocation="http://www.gomoos.org/schema/odpx/1 /Users/ian/Documents/GoMOOS/Projects/Exchange_Network/GoMOOS%20Implementation/Schema_Data_etc/ODPX_Schema/odpx/1/index.xsd" --><xsl:text>
            </xsl:text>
            <Organization schemaVersion="1.0"><xsl:text>
            </xsl:text>
                <OrganizationDescription><xsl:text>
            </xsl:text>
                    <OrganizationDescriptionIdOnly><xsl:text>
            </xsl:text>
                        <OrganizationIdentifier>CornellOrnithology</OrganizationIdentifier><xsl:text>
            </xsl:text>
                    </OrganizationDescriptionIdOnly><xsl:text>
            </xsl:text>
                </OrganizationDescription><xsl:text>
            </xsl:text>
                <xsl:apply-templates select="object"/>
            </Organization>	<xsl:text>
            </xsl:text>
        </ODPX>
    </xsl:template>
    <xsl:template match="object">
        <xsl:if test="contains(@pk,'TSS')">
            <xsl:variable name="uniquegmlid"><xsl:value-of select="@pk"/></xsl:variable>
            <xsl:variable name="crlf"><xsl:text>
</xsl:text></xsl:variable>
            <odpx:Activity schemaVersion="1.0"><xsl:text>
            </xsl:text>
                <odpx:ActivityDescription><xsl:text>
            </xsl:text>
                    <odpx:ActivityDescriptionIdOnly><xsl:text>
            </xsl:text>
                        <odpx:ActivityIdentifier>
                            <xsl:value-of select="@pk"/>
                        </odpx:ActivityIdentifier><xsl:text>
            </xsl:text>
                    </odpx:ActivityDescriptionIdOnly><xsl:text>
            </xsl:text>
                </odpx:ActivityDescription><xsl:text>
                </xsl:text>
                <odpx:Result schemaVersion="1.0"><xsl:text>
                </xsl:text>
                    <odpx:ResultTimeSeries><xsl:text>
                </xsl:text>
                        <odpx:ObservedProperty><xsl:text>
                </xsl:text>
                            <swe:CompositePhenomenon dimension="16" gml:id="{$uniquegmlid}"><xsl:text>
                </xsl:text> <gml:name>first_good_data,last_good_data,last_detect,alert_expires,last_transmit,last_voltage,last_temp_f,n_all_clips,n_good_clips,n_dets_24_hours,n_bad_clips,n_new_clips,n_crap_dats,n_good_dats,Notes,zone_id</gml:name><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:first_good_data"/><xsl:text>
                                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:last_good_data"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:last_detect"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:alert_expires"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:last_transmit"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:last_voltage"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:last_temp_f"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:n_all_clips"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:n_good_clips"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:n_dets_24_hours"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:n_bad_clips"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:n_new_clips"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:n_crap_dats"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:n_good_dats"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:Notes"/><xsl:text>
                </xsl:text>
                                <swe:component xlink:href="urn:bap:def:phenomenon:listenforwhales.org:zone_id"/><xsl:text>
                </xsl:text>
                            </swe:CompositePhenomenon><xsl:text>
                </xsl:text>
                        </odpx:ObservedProperty><xsl:text>
                        </xsl:text>
                        <odpx:ResultAnyData><xsl:text>
                        </xsl:text>
                            <swe:DataArray><xsl:text>
                        </xsl:text>
                                <swe:elementCount><xsl:text>
                        </xsl:text>
                                    <swe:Count><xsl:text>
                        </xsl:text>
                                        <swe:value>1</swe:value><xsl:text>
                        </xsl:text>
                                <!-- Number of Records here -->
                                    </swe:Count><xsl:text>
                        </xsl:text>
                                </swe:elementCount><xsl:text>
                        </xsl:text>
                                <swe:elementType name="BRPBuoyObservations"><xsl:text>
                        </xsl:text>
                                    <swe:DataRecord><xsl:text>
                        </xsl:text>
                                <!--  Time last_good_data -->
                                        <swe:field name="time"><xsl:text>
                        </xsl:text>
                                            <swe:Time definition="urn:ogc:phenomenon:time:iso8601"/><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                <!-- Latitude and Longitude could be used here for moving locations -->
                                        <swe:field name="latitude"><xsl:text>
                        </xsl:text>
                                            <swe:Quantity definition="urn:ogc:def:crs:EPSG:6.5:4326"><xsl:text>
                        </xsl:text>
                                                <swe:uom code="deg"/><xsl:text>
                        </xsl:text>
                                            </swe:Quantity><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="longitude"><xsl:text>
                        </xsl:text>
                                            <swe:Quantity definition="urn:ogc:def:crs:EPSG:6.5:4326"><xsl:text>
                        </xsl:text>
                                                <swe:uom code="deg"/><xsl:text>
                        </xsl:text>
                                            </swe:Quantity><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                <!--  Observable fields -->
                                        <swe:field name="first_good_data"><xsl:text>
                        </xsl:text>
                                            <swe:Time definition="urn:ogc:phenomenon:time:iso8601"/><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="last_good_data"><xsl:text>
                        </xsl:text>
                                            <swe:Time definition="urn:ogc:phenomenon:time:iso8601"/><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="last_detect"><xsl:text>
                        </xsl:text>
                                            <swe:Time definition="urn:ogc:phenomenon:time:iso8601"/><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="alert_expires"><xsl:text>
                        </xsl:text>
                                            <swe:Time definition="urn:ogc:phenomenon:time:iso8601"/><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="last_transmit"><xsl:text>
                        </xsl:text>
                                            <swe:Time definition="urn:ogc:phenomenon:time:iso8601"/><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="last_voltage"><xsl:text>
                        </xsl:text>
                                            <swe:Quantity definition="urn:bap:def:phenomenon:listenforwhales.org:last_voltage"><xsl:text>
                        </xsl:text>
                                                <swe:uom code="volt"/>   <xsl:text>
                        </xsl:text>                 
                                            </swe:Quantity><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="last_temp_f"><xsl:text>
                        </xsl:text>
                                            <swe:Quantity definition="urn:bap:def:phenomenon:listenforwhales.org:last_temp_f"><xsl:text>
                        </xsl:text>
                                                <swe:uom code="deg"/>  <xsl:text>
                        </xsl:text>                  
                                            </swe:Quantity><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="n_all_clips"><xsl:text>
                        </xsl:text>
                                            <swe:Quantity definition="urn:bap:def:phenomenon:listenforwhales.org:n_all_clips"><xsl:text>
                        </xsl:text>
                                                <swe:uom code="count"/> <xsl:text>
                        </xsl:text>                   
                                            </swe:Quantity><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="n_good_clips"><xsl:text>
                        </xsl:text>
                                            <swe:Quantity definition="urn:bap:def:phenomenon:listenforwhales.org:n_good_clips"><xsl:text>
                        </xsl:text>
                                                <swe:uom code="count"/>  <xsl:text>
                        </xsl:text>                  
                                            </swe:Quantity><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="n_dets_24_hours"><xsl:text>
                        </xsl:text>
                                            <swe:Quantity definition="urn:bap:def:phenomenon:listenforwhales.org:n_dets_24_hours"><xsl:text>
                        </xsl:text>
                                                <swe:uom code="count"/> <xsl:text>
                        </xsl:text>                   
                                            </swe:Quantity><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="n_bad_clips"><xsl:text>
                        </xsl:text>
                                            <swe:Quantity definition="urn:bap:def:phenomenon:listenforwhales.org:n_bad_clips"><xsl:text>
                        </xsl:text>
                                                <swe:uom code="count"/>   <xsl:text>
                        </xsl:text>                 
                                            </swe:Quantity><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="n_new_clips"><xsl:text>
                        </xsl:text>
                                            <swe:Quantity definition="urn:bap:def:phenomenon:listenforwhales.org:n_new_clips"><xsl:text>
                        </xsl:text>
                                                <swe:uom code="count"/>    <xsl:text>
                        </xsl:text>                
                                            </swe:Quantity><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="n_crap_dats"><xsl:text>
                        </xsl:text>
                                            <swe:Quantity definition="urn:bap:def:phenomenon:listenforwhales.org:n_crap_dats"><xsl:text>
                        </xsl:text>
                                                <swe:uom code="count"/>    <xsl:text>
                        </xsl:text>                
                                            </swe:Quantity><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="n_good_dats"><xsl:text>
                        </xsl:text>
                                            <swe:Quantity definition="urn:bap:def:phenomenon:listenforwhales.org:n_good_dats"><xsl:text>
                        </xsl:text>
                                                <swe:uom code="count"/> <xsl:text>
                        </xsl:text>                   
                                            </swe:Quantity><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="notes"><xsl:text>
                        </xsl:text>
                                            <swe:Text></swe:Text><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                        <swe:field name="zone_id"><xsl:text>
                        </xsl:text>
                                            <swe:Text></swe:Text><xsl:text>
                        </xsl:text>
                                        </swe:field><xsl:text>
                        </xsl:text>
                                    </swe:DataRecord><xsl:text>
                        </xsl:text>
                                </swe:elementType><xsl:text>
                        </xsl:text>
                                <swe:encoding><xsl:text>
                        </xsl:text>
                                    <swe:TextBlock blockSeparator="{$crlf}" decimalSeparator="." tokenSeparator=","/><xsl:text>
                        </xsl:text>
                                </swe:encoding><xsl:text>
                        </xsl:text>
                                <swe:values>
                                    <xsl:for-each select="field">
                                        <xsl:if test="@name='last_transmit'">
                                            <xsl:value-of select="self::field"/>
                                            <xsl:text>GMT,</xsl:text>
                                        </xsl:if>
                                        <xsl:if test="@name='lat_dd'">
                                            <xsl:value-of select="self::field"/>
                                            <xsl:text>,</xsl:text>
                                        </xsl:if>
                                        <xsl:if test="@name='long_dd'">
                                            <xsl:value-of select="self::field"/>
                                            <xsl:text>,</xsl:text>
                                        </xsl:if>
                                    </xsl:for-each>
                                    <xsl:for-each select="field">
                                        <xsl:if test="(@name='first_good_data') or (@name='last_good_data') or (@name='last_detect') or (@name='alert_expires') or (@name='last_transmit')">
                                            <xsl:value-of select="self::field"/>
                                            <xsl:text>GMT,</xsl:text>
                                        </xsl:if>
                                        <xsl:if test="(@name='last_voltage') or (@name='last_temp_f') or (@name='n_all_clips') or (@name='n_good_clips') or (@name='n_dets_24_hours') or (@name='n_bad_clips') or (@name='n_new_clips') or (@name='n_crap_dats') or (@name='n_good_dats') or (@name='Notes')">
                                            <xsl:value-of select="self::field"/>
                                            <xsl:text>,</xsl:text>
                                        </xsl:if>
                                        <xsl:if test="@name='zone_id'">
                                            <xsl:value-of select="self::field"/>
                                        </xsl:if>
                                    </xsl:for-each><xsl:text>
                        </xsl:text>
                                </swe:values><xsl:text>
                        </xsl:text>
                            </swe:DataArray><xsl:text>
                        </xsl:text>
                        </odpx:ResultAnyData><xsl:text>
                        </xsl:text>
                    </odpx:ResultTimeSeries><xsl:text>
                        </xsl:text>
                </odpx:Result><xsl:text>
                        </xsl:text>
            </odpx:Activity><xsl:text>
            </xsl:text>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>
