Re: Using document() with a document containing xi:includes

On 17/04/2018 22:05, David Cramer wrote:
> Wow, that works! I just new there had to be a right way to do this, and 
> I can easily customize the stylesheets to this approach.
> 
> Two things I didn't know about:
> 
> 1. I didn't know you could stick multiple document inside a p:input, 
> though it seems completely obvious now.
> 
> 2. I didn't know about collection() in xslt 2.0.

The default collection, collection(), is not defined if you invoke the 
XSLT through Saxon. But in XSLT invoked through p:xslt, it’s the 
sequence of the documents on the source port.

https://www.w3.org/TR/xslt20/#evaluation-context
https://www.w3.org/TR/xproc/#c.xslt

Glad that I could help!

Gerrit

> 
> I was puzzled at first about whether I needed to make a <collection> 
> document to feed to collection(), but it appears that if you use 
> collection() with no argument in an xslt in a pipeline, it behaves as if 
> it's been given a <collection> document listing all of the documents 
> from the input port. Very handy.
> 
> I've put a complete demo/example here:
> 
> https://gist.github.com/dwcramer/c65056fd3638e1cdcd052f4d05f2816e
> 
> Thanks for the help!
> David
> 
> On 4/17/18 1:47 PM, Imsieke, Gerrit, le-tex wrote:
>> Hi David,
>>
>> I see the issue.
>>
>> I’m not that familiar with DocBook XSL, it seems to be quite a beast. 
>> If the template that slurps in the glossary master via document() is 
>> reasonably small, then you could import the whole DocBook XSL 
>> stylesheet from your own XSLT. Your own XSLT will override the 
>> glossary processing template with something that uses collection()[2] 
>> instead of document('…'). Then you can pass a p:pipe connection to the 
>> glossary XInclude step as a second document to the p:xslt’s source port.
>>
>> Do you think this may be a workaround for this issue?
>>
>> Gerrit
>>
>>
> 

-- 
Gerrit Imsieke
Geschäftsführer / Managing Director
le-tex publishing services GmbH
Weissenfelser Str. 84, 04229 Leipzig, Germany
Phone +49 341 355356 110, Fax +49 341 355356 510
gerrit.imsieke@le-tex.de, http://www.le-tex.de

Registergericht / Commercial Register: Amtsgericht Leipzig
Registernummer / Registration Number: HRB 24930

Geschäftsführer / Managing Directors:
Gerrit Imsieke, Svea Jelonek, Thomas Schmidt

Received on Tuesday, 17 April 2018 20:14:27 UTC