<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
	
	<xsl:template match="/">
		<geodatabase>
			<featureclasses>
				<xsl:for-each select="//DataElement[@xsi:type='esri:DEFeatureClass']">
					<xsl:sort select="./Name"/>
					<!--<xsl:call-template name="FeatureClass"/>-->
					<featureclass>
						<xsl:attribute name="name" select="./Name"/>
						<fields>
							<xsl:for-each select="./Fields/FieldArray/Field">
								<xsl:sort select="./Name"/>
								<xsl:call-template name="ClassFields"/>
							</xsl:for-each>
						</fields>
					</featureclass>
					</xsl:for-each>
			</featureclasses>
			<!-- Tables -->		
			<tables>
			<xsl:for-each select="//DataElement[@xsi:type='esri:DETable']">
					<xsl:sort select="./Name"/>
					<!--<xsl:call-template name="FeatureClass"/>-->
					<objectclass>
						<xsl:attribute name="name" select="./Name"/>
						<fields>
							<xsl:for-each select="./Fields/FieldArray/Field">
								<xsl:sort select="./Name"/>
								<xsl:call-template name="ClassFields"/>
							</xsl:for-each>
						</fields>
					</objectclass>
					</xsl:for-each>
			</tables>
		</geodatabase>
	</xsl:template>
	

	<!-- Basic Field Info -->
	<xsl:template name="ClassFields">
		<field>
			<xsl:attribute name="name" select="./Name"/>
			<xsl:attribute name="type" select="./Type"/>
			<xsl:attribute name="length" select="./Length"/>
			<xsl:attribute name="type" select="./Type"/>
			<!-- Domains -->
			<xsl:for-each select="./Domain">
				<!--<xsl:call-template name="FeatureClassFieldDomain"/>-->
				<xsl:attribute name="domain" select="./DomainName"/>
			</xsl:for-each>
		</field>
	</xsl:template>
	
</xsl:stylesheet>
