Subject: RE: Scalability problem + solution From: DPawson@xxxxxxxxxxx Date: Tue, 12 Oct 1999 15:07:44 +0100 |
Example of usage of multiple source and output files. Tks to David Carlisle for the advice. Regards, DaveP DTD - doc.dtd <!ELEMENT doc (section)+> <!ELEMENT section (p)+> <!ELEMENT p (#PCDATA)> Root file - doc.xml <!DOCTYPE doc SYSTEM "/sgml/mine/doc.dtd"[ <!ENTITY sect1 SYSTEM "sect1c.xml"> <!ENTITY sect2 SYSTEM "sect2c.xml"> <!ENTITY sect3 SYSTEM "sect3c.xml"> <!ENTITY dtd "IGNORE"> ]> <doc> §1; <!-- Calls in the section *contents*, sans doctype --> §2; §3; </doc> section file - sect (n).xml <!DOCTYPE doc SYSTEM "doc.dtd"[ <!ENTITY sect1c SYSTEM "sect1c.xml"> ]> §1c; <!-- Similarly, calls in the *contents*, sans doctype --> <!-- Above is duplicated for n other files --> Section 1 contents file sect1c.xml <section> <p>Para in section 1</p> </section> Stylesheet <?xml version="1.0"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> <!ENTITY sp "<xsl:text> </xsl:text>"> ]> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xt="http://www.jclark.com/xt" extension-element-prefixes="xt" version="1.0"> <xsl:output type="html"/> <!-- Main file --> <xsl:template match="/"> <!-- Only template --> <html> <!-- Main file output --> <head> </head> <body> <p>This is from the stylesheet </p> <!-- Generated Text --> <xsl:for-each select= "//p"> <!-- Access all files from the root file --> <p> <xsl:value-of select="."/> (Accessed from root) </p> </xsl:for-each> </body> </html> <!-- Now generate one file per section --> <xsl:for-each select="/doc/section"> <xsl:variable name="docnumber"> <!--Generate a number from section posn --> <xsl:number value="position()" format="1"/> </xsl:variable> <!-- Append the number to the filename --> <xt:document method="html" href="sect{$docnumber}.html"> <html> <head> </head> <body> <!-- Output into the section files --> <p><xsl:value-of select="p"/> </p> </body> </html> </xt:document> <!-- End of sectional output --> </xsl:for-each> <!-- End of each section --> </xsl:template> <!-- End of template --> </xsl:stylesheet> <!--End of stylesheet --> Output (main file) <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> </head> <body> <p>This is from the stylesheet </p> <p>Para in section 1 (Accessed from root) </p> <p>Para in section 2 (Accessed from root) </p> <p>Para in section 3 (Accessed from root) </p> </body> </html> Output (sect1.html) <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> </head> <body> <p>Para in section 1</p> </body> </html> Ditto for other output files, sect (n).html Now I can edit the sections with emacs, and nsgmls can validate it for me, and xt can correctly number it for me across section boundaries. Delighted! DaveP XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Announcing SAXON 4.7, Kay Michael | Thread | linking xml files each others using, Emmanuel.Leguy |
RE: Scalability problem, DPawson | Date | Re: Scalability problem, David Carlisle |
Month |