home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2004 January
/
PCWorld_2004-01_cd.bin
/
akce
/
openoffice
/
f0_001
/
user_registry.xsl
Wrap
Extensible Markup Language
|
2003-05-27
|
6KB
|
158 lines
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:cfg="http://openoffice.org/2000/registry/instance" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" cfg:package="org.openoffice.Office" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xmlns="http://www.w3.org/2001/XMLSchema">
<xsl:output encoding="UTF-8"/>
<xsl:template match="/*">
<xsl:element name="oor:component-data">
<xsl:call-template name="component-attribs"/>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="/*//*">
<xsl:choose>
<xsl:when test="(count(@cfg:type) and @cfg:type!='set') or @xsi:null='true'">
<xsl:call-template name="prop-element"/>
</xsl:when>
<xsl:when test="name()='cfg:value'">
<xsl:call-template name="value-element"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="node-element"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="component-attribs">
<xsl:attribute name="xmlns:oor">http://openoffice.org/2001/registry</xsl:attribute>
<xsl:attribute name="xmlns:xs">http://www.w3.org/2001/XMLSchema</xsl:attribute>
<xsl:attribute name="xmlns:xsi">http://www.w3.org/2001/XMLSchema-instance</xsl:attribute>
<xsl:attribute name="oor:name">
<xsl:choose>
<xsl:when test="@cfg:name!=''">
<xsl:value-of select="@cfg:name"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="local-name()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="oor:package">
<xsl:value-of select="@cfg:package"/>
</xsl:attribute>
</xsl:template>
<xsl:template name="node-element">
<xsl:element name="node">
<xsl:call-template name="node-attribs"/>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template name="node-attribs">
<xsl:attribute name="oor:name">
<xsl:choose>
<xsl:when test="@cfg:name!=''">
<xsl:value-of select="@cfg:name"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="local-name()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:choose>
<xsl:when test="@state='deleted'">
<xsl:attribute name="oor:op">remove</xsl:attribute>
</xsl:when>
<xsl:when test="@state='default'">
<xsl:attribute name="oor:op">reset</xsl:attribute>
</xsl:when>
<xsl:when test="@state='replaced' or (../@cfg:element-type!='' and ancestor::*/@state='replaced')">
<xsl:attribute name="oor:op">replace</xsl:attribute>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
<xsl:template name="prop-element">
<xsl:element name="prop">
<xsl:call-template name="prop-attribs"/>
<xsl:choose>
<xsl:when test="cfg:value">
<xsl:apply-templates select="cfg:value"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="value-element"/>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:template>
<xsl:template name="prop-attribs">
<xsl:attribute name="oor:name">
<xsl:choose>
<xsl:when test="@cfg:name!=''">
<xsl:value-of select="@cfg:name"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="local-name()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:choose>
<xsl:when test="@state='deleted'">
<xsl:attribute name="oor:op">remove</xsl:attribute>
</xsl:when>
<xsl:when test="@state='default'">
<xsl:attribute name="oor:op">reset</xsl:attribute>
</xsl:when>
<xsl:when test="@state='replaced' or ../@cfg:element-type!=''">
<xsl:attribute name="oor:op">replace</xsl:attribute>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
<xsl:if test="@cfg:type!=''">
<xsl:choose>
<xsl:when test="@cfg:type='binary'">
<xsl:choose>
<xsl:when test="@cfg:derivedBy='list'">
<xsl:attribute name="oor:type">oor:hexBinary-list</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="oor:type">xs:hexBinary</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="@cfg:derivedBy='list'">
<xsl:attribute name="oor:type">oor:<xsl:value-of select="@cfg:type"/>-list</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="oor:type">xs:<xsl:value-of select="@cfg:type"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<xsl:template name="value-element">
<xsl:element name="value">
<xsl:if test="@xml:lang!=''">
<xsl:attribute name="xml:lang"><xsl:value-of select="@xml:lang"/></xsl:attribute>
</xsl:if>
<xsl:choose>
<xsl:when test="@xsi:null = 'true'">
<xsl:attribute name="xsi:nil">true</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:template>
</xsl:stylesheet>