1*1212f9a0SAndroid Build Coastguard Worker<?xml version="1.0"?> 2*1212f9a0SAndroid Build Coastguard Worker<!--Namespaces are global if you set them in the stylesheet element--> 3*1212f9a0SAndroid Build Coastguard Worker<xsl:stylesheet 4*1212f9a0SAndroid Build Coastguard Worker xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 5*1212f9a0SAndroid Build Coastguard Worker version="1.0" 6*1212f9a0SAndroid Build Coastguard Worker xmlns:lxslt="http://xml.apache.org/xslt" 7*1212f9a0SAndroid Build Coastguard Worker xmlns:my-ext="ext2" 8*1212f9a0SAndroid Build Coastguard Worker extension-element-prefixes="my-ext"> 9*1212f9a0SAndroid Build Coastguard Worker 10*1212f9a0SAndroid Build Coastguard Worker<!-- Copied from: java/samples/extensions/5-numlistJscript.xsl --> 11*1212f9a0SAndroid Build Coastguard Worker 12*1212f9a0SAndroid Build Coastguard Worker <!--The component and its script are in the lxslt namespace and define the implementation--> 13*1212f9a0SAndroid Build Coastguard Worker <lxslt:component prefix="my-ext" elements="timelapse" functions="getdate"> 14*1212f9a0SAndroid Build Coastguard Worker <lxslt:script lang="javascript"> 15*1212f9a0SAndroid Build Coastguard Worker var multiplier=1; 16*1212f9a0SAndroid Build Coastguard Worker // Extension element implementations always take two arguments. The first 17*1212f9a0SAndroid Build Coastguard Worker // argument is the XSL Processor context; the second argument is the element. 18*1212f9a0SAndroid Build Coastguard Worker function timelapse(xslProcessorContext, elem) 19*1212f9a0SAndroid Build Coastguard Worker { 20*1212f9a0SAndroid Build Coastguard Worker multiplier=parseInt(elem.getAttribute("multiplier")); 21*1212f9a0SAndroid Build Coastguard Worker // The element return value is placed in the result tree. 22*1212f9a0SAndroid Build Coastguard Worker // If you do not want a return value, return null. 23*1212f9a0SAndroid Build Coastguard Worker return null; 24*1212f9a0SAndroid Build Coastguard Worker } 25*1212f9a0SAndroid Build Coastguard Worker function getdate(numdays) 26*1212f9a0SAndroid Build Coastguard Worker { 27*1212f9a0SAndroid Build Coastguard Worker // Use a constant date so test output is determinate 28*1212f9a0SAndroid Build Coastguard Worker var d = new Date(2001, 8, 5); 29*1212f9a0SAndroid Build Coastguard Worker d.setDate(d.getDate() + parseInt(numdays*multiplier)); 30*1212f9a0SAndroid Build Coastguard Worker return d.toLocaleString(); 31*1212f9a0SAndroid Build Coastguard Worker } 32*1212f9a0SAndroid Build Coastguard Worker </lxslt:script> 33*1212f9a0SAndroid Build Coastguard Worker </lxslt:component> 34*1212f9a0SAndroid Build Coastguard Worker 35*1212f9a0SAndroid Build Coastguard Worker <xsl:template match="deadline"> 36*1212f9a0SAndroid Build Coastguard Worker <out> 37*1212f9a0SAndroid Build Coastguard Worker <p><my-ext:timelapse multiplier="2"/>We have received your enquiry and will 38*1212f9a0SAndroid Build Coastguard Worker respond by <xsl:value-of select="my-ext:getdate(string(@numdays))"/></p> 39*1212f9a0SAndroid Build Coastguard Worker </out> 40*1212f9a0SAndroid Build Coastguard Worker </xsl:template> 41*1212f9a0SAndroid Build Coastguard Worker 42*1212f9a0SAndroid Build Coastguard Worker 43*1212f9a0SAndroid Build Coastguard Worker <!-- 44*1212f9a0SAndroid Build Coastguard Worker * Licensed to the Apache Software Foundation (ASF) under one 45*1212f9a0SAndroid Build Coastguard Worker * or more contributor license agreements. See the NOTICE file 46*1212f9a0SAndroid Build Coastguard Worker * distributed with this work for additional information 47*1212f9a0SAndroid Build Coastguard Worker * regarding copyright ownership. The ASF licenses this file 48*1212f9a0SAndroid Build Coastguard Worker * to you under the Apache License, Version 2.0 (the "License"); 49*1212f9a0SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 50*1212f9a0SAndroid Build Coastguard Worker * You may obtain a copy of the License at 51*1212f9a0SAndroid Build Coastguard Worker * 52*1212f9a0SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 53*1212f9a0SAndroid Build Coastguard Worker * 54*1212f9a0SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 55*1212f9a0SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 56*1212f9a0SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 57*1212f9a0SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 58*1212f9a0SAndroid Build Coastguard Worker * limitations under the License. 59*1212f9a0SAndroid Build Coastguard Worker --> 60*1212f9a0SAndroid Build Coastguard Worker 61*1212f9a0SAndroid Build Coastguard Worker</xsl:stylesheet> 62