<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl"
    xmlns:gfc="http://www.isotc211.org/2005/gfc" xmlns:gco="http://www.isotc211.org/2005/gco"
    xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:gml="http://www.opengis.net/gml/3.2" exclude-result-prefixes="xs xd" version="2.0">
    <xsl:import href="./UniversalUUIDTemplates.xsl"/>

    <xd:doc scope="stylesheet">
        <xd:desc>
            <xd:p><xd:b>Created on:</xd:b> May 21, 2014</xd:p>
            <xd:p><xd:b>Author:</xd:b> mccre004</xd:p>
            <xd:p/>
        </xd:desc>
    </xd:doc>

    <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
    <xsl:template match="/">
        <xsl:element name="MetaUUIDS">
            <xsl:for-each select="/dataroot/UnrepresentableDomain">
                <xsl:comment> The attribute Begins here!!!!!!!!!</xsl:comment>
                <xsl:element name="gfc:carrierOfCharacteristics">
                    <xsl:element name="gfc:FC_FeatureAttribute">

                        <xsl:element name="gfc:memberName">
                            <xsl:element name="gco:LocalName"><xsl:value-of select="./Attribute_Label"/> </xsl:element>
                        </xsl:element>
                        
                        <xsl:element name="gfc:definition">
                            <xsl:element name="gco:CharacterString"><xsl:value-of select="./Attribute_Definition"/></xsl:element>
                        </xsl:element>
                        
                        <xsl:call-template name="cardinality"/>
                        <xsl:call-template name="AttDefSource"/>
                         
                        <xsl:element name="gfc:listedValue">
                            <xsl:element name="gfc:FC_ListedValue">
                                <xsl:element name="gfc:label">
                                    <xsl:attribute name="gco:nilReason">inapplicable</xsl:attribute>
                                </xsl:element>
                                <xsl:element name="gfc:definition">
                                    <xsl:element name="gco:CharacterString"><xsl:value-of select="./Unrepresentable_Domain"/></xsl:element>
                                </xsl:element>
                            </xsl:element>
                        </xsl:element>
                         
                         
                         
                    </xsl:element>
                </xsl:element>

            </xsl:for-each>

        </xsl:element>
    </xsl:template>

    <xsl:template name="AttDefSource">
        <xsl:variable name="AttDefSor" select="./Attribute_Definition_Source"/>
        <xsl:choose>
            <xsl:when test="contains($AttDefSor,'U.S. Census Bureau')">
                <xsl:call-template name="Census"/>
            </xsl:when>
            <xsl:when test="contains($AttDefSor,'U.S. Postal Service')">
                <xsl:call-template name="USPS"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:element name="gfc:definitionReference">
                    <xsl:element name="gfc:FC_DefinitionSource">
                        <xsl:element name="gfc:source">
                            <xsl:element name="gmd:CI_Citation">
                                
                                <xsl:call-template name="gmdTitle"/>
                                <xsl:call-template name="gmdDate"/>
                                
                                
                                <xsl:element name="gmd:citedResponsibleParty">
                                    <xsl:element name="gmd:CI_ResponsibleParty">
                                        <xsl:element name="gmd:organisationName">
                                            <xsl:element name="gco:CharacterString"><xsl:value-of select="$AttDefSor"/></xsl:element>
                                        </xsl:element>
                                        <xsl:call-template name="gmdRole"/>
                                        
                                    </xsl:element>
                                </xsl:element>
                                
                            </xsl:element>
                        </xsl:element>
                    </xsl:element>
                    
                </xsl:element>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
</xsl:stylesheet>
