1*cdf0e10cSrcweir<?xml version="1.0" encoding="UTF-8"?> 2*cdf0e10cSrcweir<!--********************************************************************** 3*cdf0e10cSrcweir* 4*cdf0e10cSrcweir* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5*cdf0e10cSrcweir* 6*cdf0e10cSrcweir* Copyright 2000, 2010 Oracle and/or its affiliates. 7*cdf0e10cSrcweir* 8*cdf0e10cSrcweir* OpenOffice.org - a multi-platform office productivity suite 9*cdf0e10cSrcweir* 10*cdf0e10cSrcweir* This file is part of OpenOffice.org. 11*cdf0e10cSrcweir* 12*cdf0e10cSrcweir* OpenOffice.org is free software: you can redistribute it and/or modify 13*cdf0e10cSrcweir* it under the terms of the GNU Lesser General Public License version 3 14*cdf0e10cSrcweir* only, as published by the Free Software Foundation. 15*cdf0e10cSrcweir* 16*cdf0e10cSrcweir* OpenOffice.org is distributed in the hope that it will be useful, 17*cdf0e10cSrcweir* but WITHOUT ANY WARRANTY; without even the implied warranty of 18*cdf0e10cSrcweir* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19*cdf0e10cSrcweir* GNU Lesser General Public License version 3 for more details 20*cdf0e10cSrcweir* (a copy is included in the LICENSE file that accompanied this code). 21*cdf0e10cSrcweir* 22*cdf0e10cSrcweir* You should have received a copy of the GNU Lesser General Public License 23*cdf0e10cSrcweir* version 3 along with OpenOffice.org. If not, see 24*cdf0e10cSrcweir* <http://www.openoffice.org/license.html> 25*cdf0e10cSrcweir* for a copy of the LGPLv3 License. 26*cdf0e10cSrcweir* 27*cdf0e10cSrcweir**********************************************************************--> 28*cdf0e10cSrcweir 29*cdf0e10cSrcweir<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 30*cdf0e10cSrcweir xmlns:oor="http://openoffice.org/2001/registry"> 31*cdf0e10cSrcweir <xsl:param name="prefix"/> 32*cdf0e10cSrcweir <xsl:strip-space elements="*"/> 33*cdf0e10cSrcweir <xsl:preserve-space elements="value it"/> 34*cdf0e10cSrcweir <!-- TODO: strip space from "value" elements that have "it" children --> 35*cdf0e10cSrcweir <xsl:template match="/"> 36*cdf0e10cSrcweir <oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" 37*cdf0e10cSrcweir xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 38*cdf0e10cSrcweir <xsl:copy-of select="list/dependency"/> 39*cdf0e10cSrcweir<!-- 40*cdf0e10cSrcweir <xsl:copy-of select="document(list/filename)/oor:component-schema"/> 41*cdf0e10cSrcweir <xsl:copy-of select="document(list/filename)/oor:component-data"/> 42*cdf0e10cSrcweir 43*cdf0e10cSrcweir instead of the below for-each would only issue warnings, not errors, for 44*cdf0e10cSrcweir non-existing or otherwise bad input files; it is important that the input 45*cdf0e10cSrcweir filename list is already sorted in an order suitable for the configmgr 46*cdf0e10cSrcweir (e.g., xcs files preceeding xcu files). 47*cdf0e10cSrcweir--> 48*cdf0e10cSrcweir <xsl:for-each select="list/filename"> 49*cdf0e10cSrcweir <xsl:variable name="doc" select="document(concat($prefix, .))"/> 50*cdf0e10cSrcweir <xsl:choose> 51*cdf0e10cSrcweir <xsl:when test="count($doc/oor:component-schema) = 1"> 52*cdf0e10cSrcweir <xsl:apply-templates select="$doc/oor:component-schema"/> 53*cdf0e10cSrcweir </xsl:when> 54*cdf0e10cSrcweir <xsl:when test="count($doc/oor:component-data) = 1"> 55*cdf0e10cSrcweir <xsl:apply-templates select="$doc/oor:component-data"/> 56*cdf0e10cSrcweir </xsl:when> 57*cdf0e10cSrcweir <xsl:otherwise> 58*cdf0e10cSrcweir <xsl:message terminate="yes"> 59*cdf0e10cSrcweir <xsl:text>cannot process </xsl:text> 60*cdf0e10cSrcweir <xsl:value-of select="."/> 61*cdf0e10cSrcweir </xsl:message> 62*cdf0e10cSrcweir </xsl:otherwise> 63*cdf0e10cSrcweir </xsl:choose> 64*cdf0e10cSrcweir </xsl:for-each> 65*cdf0e10cSrcweir </oor:data> 66*cdf0e10cSrcweir </xsl:template> 67*cdf0e10cSrcweir <xsl:template 68*cdf0e10cSrcweir match="oor:component-schema|oor:component-data|templates|component|group| 69*cdf0e10cSrcweir set|node-ref|prop|item|value|it|unicode|node"> 70*cdf0e10cSrcweir <xsl:copy copy-namespaces="no"> 71*cdf0e10cSrcweir <!-- prune oor:component-data xmlns:install="..." namespaces (would only 72*cdf0e10cSrcweir work in XSLT 2.0, however) --> 73*cdf0e10cSrcweir <xsl:apply-templates select="@*"/> 74*cdf0e10cSrcweir <xsl:apply-templates/> 75*cdf0e10cSrcweir </xsl:copy> 76*cdf0e10cSrcweir </xsl:template> 77*cdf0e10cSrcweir <xsl:template match="value[it]"> 78*cdf0e10cSrcweir <xsl:copy copy-namespaces="no"> 79*cdf0e10cSrcweir <xsl:apply-templates select="@*"/> 80*cdf0e10cSrcweir <xsl:apply-templates select="*"/> 81*cdf0e10cSrcweir <!-- ignore text elements (which must be whitespace only) --> 82*cdf0e10cSrcweir </xsl:copy> 83*cdf0e10cSrcweir </xsl:template> 84*cdf0e10cSrcweir <xsl:template match="info|import|uses|constraints"/> 85*cdf0e10cSrcweir <!-- TODO: no longer strip elements when they are eventually read by 86*cdf0e10cSrcweir configmgr implementation --> 87*cdf0e10cSrcweir <xsl:template match="@*"> 88*cdf0e10cSrcweir <xsl:copy/> 89*cdf0e10cSrcweir </xsl:template> 90*cdf0e10cSrcweir</xsl:stylesheet> 91