Current File : //opt/RZphp72/includes/www/pear.php.net/public_html/dtd/package1_0to2_0.xsl |
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="fo">
<xsl:output method="xml" encoding="UTF-8" version="1.0"/>
<xsl:variable name="bundle"/>
<xsl:template match="/">
<xsl:text>
</xsl:text>
<xsl:apply-templates select="/package"/>
</xsl:template>
<xsl:template match="package">
<package version="2.0">
<xsl:attribute name="xsi:schemaLocation">http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd</xsl:attribute>
<xsl:text>
</xsl:text>
<name channel="pear">
<xsl:value-of select="/package/name"/>
</name>
<xsl:text>
</xsl:text>
<summary>
<xsl:value-of select="/package/summary"/>
</summary>
<xsl:text>
</xsl:text>
<description>
<xsl:value-of select="/package/description"/>
</description>
<xsl:apply-templates select="maintainers"/>
<xsl:text>
</xsl:text>
<date>
<xsl:value-of select="release/date"/>T00:00:00Z</date>
<xsl:text>
</xsl:text>
<xsl:element name="version">
<xsl:attribute name="api">1.0</xsl:attribute>
<xsl:attribute name="package"><xsl:value-of select="release/version"/></xsl:attribute>
</xsl:element>
<xsl:text>
</xsl:text>
<xsl:apply-templates select="release/license"/>
<xsl:if test="boolean(release/license)=false">
<xsl:apply-templates select="/package/license"/>
</xsl:if>
<xsl:text>
</xsl:text>
<xsl:element name="stability">
<xsl:attribute name="api"><xsl:value-of select="release/state"/></xsl:attribute>
<xsl:attribute name="package"><xsl:value-of select="release/state"/></xsl:attribute>
</xsl:element>
<xsl:text>
</xsl:text>
<notes>
<xsl:value-of select="release/notes"/>
</notes>
<xsl:text>
</xsl:text>
<xsl:call-template name="bundle"/>
<xsl:text>
</xsl:text>
<filelist>
<xsl:text>
</xsl:text>
<xsl:element name="dir">
<xsl:attribute name="name">/</xsl:attribute>
<xsl:if test="release/filelist/dir[1]/@baseinstalldir">
<xsl:attribute name="baseinstalldir"><xsl:value-of select="release/filelist/dir[1]/@baseinstalldir"/></xsl:attribute>
</xsl:if>
<xsl:choose>
<xsl:when test="release/filelist/dir[1]/@name='/'">
<xsl:call-template name="dircontents">
<xsl:with-param name="contents" select="release/filelist/dir[1]"/>
<xsl:with-param name="indent" select="concat(' ', ' ')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="dircontents">
<xsl:with-param name="contents" select="release/filelist"/>
<xsl:with-param name="indent" select="concat(' ', ' ')"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
<xsl:text>
</xsl:text>
</xsl:element>
<xsl:text>
</xsl:text>
</filelist>
<xsl:text>
</xsl:text>
<php>
<xsl:text>
</xsl:text>
<dependencies>
<xsl:if test="boolean(release/deps/dep[@type='php'])=false">
<xsl:text>
</xsl:text>
<xsl:element name="php">
<xsl:attribute name="min">4.0</xsl:attribute>
<xsl:attribute name="recommended">4.3.9</xsl:attribute>
</xsl:element>
</xsl:if>
<xsl:apply-templates select="release/deps"/>
<xsl:text>
</xsl:text>
</dependencies>
<xsl:text>
</xsl:text>
</php>
<xsl:text>
</xsl:text>
</package>
</xsl:template>
<xsl:template match="maintainers">
<xsl:for-each select="maintainer">
<xsl:sort select="user"/>
<xsl:if test="role='lead'">
<xsl:text>
</xsl:text>
<xsl:element name="lead">
<xsl:attribute name="user"><xsl:value-of select="user"/></xsl:attribute>
<xsl:attribute name="name"><xsl:value-of select="name"/></xsl:attribute>
<xsl:attribute name="email"><xsl:value-of select="email"/></xsl:attribute>
<xsl:attribute name="active">yes</xsl:attribute>
</xsl:element>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="maintainer">
<xsl:sort select="user"/>
<xsl:if test="role!='lead'">
<xsl:text>
</xsl:text>
<xsl:element name="maintainer">
<xsl:attribute name="role"><xsl:value-of select="role"/></xsl:attribute>
<xsl:attribute name="user"><xsl:value-of select="user"/></xsl:attribute>
<xsl:attribute name="name"><xsl:value-of select="name"/></xsl:attribute>
<xsl:attribute name="email"><xsl:value-of select="email"/></xsl:attribute>
<xsl:attribute name="active">yes</xsl:attribute>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match="license">
<xsl:element name="license">
<xsl:choose>
<xsl:when test=".='PHP License'">
<xsl:attribute name="uri">http://www.php.net/license/3_00.txt</xsl:attribute>
</xsl:when>
<xsl:when test=".='lgpl'">
<xsl:attribute name="uri">http://www.gnu.org/copyleft/lesser.html</xsl:attribute>
</xsl:when>
<xsl:when test=".='LGPL'">
<xsl:attribute name="uri">http://www.gnu.org/copyleft/lesser.html</xsl:attribute>
</xsl:when>
<xsl:when test=".='BSD'">
<xsl:attribute name="uri">http://www.opensource.org/licenses/bsd-license.php</xsl:attribute>
</xsl:when>
<xsl:when test=".='MIT'">
<xsl:attribute name="uri">http://www.opensource.org/licenses/mit-license.php</xsl:attribute>
</xsl:when>
<xsl:when test=".='GPL'">
<xsl:attribute name="uri">http://www.gnu.org/copyleft/gpl.html</xsl:attribute>
</xsl:when>
<xsl:when test=".='Apache'">
<xsl:attribute name="uri">http://www.opensource.org/licenses/apache2.0.php</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="uri">http://www.example.com</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
<xsl:template name="bundle">
<xsl:if test="release/deps/dep[@type='pkg' and (@optional='no' or boolean(@optional)=false)]">
<bundle name="default">
<xsl:for-each select="release/deps/dep[@type='pkg' and (@optional='no' or boolean(@optional)=false)]">
<xsl:text>
</xsl:text>
<xsl:element name="package">
<xsl:attribute name="channel">pear</xsl:attribute>
<xsl:attribute name="name"><xsl:value-of select="."/></xsl:attribute>
<xsl:if test="@rel='ge' or @rel='le'">
<xsl:attribute name="recommended"><xsl:value-of select="@version"/></xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:for-each>
<xsl:text>
</xsl:text>
</bundle>
</xsl:if>
</xsl:template>
<xsl:template name="filelist">
<xsl:param name="dir"/>
<xsl:param name="indent"/>
<xsl:param name="role"/>
<xsl:for-each select="$dir">
<xsl:sort select="@name"/>
<xsl:choose>
<xsl:when test="@name!='/'">
<xsl:text>
</xsl:text>
<xsl:value-of select="$indent"/>
<xsl:element name="dir">
<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
<xsl:if test="@baseinstalldir">
<xsl:attribute name="baseinstalldir"><xsl:value-of select="@baseinstalldir"/></xsl:attribute>
</xsl:if>
<xsl:call-template name="dircontents">
<xsl:with-param name="contents" select="."/>
<xsl:with-param name="role" select="@role"/>
<xsl:with-param name="indent" select="concat($indent, ' ')"/>
</xsl:call-template>
<xsl:text>
</xsl:text>
<xsl:value-of select="$indent"/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="dircontents">
<xsl:with-param name="contents" select="."/>
<xsl:with-param name="role" select="@role"/>
<xsl:with-param name="indent" select="concat($indent, ' ')"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template name="files">
<xsl:param name="files"/>
<xsl:param name="indent"/>
<xsl:param name="role"/>
<xsl:for-each select="$files">
<xsl:sort select="@name"/>
<xsl:text>
</xsl:text>
<xsl:value-of select="$indent"/>
<xsl:element name="file">
<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
<xsl:if test="boolean(@role)=false">
<xsl:if test="$role">
<xsl:attribute name="role"><xsl:value-of select="$role"/></xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="@role">
<xsl:attribute name="role"><xsl:value-of select="@role"/></xsl:attribute>
</xsl:if>
<xsl:if test="@install-as">
<xsl:attribute name="install-as"><xsl:value-of select="@install-as"/></xsl:attribute>
</xsl:if>
<xsl:if test="@imd5sum">
<xsl:attribute name="md5sum"><xsl:value-of select="@md5sum"/></xsl:attribute>
</xsl:if>
<xsl:if test="@platform">
<xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
</xsl:if>
<xsl:if test="replace">
<xsl:for-each select="replace">
<xsl:text>
</xsl:text>
<xsl:value-of select="concat($indent, ' ')"/>
<xsl:element name="tasks:replace">
<xsl:attribute name="from"><xsl:value-of select="@from"/></xsl:attribute>
<xsl:attribute name="to"><xsl:value-of select="@to"/></xsl:attribute>
<xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
</xsl:element>
</xsl:for-each>
<xsl:text>
</xsl:text>
<xsl:value-of select="$indent"/>
</xsl:if>
</xsl:element>
</xsl:for-each>
</xsl:template>
<xsl:template name="dircontents">
<xsl:param name="contents"/>
<xsl:param name="indent"/>
<xsl:param name="role"/>
<xsl:call-template name="filelist">
<xsl:with-param name="dir" select="$contents/dir"/>
<xsl:with-param name="indent" select="$indent"/>
<xsl:with-param name="role" select="$role"/>
</xsl:call-template>
<xsl:call-template name="files">
<xsl:with-param name="files" select="$contents/file"/>
<xsl:with-param name="indent" select="$indent"/>
<xsl:with-param name="role" select="$role"/>
</xsl:call-template>
</xsl:template>
<xsl:template match="deps">
<xsl:apply-templates select="dep[@type='php']"/>
<xsl:apply-templates select="dep[@type='pkg']"/>
<xsl:apply-templates select="dep[@type='ext']"/>
<xsl:apply-templates select="dep[@type='sapi']"/>
<xsl:apply-templates select="dep[@type='os']"/>
</xsl:template>
<xsl:template match="dep[@type='php']">
<xsl:for-each select=".">
<xsl:if test="@rel='ge'">
<xsl:text>
</xsl:text>
<xsl:element name="php">
<xsl:attribute name="min"><xsl:value-of select="@version"/></xsl:attribute>
<xsl:attribute name="recommended"><xsl:value-of select="@version"/></xsl:attribute>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match="dep[@type='pkg']">
<xsl:for-each select=".">
<xsl:text>
</xsl:text>
<xsl:element name="package">
<xsl:attribute name="channel">pear</xsl:attribute>
<xsl:attribute name="name"><xsl:value-of select="."/></xsl:attribute>
<xsl:if test="@optional='yes'">
<xsl:attribute name="optional"><xsl:value-of select="@optional"/></xsl:attribute>
</xsl:if>
<xsl:if test="@rel='ge'">
<xsl:attribute name="min"><xsl:value-of select="@version"/></xsl:attribute>
<xsl:attribute name="recommended"><xsl:value-of select="@version"/></xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:for-each>
</xsl:template>
<xsl:template match="dep[@type='ext']">
<xsl:for-each select=".">
<xsl:text>
</xsl:text>
<xsl:element name="extension">
<xsl:attribute name="name"><xsl:value-of select="."/></xsl:attribute>
<xsl:if test="@optional">
<xsl:attribute name="optional"><xsl:value-of select="@optional"/></xsl:attribute>
</xsl:if>
<xsl:if test="@rel='ge'">
<xsl:attribute name="min"><xsl:value-of select="@version"/></xsl:attribute>
<xsl:attribute name="recommended"><xsl:value-of select="@version"/></xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:for-each>
</xsl:template>
<xsl:template match="dep[@type='sapi']">
<xsl:for-each select=".">
<xsl:text>
</xsl:text>
<xsl:element name="sapi">
<xsl:attribute name="name"><xsl:value-of select="."/></xsl:attribute>
<xsl:if test="@optional">
<xsl:attribute name="optional"><xsl:value-of select="@optional"/></xsl:attribute>
</xsl:if>
<xsl:if test="@rel='ge'">
<xsl:attribute name="min"><xsl:value-of select="@version"/></xsl:attribute>
<xsl:attribute name="recommended"><xsl:value-of select="@version"/></xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:for-each>
</xsl:template>
<xsl:template match="dep[@type='os']">
<xsl:for-each select=".">
<xsl:text>
</xsl:text>
<xsl:element name="os">
<xsl:attribute name="name"><xsl:value-of select="."/></xsl:attribute>
<xsl:if test="@optional">
<xsl:attribute name="optional"><xsl:value-of select="@optional"/></xsl:attribute>
</xsl:if>
<xsl:if test="@rel='ge'">
<xsl:attribute name="min"><xsl:value-of select="@version"/></xsl:attribute>
<xsl:attribute name="recommended"><xsl:value-of select="@version"/></xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>