This is the mail archive of the
docbook-apps@lists.oasis-open.org
mailing list .
RFCs Bibliography für DocBook
- From: Jochen Hein <jochen at jochen dot org>
- To: docbook-apps at lists dot oasis-open dot org
- Date: Thu, 22 Aug 2002 20:39:16 +0200
- Subject: DOCBOOK-APPS: RFCs Bibliography für DocBook
Under http://xml.resource.org/ you can get the RFC bibliography in XML
format. Since I have some RFCs in my books bibliography I've written
some scripts to get the xml files and transform them into something
docbook like format. I think that might be useful for others, so her
it goes. First the script to get the files:
------------------- use axe here -------------------------
#!/bin/bash
> rfc-index.tmp
while read rfc ; do
echo "http://xml.resource.org/public/rfc/bibxml/reference.RFC.$rfc.xml" >> rfc-index.tmp
done << EOT
0768
0791
0792
0793
EOT
wget -O rfc-index.xml.tmp -i rfc-index.tmp
( echo "<references>";
sed -e "/<!DOCTYPE/d" \
-e "/<?xml/g" ;
echo "</references>" ) < rfc-index.xml.tmp > rfc-index.xml
exit
------------------- use axe here -------------------------
And now the XSL style to transform the result into Docbook (not yet
verified):
------------------- use axe here -------------------------
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml"
indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="references">
<bibliography>
<title>RFC-Verzeichnis</title>
<xsl:apply-templates/>
</bibliography>
</xsl:template>
<xsl:template match="reference">
<bibliomixed>
<xsl:attribute name="if">
<xsl:value-of select="translate(@anchor,'RFC','rfc')"/>
</xsl:attribute>
<xsl:apply-templates/>
</bibliomixed>
</xsl:template>
<xsl:template match="title">
<title><xsl:apply-templates/></title>,
</xsl:template>
<xsl:template name="process.author">
<xsl:choose>
<xsl:when test="@fullname!=''">
<xsl:value-of select="@fullname"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="organization"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="author[1]">
<author><othername><xsl:call-template name="process.author"/>
<xsl:for-each select="following-sibling::author">
<xsl:text>, </xsl:text>
<xsl:value-of select="@fullname"/>
</xsl:for-each>
</othername></author>,
</xsl:template>
<xsl:template match="date">
<pubdate>
<xsl:variable name="day">
<xsl:value-of select="@day"/>
</xsl:variable>
<xsl:if test="$day != ''">
<xsl:value-of select="@day"/>
<xsl:text>. </xsl:text>
</xsl:if>
<xsl:value-of select="@month"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@year"/>
</pubdate>.
</xsl:template>
<xsl:template match="abstract|organization|address"/>
</xsl:stylesheet>
------------------- use axe here -------------------------
Comments are welcome.
Jochen
--
#include <~/.signature>: permission denied