I have been dealing with this type of problem for some time. I have not read about the new assembly and topic structures in depth yet ( http://docbook.org/tdg51/en/html/ch06.html), but I am hoping they might help make reuse more flexible.
I wrote some custom XSLT 2.0 to include sections where chapters are valid and chapters where sections are valid. My stylesheet looks for processing instructions and handles them by inserting a target element. This is a pre-processing step in my publishing tool chain. I described it here: http://peterdesjardins.blogspot.com/2015/08/rudimentary-transclusion-in-docbook-for.html My solution is very specific to my environment and it's an inelegant hack also. If it seems like it might help, I could explain how it works in more detail. Peter On Tue, Aug 25, 2015 at 10:07 AM, Kallauch, Benjamin (EEIN) < [email protected]> wrote: > Hi Richard, > > I've read your post and it looks like you're using the xpointer() scheme, > right? Unfortunately, my tool chain with Xalan and Xerces does not support > that scheme as described in the FAQ on the Xerces-Website by Apache. Rather > it says Xerces supports the element() scheme. But this seems at least not > fully functional: I encounter an XPointer error when using something like: > > <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="foo.xml" > xpointer="element(foo)"/> > > > On the other hand, if I use a childsequence like the following, it works > fine. > > <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="foo.xml" > xpointer="element(/1/4)"/> > > At the moment I have no need to include only parts of an xml with > xinclude, but in case I had to I would have a problem with my tool chain. > Maybe you or someone else have a solution for working with Xalan/Xerces and > XPointer. (Or maybe I have to switch to a more sophisticated XSLT processor > / XML parser combination some time.) > > best regards > Benjamin > > -----Ursprüngliche Nachricht----- > Von: Richard Hamilton [mailto:[email protected]] > Gesendet: Freitag, 21. August 2015 22:09 > An: DocBook Apps > Betreff: Re: [docbook-apps] <part> should become <appendix> in another book > > I think that thread should get you headed in the right direction. > > I still use the method I described in a post on that thread. Some might > call it inelegant, but it works for me:-). The only thing that I don't know > about is how to integrate it into an Ant script. I'm an old fogey who still > uses make for most builds (if it's not broken, don't fix it:-). > > Dick Hamilton > ------- > XML Press > XML for Technical Communicators > http://xmlpress.net > [email protected] > > > > On Aug 19, 2015, at 6:31, Frank Arensmeier <[email protected]> wrote: > > > Just a quick heads-up. I just stumbled upon an old thread on this list > dealing with more or less the same problem as you have. > > > > http://comments.gmane.org/gmane.text.docbook.apps/29005 > > > > Maybe worth reading? > > /frank > > > > > >> 19 aug 2015 kl. 15:20 skrev Lars Vogel <[email protected]>: > >> > >> Hi Frank, > >> > >> thanks, xpointers sound very useful. > >> > >> I tried it but my self-written xinclude Apache Ant task does not > support xpointers. Is anyone aware of an existing Ant xinclude task which > has support for xpointers? > >> > >> Best regards, Lars > >> > >> 2015-08-19 15:04 GMT+02:00 Frank Arensmeier <[email protected]>: > >> Hi there! > >> > >> There is probably some XLST foo out there that does what you want. I'd > like to suggest an other approach. Have a look at "Xpointers" for the > x:include element. The attribute "xpointer" on that element defines an > xpath expression (kind of) that is used to select only parts of the > document you want to include. > >> > >> http://www.sagehill.net/docbookxsl/ModularDoc.html#UsingXinclude > >> > >> See e.g. "Selecting part of a file". However, your tool chain must > support xpointers (not sure if xproc has suport for the full power of > xpointers). > >> > >> Hope this helps! > >> > >> Regards > >> /frank > >> > >>> 19 aug 2015 kl. 14:21 skrev Lars Vogel <[email protected]>: > >>> > >>> Hi, > >>> > >>> I use xinclude to include certain documents in different books. In a > certain context I want to use it as part in another as appendix. > >>> > >>> I tried to remove the top level node with the following to my > customization layer: > >>> > >>> <!-- Remove all sections marked with wrapper --> > >>> <xsl:template match="part[@role='wrapper']" mode="profile"> > >>> <xsl:apply-templates select="part" mode="profile" /> > >>> </xsl:template> > >>> > >>> And include it into the books like this: > >>> > >>> <part> > >>> <title>Gerrit code reviews with Eclipse</title> > >>> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" > href="820_gerrit.xml" /> > >>> </part> > >>> > >>> or > >>> > >>> <appendix> > >>> <title>Gerrit code reviews with Eclipse</title> > >>> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" > href="820_gerrit.xml" /> > >>> </appendix> > >>> > >>> Unfortunately my customization removes not only the top level part > element but the whole part. > >>> > >>> Is anyone aware of a nice trick to replace part in some books with > appendix? > >>> > >>> Best regards, Lars > >>> > >>> P.S. What I would like to have is the equivalent of the <merge> node > for defining Android layouts, this node is only their to have a valid XML > file, but is removed during the include process. > >> > >> > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
