xsl-list
[Top] [All Lists]

Re: [xsl] including multiple files

2015-10-02 17:25:06
You need to write a transformation that generates the stylesheet containing the 
variable number of includes.

<xsl:namespace-alias stylesheet-prefix=“t” result-prefix=“xsl”/>
<xsl:template name=“gen-includes”>
  <t:stylesheet version=“2.0”>
  <xsl:for-each select=“uri-collection(‘some-dir?select=*.xsl’)”>
    <t:include href=“{.}”/>
  </xsl:for-each>
 </t:stylesheet>
</xsl:template>

Michael Kay
Saxonica

On 2 Oct 2015, at 23:15, Birnbaum, David J djbpitt(_at_)pitt(_dot_)edu 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Dear XSL-list,

I fear that this may be a blind spot, or perhaps just a Bad Idea, but I'm
developing an XSLT application that I'd like to modularize by creating a
series of smaller stylesheets that I can include with <xsl:include>. There
will eventually be several dozen of them, the exact inventory will change
over the course of development, and I didn't want to have to list them all
individually, with separate <xsl:include> statements for each one. I
thought it should be possible to simplify the process by putting all of
the subsidiary stylesheets into a subdirectory, addressing it from within
the main one with collection(), and iterating over the members of that
collection to pass the URL of each one to <xsl:include
href="somethingOrOther"/>. In this way, each time the transformation was
run, the main stylesheet would include whatever it found in the
subdirectory at run time.

I'm stumbling, though, because 1) <xsl:include> must be top-level and 2) I
can't iterate with <xsl:for-each> at the top level.

Can anyone point to a strategy that would let me <xsl:include> multiple
smaller stylesheets into a larger one without having to create a separate
explicit <xsl:include> element for each of them?

Thanks,

David
djbpitt(_at_)gmail(_dot_)com

--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>