[Home] [By Thread] [By Date] [Recent Entries]
Hi Gannon,
As a possible first draft, this is just a primitive "quick and dirty" HTML bullet list summary of your rdf file (http://www.dnaos.com/samples.html), which I just put up as a temporary dummy page, for discussion and consideration. What else did you have in mind? Note that based solely on your rdf file content, this drops non-members (e.g. "High Seas") but would support more trade groups. The main template I used is <xsl:template match="dct:coverage"> <p class="left"> Trade Groups<br/> <xsl:variable name="world" select="."/> <ul class="grp"> <xsl:for-each select="distinct-values(admin1/@rdfs:label)"> <xsl:variable name="trade-group" select="$world/admin1[@rdfs:label eq current()][1]"/> <xsl:variable name="trade-group-id" select="substring($trade-group/@dcam:memberOf, 2)"/> <xsl:variable name="countries" select="(distinct-values($world/admin1[@rdfs:label eq current()]/admin2[string(dbp:Seat_of_Government/dct:title[@xml:lang eq 'en'])]/@rdfs:label))"/> <li class="src"><b><xsl:value-of select="$trade-group-id"/></b>: <xsl:value-of select="string-join((., $trade-group/@rdf:type, '::', string(count($countries)), 'Countries' ), ' ')"/></li> <ul class="grp"> <xsl:variable name="trade-group-name" select="."/> <xsl:for-each select="$countries"> <xsl:variable name="trading-country-name" select="."/> <xsl:variable name="trading-country-states" select="$world/admin1[@rdfs:label eq $trade-group-name][admin2/@rdfs:label eq current()]"/> <xsl:for-each select="$trading-country-states[1]"> <xsl:variable name="trading-country-id" select="substring(admin2/@dcam:memberOf, 2)"/> <xsl:variable name="membership" select="if (matches(dcam:memberOf, 'Full Member')) then 'Full' else if (matches(dcam:memberOf, 'Candidate Member')) then 'Candidate' else 'No'"/> <xsl:for-each select="admin2/dbp:Seat_of_Government"> <li class="src"><xsl:value-of select="concat($trading-country-name, ' (', $trading-country-id, '), ', if (string(dct:title[@xml:lang eq 'en'])) then concat(dct:title[@xml:lang eq 'en'], ', [lat:', geo:lat, ', lon:', geo:lon, ', ', dbp:UTC, '], ') else '', 'Member: ', $membership, ' :: ', string(count($trading-country-states)), ' States')"/></li> <ul class="grp"> <xsl:for-each select="$trading-country-states"> <xsl:for-each select="admin2/admin3"> <li class="src"><xsl:value-of select="concat(@rdfs:label, ' [', @dcam:memberOf, ']')"/></li> </xsl:for-each> </xsl:for-each> </ul> </xsl:for-each> </xsl:for-each> </xsl:for-each> </ul> </xsl:for-each> </ul> </p> </xsl:template> Regards, ac I'm trying to float an idea with the W3C eGOV IG and have an XML file begging for clever XSLT presentations.
|

Cart



