| <!-- |
| Connection Manager |
| |
| Copyright (C) 2011 The Chromium OS Authors. All rights reserved. |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License version 2 as |
| published by the Free Software Foundation. |
| |
| 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 |
| --> |
| |
| <!-- |
| Generate an easy-to-parse table of APN's from |
| the mobile providers database |
| --> |
| |
| <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> |
| <xsl:strip-space elements="country"/> |
| |
| <xsl:template match="provider"> |
| <xsl:if test="count(gsm[*])!=0"> |
| provider:<xsl:value-of select="count(name)"/>,<xsl:value-of select="count(gsm/apn)"/>,<xsl:choose> |
| <xsl:when test="@primary='true'">1</xsl:when><xsl:otherwise>0</xsl:otherwise> |
| </xsl:choose>,<xsl:choose> |
| <xsl:when test="@roaming-required='true'">1</xsl:when><xsl:otherwise>0</xsl:otherwise> |
| </xsl:choose> |
| <xsl:apply-templates select="name"/><xsl:apply-templates select="gsm"/> |
| </xsl:if> |
| </xsl:template> |
| |
| <xsl:template match="name"> |
| name:<xsl:value-of select="@xml:lang"/>,<xsl:value-of select="."/> |
| </xsl:template> |
| |
| <xsl:template match="gsm"> |
| networks:<xsl:apply-templates select="network-id"/> |
| <xsl:apply-templates select="apn"/></xsl:template> |
| |
| <xsl:template match="network-id"><xsl:value-of select="@mcc"/><xsl:value-of select="@mnc"/><xsl:if test="position()!=last()">,</xsl:if></xsl:template> |
| |
| <xsl:template match="apn"> |
| apn:<xsl:value-of select="count(name)"/>,<xsl:value-of select="@value"/>,<xsl:value-of select="username"/>,<xsl:value-of select="password"/> |
| <xsl:apply-templates select="name"/> |
| </xsl:template> |
| |
| <xsl:output method="text" indent="no" encoding="utf-8" |
| omit-xml-declaration="yes"/> |
| |
| <xsl:template match="/serviceproviders"># Generated file -- Do not edit |
| # |
| # This file starts with the line |
| # |
| # serviceproviders:<xsl:value-of select="@format"/> |
| # |
| # The rest of the file is divided into country blocks, each of which |
| # is of the form |
| # |
| # country:xx |
| # <provider block 1> |
| # <provider block 2> |
| # . . . |
| # <provider block N> |
| # |
| # where xx is the two character ISO country code. |
| # |
| # Each provider block is of the form |
| # |
| # provider:<# of names>,<# of APNs>,<primary> |
| # name:<lang>,<name 1> |
| # name:<lang>,<name 2> |
| # . . . |
| # networks:NNNNNN,NNNNNN,... |
| # apn:<# of descriptive names>,<value>,<username>,<password> |
| # name:<lang>,<desciptive name 1> |
| # name:<lang>,<desciptive name 2> |
| # . . . |
| # apn:<# of descriptive names>,<value>,<username>,<password> |
| # . . . |
| # |
| # where each NNNNNN is the five or six digit string constructed by |
| # concatenating the three-digit MCC (Mobile Country Code) and two- |
| # or three-digit MNC (Mobile Network Code), and where the <username> |
| # and <password> fields may be empty. Each 'name' entry for both |
| # providers and APNs, has an optional language attribute that can |
| # be used to choose a localized name to display to the user, based |
| # on the current locale. The language tags are in the format defined |
| # by RFC 5646. |
| # |
| serviceproviders:<xsl:value-of select="@format"/> |
| <xsl:text> |
| </xsl:text> |
| <xsl:for-each select="./country">country:<xsl:value-of select="@code"/> |
| <xsl:apply-templates/><xsl:text> |
| </xsl:text> |
| </xsl:for-each> |
| </xsl:template> |
| </xsl:stylesheet> |
| |
| <!-- vim:set sw=2 sts=2 et: --> |