xsl-list
[Top] [All Lists]

RE: [xsl] XSLT and XInclude?

2009-03-23 07:19:35
I've come across some documents that are using XInclude to 
fragment a larger tech manual. I've got the basic stylesheet 
working that reads the document name from the href and then 
opens it with the doc() function.

Are you sure you need to handle this in the XSLT stylesheet? Many XML
parsers have built-in support for XInclude if you set the right options.
Short of this, there are free-standing XInclude processors, including some
written in XSLT. I think it would be better to do XInclude processing as a
separate step from transformation.

In this particular case, I'm able to process the content 
properly as the included document has a regular structure 
that I can process directly. I got to thinking though that I 
might need to process these included files within the context 
of their use/placement in the referencing document.

I would like to somehow pass the context in the parent 
document to the doc function and possibly the current 
template mode. 

What would the doc() function do with this information? Surely you want to
pass these details to the templates that are processing the included
document, which you can do using the normal XSLT parameter passing
mechanisms.

One area I defiantly got into trouble with my current success 
is in regards to the namespace definitions. These included 
documents have no use outside the parent document; so I guess 
this error hasn't been found because the individual file was 
not edited without the parent. 
Anyway, there was some change tracking markup added via some 
add/delete elements in a different namespace. Within the 
parent the namespace was defined, but the included file 
didn't have the declaration. When this file was passed to the 
doc function it errored out because the namespace wasn't 
defined in the included file.

I fixed this problem by correcting the included file, but if 
I could have passed the context (in this case the namespace 
information) I wouldn't have had a problem.

Documents included using XInclude have to be namespace well-formed in their
own right. If they aren't, then expect the tools to give you errors.

Michael Kay
http://www.saxonica.com/


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

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