1<?xml version="1.0"?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://www.iana.org/assignments" xmlns="http://www.iana.org/assignments" xmlns:_="http://www.iana.org/assignments" xmlns:DEFAULT="http://www.iana.org/assignments" version="1.0">
3<xsl:output omit-xml-declaration="yes" indent="no" method="text"/>
4<xsl:template match="/a:registry[@id='cbor-tags']">struct CborTagDescription
5{
6    QCborTag tag;
7    const char *description;    // with space and parentheses
8};
9
10// <xsl:value-of select="a:registry/a:title"/>
11static const CborTagDescription tagDescriptions[] = {
12    // from https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml
13<xsl:for-each select="a:registry/a:record">
14    <xsl:sort select="a:value" data-type="number"/>
15        <xsl:if test="a:semantics != ''">
16            <xsl:call-template name="row"/>
17        </xsl:if>
18    </xsl:for-each>    { QCborTag(-1), nullptr }
19};
20</xsl:template>
21<xsl:template name="row">    { QCborTag(<xsl:value-of select="a:value"/>), " (<xsl:value-of select="a:semantics"/> <xsl:call-template name="xref"/>)" },
22</xsl:template>
23<xsl:template name="xref"><xsl:if test="a:xref/@type = 'rfc'"> [<xsl:value-of select="translate(a:xref/@data,'rfc','RFC')"/>]</xsl:if>
24</xsl:template>
25</xsl:stylesheet>
26