File: xrd2json.xsl

package info (click to toggle)
virtuoso-opensource 7.2.12%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 299,780 kB
  • sloc: ansic: 655,047; sql: 508,209; xml: 269,573; java: 84,064; javascript: 79,847; cpp: 37,662; sh: 32,429; cs: 25,702; php: 12,690; yacc: 11,661; lex: 7,933; makefile: 7,309; jsp: 4,523; awk: 1,719; perl: 1,013; ruby: 1,003; python: 326
file content (47 lines) | stat: -rw-r--r-- 2,034 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?xml version="1.0" ?>
<!--
 -
 -  $Id$
 -
 -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 -  project.
 -
 -  Copyright (C) 1998-2024 OpenLink Software
 -
 -  This project is free software; you can redistribute it and/or modify it
 -  under the terms of the GNU General Public License as published by the
 -  Free Software Foundation; only version 2 of the License, dated June 1991.
 -
 -  This program is distributed in the hope that it will be useful, but
 -  WITHOUT ANY WARRANTY; without even the implied warranty of
 -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 -  General Public License for more details.
 -
 -  You should have received a copy of the GNU General Public License along
 -  with this program; if not, write to the Free Software Foundation, Inc.,
 -  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 -
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" media-type="application/jrd+json"/>
    <xsl:variable name="uc">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
    <xsl:variable name="lc">abcdefghijklmnopqrstuvwxyz</xsl:variable>
    <xsl:template match="XRD">
        <xsl:text>{</xsl:text>
        <xsl:apply-templates select="Subject|Host|Alias"/>
        <xsl:text>"links":[</xsl:text>
        <xsl:for-each select="Link">
            <xsl:text>{</xsl:text>
            <xsl:for-each select="@*">"<xsl:value-of select="local-name(.)"/>":"<xsl:value-of select="."/>"<xsl:if test="position () != last ()">
         <xsl:text>,</xsl:text>
    </xsl:if></xsl:for-each>
    <xsl:text>}</xsl:text>
    <xsl:if test="position () != last ()"><xsl:text>,</xsl:text></xsl:if>
    </xsl:for-each>
    <xsl:text>]}</xsl:text>
    </xsl:template>
    <xsl:template match="Subject|Host|Alias">
        <xsl:text>"</xsl:text><xsl:value-of select="translate (local-name(.), $uc, $lc)"/><xsl:text>":"</xsl:text>
        <xsl:value-of select="."/><xsl:text>",</xsl:text>
    </xsl:template>
</xsl:stylesheet>