This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Multiple independent XSLT transforms applied to one XML file.
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Tue, 30 Apr 2002 20:51:33 +0100
- Subject: RE: [xsl] Multiple independent XSLT transforms applied to one XML file.
- Reply-to: xsl-list at lists dot mulberrytech dot com
You can generally achieve this by using xsl:import. By writing your
transformations as a set of template rules to be applied to particular
elements, and keeping the rules for each DTD in a separate stylesheet
module, you can assemble a composite stylesheet that contains all the rules
for the composite document using xsl:import.
Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of Fabricio
> Chalub
> Sent: 30 April 2002 19:47
> To: 'XSL-List@lists.mulberrytech.com'
> Subject: [xsl] Multiple independent XSLT transforms applied to one XML
> file.
>
>
> I have asked this question on a mailing list of a specific
> XSLT application
> (Cocoon) to see if I can solve my problem using that.
>
> It may be the case that there is already a generic solution
> to this problem,
> using 'pure' XSLT constructs, which is better than the
> specific solution
> using Cocoon. So I guess I might try send you my question too.
>
> The simple question is:
>
> How do I process a XML file that combines two different DTDs with two
> *separate* XSLT transforms? Or even using a single combined
> DTD, in which
> but a part of it goes to one XSLT file and part is processed
> by another XSLT
> file.
>
> ---
>
> The complete question (with examples) is:
>
> Suppose I have a very simple site DTD:
>
> <site>
> <people>
> <person>
>
> [whatever]
>
> </person>
> </people>
> </site>
>
> And suppose I have a XSLT that transforms into a complete
> HTML page, like:
>
> <html><body>
> <ul>
> <li>[whatever]</li>
> </ul>
> </body></html>
>
> OK. Now suppose that I have another DTD that defines a
> specific class of
> person, a teacher, that I want to mantain separately:
>
> <teacher>
> <name>John S.</name>
> <class>Biology</class>
> </teacher>
>
> And I have a standard XSLT that transforms this into a HTML
> fragment, like:
>
> <p><b>Name:</b> John S.</p>
> <p><b>Class:</b> Biology</p>.
>
> Now I have a XML file like this, combining both DTDs:
>
> <page>
> <people>
> <person>
>
> <!-- this using is the teacher DTD -->
> <teacher>
> <name>John S.</name>
> <class>Biology</class>
> </teacher>
> <!-- this using is the teacher DTD -->
>
> </person>
> </people>
> </page>
>
> Naturally, I want to generate a complete HTML of the above
> output using both
> transformations.
>
> I also want to keep both XSLT files separate and independent,
> since I may
> want to reuse the XSLT and DTD for the teacher on other parts
> of my site and
> supporting systems.
>
> Is there any way to do this without using a specific implementation?
>
> Thanks!
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list