1*1212f9a0SAndroid Build Coastguard Worker<?xml version="1.0"?> 2*1212f9a0SAndroid Build Coastguard Worker<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 3*1212f9a0SAndroid Build Coastguard Worker 4*1212f9a0SAndroid Build Coastguard Worker <!-- FileName: reluri11 --> 5*1212f9a0SAndroid Build Coastguard Worker <!-- Document: http://www.w3.org/TR/xslt --> 6*1212f9a0SAndroid Build Coastguard Worker <!-- DocVersion: 19991116 --> 7*1212f9a0SAndroid Build Coastguard Worker <!-- Section: 12.1 Multiple Source Documents --> 8*1212f9a0SAndroid Build Coastguard Worker <!-- Creator: Myriam Midy --> 9*1212f9a0SAndroid Build Coastguard Worker <!-- Purpose: Testing how a relative URI specified in document() is resolved by default. --> 10*1212f9a0SAndroid Build Coastguard Worker <!-- Elaboration: "If the second argument [to document()] is omitted, 11*1212f9a0SAndroid Build Coastguard Worker then it [the base URI for resolving the relative URI] defaults to 12*1212f9a0SAndroid Build Coastguard Worker the node in the stylesheet that contains the expression 13*1212f9a0SAndroid Build Coastguard Worker that includes the call to the document function." The inner call to document, using 14*1212f9a0SAndroid Build Coastguard Worker a filename argument rather than a node-set, opens the designated file and gets a node-set 15*1212f9a0SAndroid Build Coastguard Worker whose base is that file (or the directory containing it). Further pathing within the 16*1212f9a0SAndroid Build Coastguard Worker node-set results in a filename element that contains "level3/xreluri09a.xml" as text. 17*1212f9a0SAndroid Build Coastguard Worker The outer call to document() is getting a node-set with a base URI that is not the same as 18*1212f9a0SAndroid Build Coastguard Worker this stylesheet nor the reluri11.xml supplied as an argument. Thus, the relative path 19*1212f9a0SAndroid Build Coastguard Worker beginning with level3/... (from the inner document call) can only be resolved if 20*1212f9a0SAndroid Build Coastguard Worker the outer document() call obtained the base URI of the node-set it was passed as 21*1212f9a0SAndroid Build Coastguard Worker its (one) argument. The node-set derived from the file named by the filename has the 22*1212f9a0SAndroid Build Coastguard Worker necessary 'body' element. --> 23*1212f9a0SAndroid Build Coastguard Worker 24*1212f9a0SAndroid Build Coastguard Worker<xsl:output method="xml" indent="yes"/> 25*1212f9a0SAndroid Build Coastguard Worker 26*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="doc"> 27*1212f9a0SAndroid Build Coastguard Worker <out> 28*1212f9a0SAndroid Build Coastguard Worker <xsl:copy-of select="document(document('level1/level2/xreluri11b.xml')/*/filename)/*/body"/> 29*1212f9a0SAndroid Build Coastguard Worker </out> 30*1212f9a0SAndroid Build Coastguard Worker</xsl:template> 31*1212f9a0SAndroid Build Coastguard Worker 32*1212f9a0SAndroid Build Coastguard Worker 33*1212f9a0SAndroid Build Coastguard Worker <!-- 34*1212f9a0SAndroid Build Coastguard Worker * Licensed to the Apache Software Foundation (ASF) under one 35*1212f9a0SAndroid Build Coastguard Worker * or more contributor license agreements. See the NOTICE file 36*1212f9a0SAndroid Build Coastguard Worker * distributed with this work for additional information 37*1212f9a0SAndroid Build Coastguard Worker * regarding copyright ownership. The ASF licenses this file 38*1212f9a0SAndroid Build Coastguard Worker * to you under the Apache License, Version 2.0 (the "License"); 39*1212f9a0SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 40*1212f9a0SAndroid Build Coastguard Worker * You may obtain a copy of the License at 41*1212f9a0SAndroid Build Coastguard Worker * 42*1212f9a0SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 43*1212f9a0SAndroid Build Coastguard Worker * 44*1212f9a0SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 45*1212f9a0SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 46*1212f9a0SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 47*1212f9a0SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 48*1212f9a0SAndroid Build Coastguard Worker * limitations under the License. 49*1212f9a0SAndroid Build Coastguard Worker --> 50*1212f9a0SAndroid Build Coastguard Worker 51*1212f9a0SAndroid Build Coastguard Worker</xsl:stylesheet> 52