Just wanted to provide an update on my status for
those following this discussion.  I had planned to
update the DITA-OT 1.0.2 xsl files to include my mods
so that we could move those to the ant build, but I
have been unable to do much lately due to health
problems (back injury).  I was able to chop together a
new mod tonight and test it briefly with the Getting
Started Guide, and it seems to work.  I am attaching
the files I needed to change in the DITA-OT1.0.2
build.  I would have created a patch but I dont think
we've checked these in yet under the Apache ASL?  Is
that what the plan is?  Anyways, my changes are mainly
to the xsl/dita2fo-shell.xsl file, but there are two
lines that I also had to change, one each in the
build.xml and conductor.xml files in the root
directory of the dita 1.0.2 build.  I basically
changed a line in both of them to recognize dita files
as having .dita file extensions instead of .xml file
extensions.  A minor change, but it must be done or
else any inline links within a pdf file to another
point in the pdf do not work.

So these should work, but not in our current setup,
since Andrew had made some changes of his own to the
ant build to specialize it for the Derby manuals. 
Andrew, I think you'll have to make those changes
again.  But you can start with my mods in these files
as a baseline.  

Let me know if there is anything else you need or any
questions you have and I'll do my best to get back to
you as soon as possible.

Thanks,
Jeff


--- "David W. Van Couvering"
<[EMAIL PROTECTED]> wrote:

> I don't know what the "OT" is, but I'm assuming it's
> some kind of open 
> source definitions for DITA?  Anyway, my general
> sense is Maven is the 
> preferred approach, but I have no information beyond
> that, having never 
> used Maven.
> 
> Are you guys planning to get the OT changes back
> into the main DITA 
> source base at some point, or are we always going to
> have a "fork" of 
> the OT?  What is delaying getting these changes back
> in?
> 
> Regarding a page with references to external specs,
> that sounds great! 
> Note that the SQL specs I think require a purchase.
> 
> Thanks,
> 
> David
> 
> scott hutinger wrote:
> > I wanted to get the build of the docs finished so
> everyone can build 
> > what is currently being used.  Jeff Levit has some
> changes he made that 
> > are not incorporated in the dita toolkit.  Also, I
> would like to get the 
> > build up with the current svn number etc.  I had
> one method of doing 
> > this, but think possibly Andrew was thinking of
> another method.  I also 
> > think I had ant do most of it in one version of
> this.
> > 
> > What I would like to do is get some feedback on
> the direction that 
> > everyone thinks should be taken.
> > 
> > 1) Since the Dita OT has an apache license, some
> or all of the source 
> > can be put in svn.  If we used a Maven build,
> maven could download and 
> > we could patch with Derby changes to the ot, or we
> could just bring the 
> > whole code base into svn and make changes this
> way.  I normally don't 
> > think this way, so wasn't sure what the current
> best method would be.  
> > Any ideas?  This could also be done without maven
> another way...  Is 
> > maven the prefered build or is this not an issue
> at this point in time?
> > 
> > 2) The latest alpha files on the website always
> have an old build date.  
> > I am uncertain if they don't get built after
> changes, if they go through 
> > a build daily, or if they don't go through a build
> at all.  It might 
> > also be that a hard coded date is in the dita ot.
> > 
> > Any feedback is very welcome, as DITAOT changed
> the license quite some 
> > time ago; and this should be used.
> > 
> > I think the main feedback is: how should the
> DITAOT source be handled 
> > with Jeffs and any other changes that are not
> within the DITAOT source 
> > base yet?
> > 
> > Also not releated, it might be nice to get some
> type of external 
> > reference document.  I noticed that Army had some
> external docs on the 
> > wiki on DRDA(from The Open Group) etc..  I think
> some other good 
> > external docs exist too.  I think it would be nice
> to gather all of 
> > these in a document with a bit of information on
> the documents 
> > themselves etc... (i.e. to download 'The Open
> Group' documents for DRDA, 
> > you need to do x/y/z to get them etc...).  Myself
> being one of those 
> > typical developers that get's a lot of help from
> those external docs.  I 
> > think a lot of developers don't really know that
> much about SQL 
> > standards etc (myself being one), so those
> external docs are VERY helpful.
> > 
> > thanks,
> > scott
> > begin:vcard
> fn:David W Van Couvering
> n:Van Couvering;David W
> org:Sun Microsystems, Inc.;Database Technology Group
> email;internet:[EMAIL PROTECTED]
> title:Senior Staff Software Engineer
> tel;work:510-550-6819
> tel;cell:510-684-7281
> x-mozilla-html:TRUE
> version:2.1
> end:vcard
> 
> 
<?xml version="1.0" encoding="UTF-8" ?>

<project name="dita.build" default="prompt" basedir=".">
	<!-- Set a property for each environment variable -->
	<description>Build the DITA Demos and Samples</description>
	<property environment="env"/>

    <import file="${basedir}${file.separator}conductor.xml"/>

	<target name="use.init">
        <available classname="com.icl.saxon.StyleSheet"
			property="hasSaxon"/>
		<available classname="org.apache.fop.tools.anttasks.Fop"
			property="hasFOP"/>
		<available file="C:\Program Files\HTML Help Workshop\hhc.exe"
			property="HTMLHelpCompiler"
			value="C:\Program Files\HTML Help Workshop\hhc.exe"/>
		<property name="dita.extname" value=".dita"/>
	</target>

	<target name="all" description="build all output" 
		depends="demo, doc, samples, docbook">
		<echo>output in the ${dita.output.dir} directory</echo>
	</target>
	<!-- revise below here -->

		<!-- defaults for DITA configuration required by callable targets -->
		<property name="dita.dir" value="${basedir}"/>
		<property name="dita.script.dir"
			value="${dita.dir}${file.separator}xsl"/>
		<property name="dita.dtd.dir"
			value="${dita.dir}${file.separator}dtd"/>
		<property name="dita.css.dir"
			value="${dita.dir}${file.separator}css"/>
		<property name="dita.resource.dir"
			value="${dita.dir}${file.separator}resource"/>

		<!-- defaults for DITA output configuration -->
		<property name="dita.doc.dir"
			value="${dita.dir}${file.separator}doc"/>
		<property name="dita.doc.langref.dir"
			value="${dita.doc.dir}${file.separator}langref"/>
		<property name="dita.doc.articles.dir"
			value="${dita.doc.dir}${file.separator}articles"/>

		<property name="dita.demo.dir"
			value="${dita.dir}${file.separator}demo"/>
		<property name="dita.demo.book.dir"
			value="${dita.demo.dir}${file.separator}book"/>
		<property name="dita.demo.elementref.dir"
			value="${dita.demo.dir}${file.separator}elementref"/>
		<property name="dita.demo.enote.dir"
			value="${dita.demo.dir}${file.separator}enote"/>
		<property name="dita.demo.faq.dir"
			value="${dita.demo.dir}${file.separator}faq"/>
		
		<property name="dita.samples.dir"
			value="${dita.dir}${file.separator}samples"/>

		<property name="dita.output.dir"
			value="${dita.dir}${file.separator}out"/>

		<property name="dita.output.demo.dir"
			value="${dita.output.dir}${file.separator}demo"/>
		<property name="dita.output.demo.book.dir"
			value="${dita.output.demo.dir}${file.separator}book"/>
		<property name="dita.output.demo.elementref.dir"
			value="${dita.output.demo.dir}${file.separator}elementref"/>
		<property name="dita.output.demo.enote.dir"
			value="${dita.output.demo.dir}${file.separator}enote"/>
		<property name="dita.output.demo.faq.dir"
			value="${dita.output.demo.dir}${file.separator}faq"/>
		<property name="dita.output.demo.langref.dir"
			value="${dita.output.demo.dir}${file.separator}langref"/>

		<property name="dita.output.demo.langrefhelp.dir"
			value="${dita.output.demo.dir}${file.separator}langrefhelp"/>

		<property name="dita.output.doc.dir"
			value="${dita.output.dir}${file.separator}doc"/>
		<property name="dita.output.doc.langref.dir"
			value="${dita.output.doc.dir}${file.separator}langref"/>
		<property name="dita.output.doc.articles.dir"
			value="${dita.output.doc.dir}${file.separator}articles"/>

		<property name="dita.output.samples.dir"
			value="${dita.output.dir}${file.separator}samples"/>
		<property name="dita.output.samples.web.dir"
			value="${dita.output.samples.dir}${file.separator}web"/>
		<property name="dita.output.samples.eclipse.dir"
			value="${dita.output.samples.dir}${file.separator}org.dita.sample.doc"/>
		<property name="dita.output.samples.javahelp.dir"
			value="${dita.output.samples.dir}${file.separator}javahelp"/>
		<property name="dita.output.samples.htmlhelp.dir"
			value="${dita.output.samples.dir}${file.separator}htmlhelp"/>
		<property name="dita.output.samples.pdf.dir"
			value="${dita.output.samples.dir}${file.separator}pdf"/>

		<property name="dita.output.docbook.dir"
			value="${dita.output.dir}${file.separator}docbook"/>



		<target name="clean"
			description="delete all output">
			<delete dir="${dita.output.dir}"/>
		</target>

		<!-- mid-level targets -->
		<target name="init"
			depends="use.init">
			<!-- Create the time stamp -->
			<tstamp/>

			<mkdir dir="${dita.output.dir}"/>
		</target>

		<target name="demo"
			description="build the demos"
			depends="demo.book, demo.elementref, demo.enote, demo.faq, demo.langref">
		</target>

		<target name="init.demo"
			depends="init">
			<mkdir dir="${dita.output.demo.dir}"/>
		</target>

		<target name="demo.book"
			description="build the book demo"
			depends="init.demo">
			<mkdir dir="${dita.output.demo.book.dir}"/>
			<antcall target="dita2xhtml">
				<param name="args.input"
					value="${dita.demo.book.dir}${file.separator}bookmap-readme.xml"/>
				<param name="output.dir"
					value="${dita.output.demo.book.dir}"/>
			</antcall>
      <antcall target="dita.common.css">
        <param name="outputDir" value="${dita.output.demo.book.dir}"/>
      </antcall>
			<antcall target="dita2pdf">
				<param name="args.input"
					value="${dita.demo.book.dir}${file.separator}taskbook.ditamap"/>
				<param name="output.dir"
					value="${dita.output.demo.book.dir}"/>
			</antcall>
		</target>

		<target name="demo.elementref"
			description="build the element reference demo"
			depends="init.demo">
			<mkdir dir="${dita.output.demo.elementref.dir}"/>
			<antcall target="dita.elementref.toc">
				<param name="args.input"
					value="${dita.demo.elementref.dir}${file.separator}map-elements.ditamap"/>
				<param name="output.dir"     value="${dita.output.demo.elementref.dir}"/>
			</antcall>
      <antcall target="dita.common.css">
        <param name="outputDir" value="${dita.output.demo.elementref.dir}"/>
      </antcall>
			<antcall target="dita.elementref.html">
				<param name="inputFile"
					value="${basedir}${file.separator}temp${file.separator}map.xml"/>
				<param name="outputFile"
					value="${dita.output.demo.elementref.dir}${file.separator}map.html"/>
			</antcall>
			<antcall target="dita.elementref.html">
				<param name="inputFile"
					value="${basedir}${file.separator}temp${file.separator}topicref.xml"/>
				<param name="outputFile"
					value="${dita.output.demo.elementref.dir}${file.separator}topicref.html"/>
			</antcall>
		</target>
					
		<target name="dita.elementref.toc" depends="dita-preprocess, map2xhtml">
		</target>

		<target name="dita.elementref.html">
			<xslt processor="trax"
					in="${inputFile}"
					out="${outputFile}"
					style="${dita.demo.elementref.dir}${file.separator}elementref2xhtml_shell.xsl">
				<param name="OUTEXT" expression="html"/>
				<xmlcatalog refid="dita.catalog"/>
			</xslt>
		</target>
	
		<target name="demo.enote"
			description="build the eNote demo"
			depends="init.demo">
			<mkdir dir="${dita.output.demo.enote.dir}"/>
			<antcall target="dita.enote.html">
				<param name="args.input"
					value="${dita.demo.enote.dir}${file.separator}testnote2.xml"/>
				<param name="inputFile"
					value="${basedir}${file.separator}temp${file.separator}testnote2.xml"/>
        <param name="output.dir"
          value="${dita.output.demo.enote.dir}"/>
				<param name="outputFile"
					value="${dita.output.demo.enote.dir}${file.separator}testnote2.html"/>
			</antcall>
      <antcall target="dita.common.css">
        <param name="outputDir" value="${dita.output.demo.enote.dir}"/>
      </antcall>
		</target>
					
		<!-- build HTML output for an Email Note topic -->
		<target name="dita.enote.html" depends="dita-preprocess">
			<xslt processor="trax"
					in="${inputFile}"
					out="${outputFile}"
					style="${dita.demo.enote.dir}${file.separator}enote2xhtml_shell.xsl">
				<param name="OUTEXT" expression="html"/>
				<xmlcatalog refid="dita.catalog"/>
			</xslt>
		</target>

		<target name="demo.faq"
			description="build the FAQ demo"
			depends="init.demo">
			<mkdir dir="${dita.output.demo.faq.dir}"/>
			<antcall target="dita.faq.html">
				<param name="inputFile"
					value="${basedir}${file.separator}temp${file.separator}DITA-faq.xml"/>
				<param name="args.input"
					value="${dita.demo.faq.dir}${file.separator}DITA-faq.xml"/>
        <param name="output.dir"
          value="${dita.output.demo.faq.dir}"/>
				<param name="outputFile"
					value="${dita.output.demo.faq.dir}${file.separator}DITA-faq.html"/>
			</antcall>
			<antcall target="dita.faq.html">
				<param name="inputFile"
					value="${basedir}${file.separator}temp${file.separator}ditafaq.xml"/>
				<param name="args.input"
					value="${dita.demo.faq.dir}${file.separator}ditafaq.xml"/>
        <param name="output.dir"
          value="${dita.output.demo.faq.dir}"/>
				<param name="outputFile"
					value="${dita.output.demo.faq.dir}${file.separator}ditafaq.html"/>
			</antcall>
			<antcall target="demo.faq.generalize"/>
      <antcall target="dita.common.css">
        <param name="outputDir" value="${dita.output.demo.faq.dir}"/>
      </antcall>
		</target>
	
		<!-- build HTML output for a FAQ topic -->
		<target name="dita.faq.html" depends="dita-preprocess">
			<xslt processor="trax"
					in="${inputFile}"
					out="${outputFile}"
					style="${dita.demo.faq.dir}${file.separator}faq2xhtml_shell.xsl">
				<xmlcatalog refid="dita.catalog"/>
			</xslt>
		</target>

		<target name="demo.faq.generalize" depends="init.demo">
			<antcall target="dita.topic.generalize">
				<param name="inputFile"
					value="${dita.demo.faq.dir}${file.separator}ditafaq.xml"/>
				<param name="outputFile"
					value="${dita.output.demo.faq.dir}${file.separator}ditafaq_GENERALIZED.xml"/>
			</antcall>
		</target>
    
    <!-- generalize a specialized topic to the base elements -->
    <target name="dita.topic.generalize">
      <xslt processor="trax"
        	in="${inputFile}"
          out="${outputFile}"
          style="${dita.script.dir}${file.separator}generalize.xsl">
        <xmlcatalog refid="dita.catalog"/>
      </xslt>
    </target>

		<target name="demo.langref"
			description="build the Language Reference book as a demo"
			depends="demo.langref.pdf">
		</target>

		<target name="init.demo.langref" depends="init.demo">
			<mkdir dir="${dita.output.demo.langref.dir}"/>
		</target>


		<target name="demo.langref.pdf" depends="init.demo.langref">
			<antcall target="dita2pdf">
				<param name="args.input"       
					value="${dita.doc.langref.dir}${file.separator}ditaref-book.ditamap"/>
				<param name="output.dir"      value="${dita.output.demo.langref.dir}"/>
			</antcall>
		</target>

		<target name="demo.langref.compilehelp"
			description="to build the Language Reference as HTML Help (not in all)"
			depends="init">
			<antcall target="dita2htmlhelp">
				<param name="args.input"
					value="${dita.doc.langref.dir}${file.separator}ditaref-book.ditamap"/>
				<param name="output.dir"
					value="${dita.output.demo.langrefhelp.dir}"/>
			</antcall>
		</target>

		<target name="clean.demo"
			description="remove the demo output">
			<delete dir="${dita.output.demo.dir}"/>
		</target>

		<target name="clean.demo.book"
			description="remove the book demo output">
			<delete dir="${dita.output.demo.book.dir}"/>
		</target>

		<target name="clean.demo.elementref"
			description="remove the Element Reference demo output">
			<delete dir="${dita.output.demo.elementref.dir}"/>
		</target>

		<target name="clean.demo.enote"
			description="remove the eNote demo output">
			<delete dir="${dita.output.demo.enote.dir}"/>
		</target>

		<target name="clean.demo.faq"
			description="remove the FAQ demo output">
			<delete dir="${dita.output.demo.faq.dir}"/>
		</target>

		<target name="clean.demo.langref"
			description="remove the Language Reference demo output">
			<delete dir="${dita.output.demo.langref.dir}"/>
		</target>

		<target name="clean.demo.langref.compilehelp"
			description="remove the Language Reference as HTML Help output">
			<delete dir="${dita.output.demo.langrefhelp.dir}"/>
		</target>

		<target name="doc"
			description="build the documentation"
			depends="init, doc.langref.web, doc.articles.web, doc.readme.web">      
		</target>
	
		<target name="init.doc.langref" depends="init">
			<mkdir dir="${dita.output.doc.langref.dir}"/>
		</target>
	
		<target name="doc.langref.web" depends="init.doc.langref"
			description="Build the langref document.">
			<antcall target="dita2xhtml">
				<param name="args.input"
					value="${dita.doc.langref.dir}${file.separator}ditaref-alpha.ditamap"/>
				<param name="output.dir"     value="${dita.output.doc.langref.dir}"/>
		        <param name="args.xhtml.toc" value="toc"/>
			</antcall>
			<copy
				file="${dita.doc.langref.dir}${file.separator}index.html"
				todir="${dita.output.doc.langref.dir}"/>
		    <antcall target="dita.common.css">
		        <param name="outputDir" value="${dita.output.doc.langref.dir}"/>
		    </antcall>
		</target>
	
		<target name="clean.doc.langref"
			description="Delete the langref directory in doc.">
			<delete dir="${dita.output.doc.langref.dir}"></delete>
		</target>
	
		<target name="init.doc.articles" depends="init">
			<mkdir dir="${dita.output.doc.articles.dir}"/>
		</target>
	
		<target name="doc.articles.web" depends="init.doc.articles"
			description="Build the articles of dita as document.">
			<antcall target="dita2xhtml">
				<param name="args.input"
					value="${dita.doc.articles.dir}${file.separator}DITA-articles.ditamap"/>
				<param name="output.dir"     value="${dita.output.doc.articles.dir}"/>
			</antcall>
			<antcall target="dita.common.css">
		        <param name="outputDir" value="${dita.output.doc.articles.dir}"/>
			</antcall>
		</target>
	
		<target name="clean.doc.articles"
			description="Delete the articles directory in doc.">
			<delete dir="${dita.output.doc.articles.dir}"></delete>
		</target>
	
		<target name="doc.readme.web" depends="init">
			<antcall target="dita2xhtml">
				<param name="args.input"
					value="${dita.doc.dir}${file.separator}DITA-readme.ditamap"/>
				<param name="output.dir"     value="${dita.output.doc.dir}"/>
			</antcall>
			<antcall target="dita.common.css">
			    <param name="outputDir" value="${dita.output.doc.dir}"/>
			</antcall>
		</target>

		<target name="clean.doc"
			description="remove the documentation output">
			<delete dir="${dita.output.doc.dir}"/>
		</target>

		<target name="samples"
			description="build the sample output"
			depends="samples.web, samples.eclipse, samples.javahelp, samples.htmlhelp, samples.pdf">
		</target>

		<target name="samples.init" depends="init">
			<mkdir dir="${dita.output.samples.dir}"/>
		</target>

		<target name="samples.web"
			description="build the samples for the web"
			depends="samples.init">
			<antcall target="dita2xhtml">
				<param name="args.input"
					value="${dita.samples.dir}${file.separator}hierarchy.ditamap"/>
				<param name="output.dir"     value="${dita.output.samples.web.dir}"/>
        		<param name="args.xhtml.toc" value="toc"/>
			</antcall>
      <copy todir="${dita.output.samples.web.dir}">
        <fileset dir="${dita.resource.dir}"
          includes="index.html"/>
      </copy>
			<antcall target="dita.common.css">
        <param name="outputDir" value="${dita.output.samples.web.dir}"/>
      </antcall>
		</target>

		<target name="samples.eclipse"
			description="build the samples for Eclipse"
			depends="samples.init">
			<antcall target="dita2eclipsehelp">
				<param name="args.input"
					value="${dita.samples.dir}${file.separator}hierarchy.ditamap"/>
				<param name="output.dir"     value="${dita.output.samples.eclipse.dir}"/>
			</antcall>			
		</target>

		<target name="samples.javahelp"
			description="build the samples for JavaHelp"
			depends="samples.init">
			<antcall target="dita2javahelp">
				<param name="args.input"
					value="${dita.samples.dir}${file.separator}hierarchy.ditamap"/>
				<param name="output.dir"     value="${dita.output.samples.javahelp.dir}"/>
			</antcall>
		</target>

		<target name="samples.htmlhelp"
			description="build the samples for HTMLHelp"
			depends="samples.init">
			<antcall target="dita2htmlhelp">
				<param name="args.input"
					value="${dita.samples.dir}${file.separator}hierarchy.ditamap"/>
				<param name="output.dir"
					value="${dita.output.samples.htmlhelp.dir}"/>
			</antcall>
		</target>

		<target name="samples.pdf"
			description="build the samples as PDF"
			depends="samples.init">
			<antcall target="dita2pdf">
				<param name="args.input"       
					value="${dita.samples.dir}${file.separator}sequence.ditamap"/>
				<param name="output.dir"      value="${dita.output.samples.pdf.dir}"/>
			</antcall>
		</target>
		
		<target name="docbook"
			description="transform the samples to DocBook"
			depends="init">
			<mkdir dir="${dita.output.docbook.dir}"/>

			<antcall target="dita2docbook">
				<param name="args.input"  
					value="${dita.samples.dir}${file.separator}hierarchy.ditamap"/>
				<param name="output.dir" value="${dita.output.docbook.dir}"/>
			</antcall>

			<antcall target="dita2docbook">
				<param name="args.input"
					value="${dita.doc.dir}${file.separator}DITA-readme.xml"/>
				<param name="output.dir"
					value="${dita.output.docbook.dir}"/>
			</antcall>
		</target>
		
		<target name="clean.docbook"
			description="remove the docbook output">
			<delete dir="${dita.output.docbook.dir}"/>
		</target>	

		<target name="clean.samples"
			description="remove the sample output">
			<delete dir="${dita.output.samples.dir}"/>
		</target>

		<target name="clean.samples.web"
			description="remove the sample web output">
			<delete dir="${dita.output.samples.web.dir}"/>
		</target>

		<target name="clean.samples.eclipse"
			description="remove the sample Eclipse output">
			<delete dir="${dita.output.samples.eclipse.dir}"/>
		</target>

		<target name="clean.samples.javahelp"
			description="remove the sample JavaHelp output">
			<delete dir="${dita.output.samples.javahelp.dir}"/>
		</target>

		<target name="clean.samples.htmlhelp"
			description="remove the sample HTMLHelp output">
			<delete dir="${dita.output.samples.htmlhelp.dir}"/>
		</target>

		<target name="clean.samples.pdf"
			description="remove the sample PDF output">
			<delete dir="${dita.output.samples.pdf.dir}"/>
		</target>
    
    <target name="dita.common.css">
      <copy
        file="${dita.resource.dir}${file.separator}commonltr.css" 
        todir="${outputDir}"/>
    </target>
	
	<!-- prompting target -->
		<target name="prompt"
			description="prompt to build anything"
			depends="prompt.init">
		<!-- The prompt strings should be externalized in a properties file 
		     so they can be localized. -->
			<echo>Please enter the filename for the DITA map that you 
	want to build including the directory path (if any).
	The filename must have the .ditamap extension.
	Note that relative paths that climb (..) are not supported yet.
	To build the sample, press return without entering anything.</echo>
			<input message="The DITA map filename: "
				addproperty="prompt.ditamap.filename"
				defaultvalue="${dita.samples.dir}${file.separator}hierarchy.ditamap"/>
			<fail message="no map entered">
				<condition>
					<or>
						<not><isset property="prompt.ditamap.filename"/></not>
						<equals arg1="${prompt.ditamap.filename}" arg2=""/>
					</or>
				</condition>
			</fail>
			<fail message="cannot find ${prompt.ditamap.filename}">
				<condition>
					<not><available file="${prompt.ditamap.filename}"/></not>
				</condition>
			</fail>
			<basename property="prompt.ditamap.fileroot"
				file="${prompt.ditamap.filename}" suffix=".ditamap"/>
			<dirname property="prompt.ditamap.directory"
				file="${prompt.ditamap.filename}"/>
			<echo>
	Please enter the name of the output directory or press return
	to accept the default.</echo>
			<input message="The output directory (out): "
				addproperty="prompt.output.directory"
				defaultvalue="out"/>
			<echo>
	Please enter the type of output to generate.
	Options include: eclipse, htmlhelp, javahelp, pdf, or web
	Use lowercase letters.
	</echo>
			<input message="The output type: "
				addproperty="prompt.output.type"
				validargs="eclipse,htmlhelp,javahelp,pdf,web,docbook"
				defaultvalue="web"/>
			<condition property="isEclipseOutput">
				<equals arg1="${prompt.output.type}" arg2="eclipse"/>
			</condition>
			<condition property="isHtmlHelpOutput">
				<equals arg1="${prompt.output.type}" arg2="htmlhelp"/>
			</condition>
			<condition property="isJavaHelpOutput">
				<equals arg1="${prompt.output.type}" arg2="javahelp"/>
			</condition>
			<condition property="isPDFOutput">
				<equals arg1="${prompt.output.type}" arg2="pdf"/>
			</condition>
			<condition property="isWebOutput">
				<equals arg1="${prompt.output.type}" arg2="web"/>
			</condition>
			<condition property="isDocbookOutput">
				<equals arg1="${prompt.output.type}" arg2="docbook"/>
			</condition>
			<echo>
	Ready to build ${prompt.ditamap.filename}
	for ${prompt.output.type} in ${prompt.output.directory}
	</echo>
			<input message="Continue? "
				addproperty="prompt.output.confirm"
				validargs="Y,y,N,n"
				defaultvalue="y"/>
			<fail message="not building">
				<condition>
					<or>
						<equals arg1="${prompt.output.confirm}" arg2="N"/>
						<equals arg1="${prompt.output.confirm}" arg2="n"/>
					</or>
				</condition>
			</fail>
			<antcall target="prompt.output"/>
	        <echo>
	output in the ${prompt.output.directory} directory

	Before rebuilding, please delete the output or the directory.</echo>
		</target>

		<target name="prompt.init"
			depends="dita.init">
			<!-- Create the time stamp -->
			<tstamp/>
		</target>

		<target name="prompt.output.init" depends="init">
			<mkdir dir="${prompt.output.directory}"/>
		</target>

		<target name="prompt.output"
			depends="prompt.output.eclipse, prompt.output.javahelp, prompt.output.htmlhelp, prompt.output.pdf, prompt.output.web, prompt.output.docbook"/>

		<target name="prompt.output.web" depends="prompt.output.init"
			if="isWebOutput">			
			<copy todir="${prompt.output.directory}">
				<fileset dir="${dita.resource.dir}"
					includes="index.html"/>
			</copy>
			<antcall target="dita2xhtml">
				<param name="args.input"      value="${prompt.ditamap.filename}"/>
				<param name="output.dir"     value="${prompt.output.directory}"/>
				<param name="args.xhtml.toc" value="toc"/>
			</antcall>
		</target>

		<target name="prompt.output.eclipse" depends="prompt.output.init"
			if="isEclipseOutput">
			<antcall target="dita2eclipsehelp">
				<param name="args.input"      value="${prompt.ditamap.filename}"/>
				<param name="output.dir"     value="${prompt.output.directory}"/>
				<param name="args.eclipse.toc" value="toc"/>
			</antcall>
		</target>

		<target name="prompt.output.javahelp" depends="prompt.output.init"
			if="isJavaHelpOutput">
			<antcall target="dita2javahelp">
				<param name="args.input"      value="${prompt.ditamap.filename}"/>
				<param name="output.dir"     value="${prompt.output.directory}"/>
				<param name="args.javahelp.toc" value="toc"/>
				<param name="args.javahelp.map" value="map"/>
			</antcall>
		</target>

		<target name="prompt.output.htmlhelp" depends="prompt.output.init"
			if="isHtmlHelpOutput">
			<antcall target="dita2htmlhelp">
				<param name="args.input"
					value="${prompt.ditamap.filename}"/>
				<param name="output.dir"
					value="${prompt.output.directory}"/>
			</antcall>
		</target>

		<target name="prompt.output.pdf" depends="prompt.output.init"
			if="isPDFOutput">
			<antcall target="dita2pdf">
				<param name="args.input"      
					value="${prompt.ditamap.filename}"/>
				<param name="output.dir"      value="${prompt.output.directory}"/>
			</antcall>
		</target>

		<target name="prompt.output.docbook" depends="prompt.output.init"
			if="isDocbookOutput">
			<antcall target="dita2docbook">
				<param name="args.input"       value="${prompt.ditamap.filename}"/>
				<param name="output.dir"      value="${prompt.output.directory}"/>
			</antcall>
		</target>
	
</project>
<?xml version="1.0"?>

<project name="DOST" default="init" basedir=".">
  <import file="catalog-ant.xml"/>
  <import file="ditatargets.xml"/>
  <import file="pretargets.xml"/>    
  
  <taskdef name="pipeline" classname="org.dita.dost.invoker.AntInvoker">
    <classpath>
	  <pathelement location="${basedir}${file.separator}lib${file.separator}dost1.0.jar"/>
    </classpath>
  </taskdef>
  <!-- parameters from command line or external property file 
		transtype          required
		args.input         required
		output.dir         required
		dita.extname       required
		dita.input.valfile optional
	-->

  <property name="dita.dir" value="${basedir}"/>
  <property name="dita.temp.dir" value="${basedir}${file.separator}temp"/>
  <property name="dita.script.dir" value="${dita.dir}${file.separator}xsl"/>
  <property name="dita.resource.dir" value="${dita.dir}${file.separator}resource"/>
  <property name="hhc.dir" value="C:\Program Files\HTML Help Workshop"/>
  <property environment="env"/>
  
  <!-- property values end -->
  <target name="use-init">
    <available classname="com.icl.saxon.StyleSheet" property="hasSaxon"/>
    <available classname="org.apache.fop.tools.anttasks.Fop" property="hasFOP"/>
    <available file="${hhc.dir}\hhc.exe" property="HTMLHelpCompiler" value="${hhc.dir}\hhc.exe"/>
    <condition property="dita.extname" value=".dita">
      <not>
        <isset property="dita.extname"/>
      </not>
    </condition>
  </target>
  
  <target name="init" depends="use-init">
    <fail message="Invalid transformation type! Valid types:  xhtml, eclipsehelp, javahelp, htmlhelp, pdf, docbook">
      <condition>
        <and>
          <not>
            <equals arg1="${transtype}" arg2="xhtml" casesensitive="false"/>
          </not>
          <not>
            <equals arg1="${transtype}" arg2="eclipsehelp" casesensitive="false"/>
          </not>
          <not>
            <equals arg1="${transtype}" arg2="javahelp" casesensitive="false"/>
          </not>
          <not>
            <equals arg1="${transtype}" arg2="htmlhelp" casesensitive="false"/>
          </not>
          <not>
            <equals arg1="${transtype}" arg2="pdf" casesensitive="false"/>
          </not>
          <not>
            <equals arg1="${transtype}" arg2="docbook" casesensitive="false"/>
          </not>
        </and>
      </condition>
    </fail>
    <antcall target="dita2${transtype}"/>
  </target>
  
  <!-- property value validation begin -->
  <target name="check-arg">
    <fail message="please provide filename for dita input">
      <condition>
        <and>
        <not>
          <isset property="args.input"/>
        </not>
        <or>
          <not>
            <isset property="dita.input"/>
          </not>
          <not>
            <isset property="dita.input.dirname"/>
          </not>
        </or>
        </and>
      </condition>
    </fail>
        
    <basename property="dita.input.args" file="${args.input}"/>
    <dirname property="dita.input.dirname.args" file="${args.input}"/>
    <condition property="dita.input" value="${dita.input.args}">
      <not>
        <isset property="dita.input"/>
      </not>
    </condition>
    <condition property="dita.input.dirname" value="${dita.input.dirname.args}">
      <not>
        <isset property="dita.input.dirname"/>
      </not>
    </condition>
    
    <basename property="dita.input.filename" file="${dita.input}"/>
    
    <basename property="dita.map.filename.root" file="${dita.input.filename}" suffix=".ditamap"/>
    <basename property="dita.topic.filename.root" file="${dita.input.filename}" suffix="${dita.extname}"/>
    <dirname property="dita.map.outputdir" file="${output.dir}${file.separator}${dita.input.filename}"/>
    <fail message="please provide extension filename for dita topic file">
      <condition>
        <not>
          <isset property="dita.extname"/>
        </not>
      </condition>
    </fail>
    <fail message="please provide ouput directory">
      <condition>
        <not>
          <isset property="output.dir"/>
        </not>
      </condition>
    </fail>
    <echo>*****************************************************************</echo>
    <echo>* input = ${args.input}</echo>
    <echo>* type = ${transtype}</echo>
    <echo>* outputdir = ${output.dir}</echo>
    <echo>* extname = ${dita.extname}</echo>
    <echo>*****************************************************************</echo>
    
  </target>
  
  <!-- property value validation end -->
  
  <target name="dita-preprocess" depends="check-arg, preprocess"/>
  
  <!-- main transformation targets begin -->
  
  <target name="dita2pdf" depends="dita-preprocess, map2pdf, topic2pdf"/>  
  
  <target name="topic2pdf" if="noMap" depends="dita-preprocess">
    <antcall target="dita.topic.pdf">
      <param name="inputDir" value="${dita.temp.dir}"/>
      <param name="inputFile" value="${dita.input}"/>
      <param name="outputDir" value="${dita.map.outputdir}"/>
      <param name="outputFileRoot" value="${dita.topic.filename.root}"/>
    </antcall>
  </target>
  
  <target name="map2pdf" unless="noMap" depends="dita-preprocess">
    <antcall target="dita.map.pdf">
      <param name="inputDir" value="${dita.temp.dir}"/>
      <param name="inputMap" value="${dita.input}"/>
      <param name="outputDir" value="${dita.map.outputdir}"/>
      <param name="outputFileRoot" value="${dita.map.filename.root}"/>
      <param name="rootPath" value="${dita.input.dirname}"/>
    </antcall>
  </target>
  
  <target name="dita2docbook" depends="dita-preprocess, topic2docbook, map2docbook"/>
  
  <target name="topic2docbook" if="noMap" depends="dita-preprocess">
    <antcall target="dita.topic.docbook">
      <param name="inputFile" value="${dita.temp.dir}${file.separator}${dita.input}"/>
      <param name="outputFile" value="${dita.map.outputdir}${file.separator}${dita.topic.filename.root}.xml"/>
    </antcall>
  </target>
  
  <target name="map2docbook" unless="noMap" depends="dita-preprocess">
    <antcall target="dita.map.docbook">
      <param name="mapRoot" value="${dita.map.filename.root}"/>
      <param name="inputMap" value="${dita.input}"/>
      <param name="inputDir" value="${dita.temp.dir}"/>
      <param name="outputDir" value="${dita.map.outputdir}"/>
    </antcall>
  </target>
  
  <target name="dita2xhtml" depends="dita-preprocess, map2xhtml">
    <antcall target="dita.topics.xhtml"/>
  </target>
  
  <target name="map2xhtml" unless="noMap">
    <antcall target="dita.map.xhtml"/>
  </target>
  
  <target name="dita2javahelp" unless="noMap" depends="dita-preprocess">
    <condition property="args.javahelp.helpset" value="${dita.resource.dir}${file.separator}helpset.hs">
      <not>
        <isset property="args.javahelp.helpset"/>
      </not>
    </condition>
    <antcall target="dita.topics.javahelp"/>
    <antcall target="dita.map.javahelp"/>
    <copy file="${args.javahelp.helpset}" todir="${dita.map.outputdir}"/>
    <antcall target="compile.Java.Help">
      <param name="outputDir" value="${dita.map.outputdir}"/>
    </antcall>
  </target>
  
  <target name="dita2eclipsehelp" unless="noMap" depends="dita-preprocess">
    <condition property="args.eclipsehelp.plugin" value="${dita.resource.dir}${file.separator}plugin.xml">
      <not>
        <isset property="args.eclipsehelp.plugin"/>
      </not>
    </condition>
    <antcall target="dita.topics.eclipse"/>
    <antcall target="dita.map.eclipse"/>
    <copy file="${args.eclipsehelp.plugin}" todir="${dita.map.outputdir}"/>
  </target>
  
  <target name="dita2htmlhelp" unless="noMap" depends="dita-preprocess">
    <antcall target="dita.map.htmlhelp"/>
    <antcall target="dita.topics.htmlhelp"/>
    <antcall target="compile.HTML.Help">
      <param name="projectFile" value="${dita.map.outputdir}${file.separator}${dita.map.filename.root}.hhp"/>
    </antcall>
  </target>

</project>
<?xml version="1.0" encoding="UTF-8" ?>
<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved. -->

<!--  
 | Composite DITA topics to FO

 *-->

<!DOCTYPE xsl:stylesheet [
<!-- entities for use in the generated output (Unicode typographic glyphs) -->
  <!ENTITY gt            "&gt;"> 
  <!ENTITY lt            "&lt;"> 
  <!ENTITY rbl           "&#160;">
  <!ENTITY nbsp          "&#160;">
  <!ENTITY quot          "&#34;">
  <!ENTITY quotedblleft  "&#x201C;">
  <!ENTITY quotedblright "&#x201D;">
  <!ENTITY sqbull        "[]">
  <!ENTITY middot        "&#x00A5;">

  <!ENTITY section       "&#xA7;">
  <!ENTITY endash        "&#x2013;">
  <!ENTITY emdash        "&#x2014;">

  <!ENTITY copyr         "&#xA9;">
  <!ENTITY trademark     "&#x2122;">
  <!ENTITY registered    "&#xAE;">
<!-- create some fixed values for now for customizing later -->
  <!ENTITY copyrowner    "Sample Company">
  <!ENTITY copyrdate     "2001">
  <!ENTITY headerstub    "(stub for header content)">

]>
<xsl:stylesheet version="1.0"
                xmlns:fo="http://www.w3.org/1999/XSL/Format";
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                xmlns:fox="http://xml.apache.org/fop/extensions";
		    xmlns:java="http://xml.apache.org/xslt/java";
                    exclude-result-prefixes="java"
>
  <!-- stylesheet imports -->
  <xsl:import href="xslfo/topic2foImpl.xsl"/>
  <xsl:import href="xslfo/domains2fo.xsl"/>
  <!-- XSL-FO output with XML syntax; no actual doctype for FO -->
  <xsl:output method="xml" version="1.0" indent="yes"/>
  <!-- CONTROL PARAMETERS: -->
  <!-- offset -->
  <xsl:param name="basic-start-indent">72pt</xsl:param>
  <xsl:param name="basic-end-indent">24pt</xsl:param>
  <xsl:param name="output-related-links"/>
  <!-- GLOBALS: -->
  <xsl:variable name="dflt-ext">.jpg</xsl:variable>
  <!-- For Antenna House, set to ".jpg" -->
  <!-- Set the prefix for error message numbers -->
  <xsl:variable name="msgprefix">IDXS</xsl:variable>
  <!-- =============== start of override tweaks ============== -->
  <!-- force draft mode on all the time -->
  <xsl:param name="DRAFT" select="'no'"/>
  <!-- ====================== template rules for merged content ==================== -->
  <xsl:template match="dita" mode="toplevel">
    <xsl:call-template name="dita-setup"/>
  </xsl:template>
  <xsl:template match="*[contains(@class,' map/map ')]" mode="toplevel">
    <xsl:call-template name="dita-setup"/>
  </xsl:template>
  <!-- note that bkinfo provides information for a cover in a bookmap application, 
     hence bkinfo does not need to be instanced.  In an application that processes
     only maps, bkinfo should process as a topic based on default processing. -->
  <xsl:template match="*[contains(@class,' bkinfo/bkinfo ')]" priority="2">
    <!-- no operation for bkinfo -->
  </xsl:template>
  <!-- =========================== overall output organization ========================= -->
  <!-- this template rule defines the overall output organization -->
  <xsl:template name="dita-setup">
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format";>
      <!-- create FOP outline elements for PDF bookmarks -->
      <xsl:apply-templates mode="outline"/>
      <!-- get the overall master page defs here -->
      <xsl:call-template name="define-page-masters-dita"/>
      <!-- place generated content -->
      <xsl:call-template name="front-covers"/>
      <!--xsl:call-template name="titlepage-ednotice"/-->
      <xsl:call-template name="generated-frontmatter"/>
      <!-- place main content (fall through occurs here) -->
      <xsl:call-template name="main-doc3"/>
      <!-- return to place closing generated content -->
      <!--xsl:call-template name="index-chapter"/-->
      <!--xsl:call-template name="back-covers"/-->
    </fo:root>
  </xsl:template>
  <!-- create FOP outline elements for PDF bookmarks -->
  <xsl:template match="*" mode="outline">
    <xsl:if test="contains(@class,' topic/topic ')">
      <fox:outline>
        <xsl:attribute name="internal-destination">
          <!-- use id attribute of topic as anchor for PDF bookmark -->
          <xsl:value-of select="@id"/>
        </xsl:attribute>
        <fox:label>
          <!-- if topic contains navtitle, use that as label for PDF bookmark -->
          <!-- otherwise, use title -->
          <xsl:choose>
            <xsl:when test="navtitle">
              <xsl:apply-templates select="navtitle" mode="text-only"/>
            </xsl:when>
            <xsl:otherwise>
              <xsl:apply-templates select="title" mode="text-only"/>
            </xsl:otherwise>
          </xsl:choose>
        </fox:label>
        <xsl:apply-templates mode="outline" />
      </fox:outline>
    </xsl:if>
  </xsl:template>
  <xsl:template match="*" mode="text-only">
    <xsl:apply-templates select="text()|*" mode="text-only"/>
  </xsl:template>
  <xsl:template name="define-page-masters-dita">
    <fo:layout-master-set>
      <!-- master set for chapter pages, first page is the title page -->
      <fo:page-sequence-master master-name="chapter-master">
        <fo:repeatable-page-master-alternatives>
          <fo:conditional-page-master-reference page-position="first"
            odd-or-even="odd" master-reference="common-page"/>
          <!-- chapter-first-odd -->
          <fo:conditional-page-master-reference page-position="first"
            odd-or-even="even" master-reference="common-page"/>
          <!--chapter-first-even"/-->
          <fo:conditional-page-master-reference page-position="rest"
            odd-or-even="odd" master-reference="common-page"/>
          <!--chapter-rest-odd"/-->
          <fo:conditional-page-master-reference page-position="rest"
            odd-or-even="even" master-reference="common-page"/>
          <!--chapter-rest-even"/-->
        </fo:repeatable-page-master-alternatives>
      </fo:page-sequence-master>
      <fo:simple-page-master master-name="cover" xsl:use-attribute-sets="common-grid">
        <fo:region-body margin-top="72pt"/>
      </fo:simple-page-master>
      <fo:simple-page-master master-name="common-page" xsl:use-attribute-sets="common-grid">
        <fo:region-body margin-bottom="36pt" margin-top="12pt"/>
        <fo:region-before extent="12pt"/>
        <fo:region-after extent="24pt"/>
      </fo:simple-page-master>
    </fo:layout-master-set>
  </xsl:template>
  <xsl:template name="front-covers">
    <!-- generate an "outside front cover" page (right side) (sheet 1) -->
    <fo:page-sequence master-reference="cover">

<!--Jeff added this here -->
<fo:static-content flow-name="xsl-region-after">    
    <!-- set the brief copyright notice -->
<fo:block margin-top="3pc" text-align="right" font-size="8pt" line-height="normal">
          &copyr;  Copyright&nbsp; 
<xsl:value-of select="//*[contains(@class,' topic/copyright ')]/copyryear/@year"/>:&nbsp; 
<xsl:value-of select="//*[contains(@class,' topic/copyright ')]/*[contains(@class,' topic/copyrholder ')]"/><xsl:text> </xsl:text>
</fo:block>
    </fo:static-content>
<!--End of Jeff's addition -->

<!--Jeff is adding this section to replace what was originally there below -->
<fo:flow flow-name="xsl-region-body" >
        <!-- Custom cover art/text goes here -->
      <xsl:call-template name="place-cover-art"/>
      <!-- End of custom art section -->
      <fo:block text-align="left" font-family="Helvetica">
        <!-- set the brand and title -->
        <fo:block font-size="14pt" line-height="540%" margin-bottom="1in" text-align="right">     
   <xsl:value-of select="//*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/brand ')]"/>
</fo:block>
        <fo:block font-size="22pt" font-weight="bold" line-height="140%">
         <xsl:value-of select="//*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/prodname ')]"/>
        </fo:block>
        <!-- set the subtitle -->
        <fo:block font-size="8pt" line-height="140%" margin-bottom="1in" font-style="italic">
          Version <xsl:value-of select="//*[contains(@class,' topic/prodinfo ')]/vrmlist/vrm/@version"/>
        </fo:block>
      </fo:block>     


 <!-- set the brief timestamp -->
<fo:block margin-top="3pc" text-align="right" font-size="8pt" line-height="normal">
          Derby Document build: <xsl:call-template name="TodaysDate"/>
</fo:block> 


     
</fo:flow>

<!-- Removing
      <fo:flow flow-name="xsl-region-body">
        <fo:block text-align="right" font-family="Helvetica">
          
          <fo:block font-size="30pt" font-weight="bold" line-height="140%">
            <xsl:value-of select="//*[contains(@class,' bkinfo/bkinfo ')]/*[contains(@class,' topic/title ')]"/>
                      <xsl:apply-templates select="//*[contains(@class,' bkinfo/bkinfo ')]/@id"/>
          </fo:block>
          <fo:block font-size="24pt" font-weight="bold" line-height="140%" margin-bottom="1in">
            <xsl:value-of select="//*[contains(@class,' bkinfo/bkinfo ')]/*[contains(@class,' bkinfo/bktitlealts ')]/*[contains(@class,' bkinfo/bksubtitle ')]"/>
          </fo:block>
          <fo:block font-size="11pt" font-weight="bold" line-height="1.5">
            <xsl:text>[vertical list of authors]</xsl:text>
          </fo:block>
          <xsl:for-each select="//author">
            <fo:block font-size="11pt" font-weight="bold" line-height="1.5">
                [<xsl:value-of select="."/>] </fo:block>
          </xsl:for-each>
          <fo:block margin-top="3pc" font-size="11pt" font-weight="bold"
            line-height="normal"> &copyr; &nbsp;&nbsp; Copyright
              &nbsp;&nbsp;<xsl:value-of select="//*[contains(@class,' bkinfo/orgname ')]"/>
            <xsl:text/>
            <xsl:value-of
              select="//*[contains(@class,' bkinfo/bkcopyrfirst ')]"/>,<xsl:value-of
            select="//*[contains(@class,' bkinfo/bkcopyrlast ')]"/>. </fo:block>
        </fo:block>
        <xsl:call-template name="place-cover-art"/>
      </fo:flow>
-->
    </fo:page-sequence>
    <!-- generate an "inside front cover" page (left side) (sheet 2) -->
    <fo:page-sequence master-reference="cover">
      <fo:flow flow-name="xsl-region-body">
        <fo:block xsl:use-attribute-sets="p" color="purple" text-align="center"/>
      </fo:flow>
    </fo:page-sequence>
  </xsl:template>

<!-- Timestamp template -->
<xsl:template name="TodaysDate">
<fo:block>
    <xsl:value-of select="java:format(java:java.text.SimpleDateFormat.new
('MMMM d, yyyy, h:mm:ss a (zz)'), java:java.util.Date.new())"/>
 </fo:block>
 </xsl:template>


<!-- Jeff is adding this to replace the piece below -->
<xsl:template name="place-cover-art">
<!-- product specific art, etc. -->
<fo:block margin-top="2pc" font-family="Helvetica" border-color="black" border-width="thin" padding="6pt">
  <fo:block font-size="12pt" line-height="100%" margin-top="12pc" margin-bottom="12pc" text-align="right">
   Derby Logo
    <!-- one might imbed SVG directly here for use with FOP, for instance -->
  </fo:block>
</fo:block>
</xsl:template>


<!-- Removing...

  <xsl:template name="place-cover-art">
    <fo:block margin-top="2pc" font-family="Helvetica" border-style="dashed"
      border-color="black" border-width="thin" padding="6pt">
      <fo:block font-size="12pt" line-height="100%" margin-top="12pc"
        margin-bottom="12pc" text-align="center">
        <fo:inline color="purple" font-weight="bold">[cover art/text goes here]</fo:inline>
      </fo:block>
    </fo:block>
  </xsl:template>
-->


  <!-- internal title page -->
  <!-- edition notices -->
  <!-- document notice data -->
  <!-- grant of usage data -->
  <!-- copyright info -->
  <!-- disclaimers -->
  <!-- redirect to notices page -->
  <!-- definitions for placement of Front Matter content -->
  <xsl:template name="generated-frontmatter">
    <fo:page-sequence master-reference="common-page" format="i" initial-page-number="1">
      <!-- Static setup for the generated pages -->
      <!-- header -->
      <fo:static-content flow-name="xsl-region-before">
        <xsl:variable name="booktitle">
          <xsl:value-of select="//*/title"/>
        </xsl:variable>
        <fo:block font-size="8pt" line-height="8pt">
          <xsl:value-of select="$booktitle"/>
        </fo:block>
      </fo:static-content>
      <!-- footer -->
      <fo:static-content flow-name="xsl-region-after">
        <fo:block text-align="center" font-size="10pt" font-weight="bold" font-family="Helvetica">
          <fo:page-number/>
        </fo:block>
      </fo:static-content>
      <!-- Flow setup for the Front Matter "body" (new "chapters" start on odd pages) -->
      <fo:flow flow-name="xsl-region-body">
        <!-- first, generate a compulsory Table of Contents -->
        <fo:block line-height="12pt" font-size="10pt" font-family="Helvetica" id="page1-1">
          <fo:block text-align="left" font-family="Helvetica">
            <fo:block>
              <fo:leader color="black" leader-pattern="rule"
                rule-thickness="3pt" leader-length="2in"/>
            </fo:block>
            <fo:block font-size="20pt" font-weight="bold" line-height="140%">
              Contents </fo:block>
            <xsl:call-template name="gen-toc"/>
          </fo:block>
        </fo:block>
      </fo:flow>
    </fo:page-sequence>
  </xsl:template>
  <xsl:template name="unused-toc">
    <!-- generate the List of Figures -->
    <!-- To be done
        <fo:block text-align="left" font-family="Helvetica" break-before="page">
    <fo:block><fo:leader color="black" leader-pattern="rule" rule-thickness="3pt" leader-length="2in"/></fo:block>
          <fo:block font-size="20pt" font-weight="bold" line-height="140%">
            Figures
          </fo:block>
          <xsl:call-template name="gen-figlist"/>
        </fo:block>
-->
    <!-- generate the List of Tables -->
    <!-- To be done
        <fo:block text-align="left" font-family="Helvetica" break-before="page">
    <fo:block><fo:leader color="black" leader-pattern="rule" rule-thickness="3pt" leader-length="2in"/></fo:block>
          <fo:block font-size="20pt" font-weight="bold" line-height="140%">
            Tables
          </fo:block>
          <xsl:call-template name="gen-tlist"/>
        </fo:block>
-->
    <!-- To be done: while still in Roman numbering, all the bkfrontm content... -->
  </xsl:template>
  <!-- initiate main content processing within basic page "shell" -->
  <xsl:template name="main-doc3">
    <fo:page-sequence master-reference="chapter-master">
      <!-- header: single page -->
      <fo:static-content flow-name="xsl-region-before">
        <!-- book title here -->
        <xsl:variable name="booktitle">
          <xsl:value-of select="//*/title"/>
        </xsl:variable>
        <fo:block font-size="8pt" line-height="8pt">
          <xsl:value-of select="$booktitle"/>
        </fo:block>
      </fo:static-content>
      <!-- footer static stuff -->
      <fo:static-content flow-name="xsl-region-after">
        <fo:block text-align="center" font-size="10pt" font-weight="bold" font-family="Helvetica">
          <fo:page-number/>
        </fo:block>
      </fo:static-content>
      <!-- special footers for first page of new chapter -->
      <!-- Flow setup for the main content (frontm, body, backm) (new "chapters" start on odd pages) -->
      <fo:flow flow-name="xsl-region-body">
        <!-- chapter body content here -->
        <fo:block text-align="left" font-size="10pt" font-family="Helvetica" break-before="page">
          <xsl:apply-templates/>
        </fo:block>
      </fo:flow>
    </fo:page-sequence>
  </xsl:template>
  <!-- set up common attributes for all page definitions -->
  <xsl:attribute-set name="common-grid">
    <xsl:attribute name="page-width">51pc</xsl:attribute>
    <!-- A4: 210mm -->
    <xsl:attribute name="page-height">66pc</xsl:attribute>
    <!-- A4: 297mm -->
    <xsl:attribute name="margin-top">3pc</xsl:attribute>
    <xsl:attribute name="margin-bottom">3pc</xsl:attribute>
    <xsl:attribute name="margin-left">6pc</xsl:attribute>
    <xsl:attribute name="margin-right">6pc</xsl:attribute>
  </xsl:attribute-set>
  <!-- set up common attributes for all page definitions -->
  <xsl:attribute-set name="maptitle">
    <xsl:attribute name="font-size">16pt</xsl:attribute>
    <xsl:attribute name="font-weight">bold</xsl:attribute>
  </xsl:attribute-set>
  <!-- set up common attributes for all page definitions -->
  <xsl:attribute-set name="mapabstract">
    <xsl:attribute name="margin-top">3pc</xsl:attribute>
    <xsl:attribute name="margin-bottom">3pc</xsl:attribute>
    <xsl:attribute name="margin-left">6pc</xsl:attribute>
    <xsl:attribute name="margin-right">6pc</xsl:attribute>
  </xsl:attribute-set>
  <!-- main toc generator -->
  <xsl:template name="gen-toc">
    <!-- get by main part: body -->
    <xsl:for-each select="//map/*[contains(@class,' topic/topic ')]">
      <fo:block text-align-last="justify" margin-top="6pt" margin-left="4.9pc">
         <fo:basic-link internal-destination="{string(@id)}">
 <fo:inline font-weight="bold">
          <!--Chapter <xsl:number level="any" from="map"/>. -->
          <xsl:value-of select="*[contains(@class,' topic/title ')]"/>
       
  </fo:inline>
        <fo:leader leader-pattern="dots"/>
        <fo:page-number-citation ref-id="{generate-id()}"/>
      </fo:basic-link>

      </fo:block>
      <xsl:call-template name="get-tce2-section"/>
    </xsl:for-each>
  </xsl:template>
  <!-- 2nd level header -->
  <xsl:template name="get-tce2-section">
    <xsl:for-each select="*[contains(@class,' topic/topic ')]">
      <fo:block text-align-last="justify" margin-left="7.5pc">
        <fo:basic-link internal-destination="{string(@id)}">
<fo:inline font-weight="bold">
          <xsl:value-of select="*[contains(@class,' topic/title ')]"/>
        </fo:inline>
   <fo:leader leader-pattern="dots"/>
        <fo:page-number-citation ref-id="{generate-id()}"/>
      </fo:basic-link>
      </fo:block>
      <xsl:call-template name="get-tce3-section"/>
    </xsl:for-each>
  </xsl:template>
  <!-- 3nd level header -->
  <xsl:template name="get-tce3-section">
    <xsl:for-each select="*[contains(@class,' topic/topic ')]">
      <fo:block text-align-last="justify" margin-left="9pc">
<fo:basic-link internal-destination="{string(@id)}">
        <xsl:value-of select="*[contains(@class,' topic/title ')]"/>
        <fo:leader leader-pattern="dots"/>
        <fo:page-number-citation ref-id="{generate-id()}"/>
      </fo:basic-link>
      </fo:block>
      <xsl:call-template name="get-tce4-section"/>
    </xsl:for-each>
  </xsl:template>
  <!-- 4th level header -->
  <xsl:template name="get-tce4-section">
    <xsl:for-each select="bksubsect1">
      <fo:block text-align-last="justify" margin-left="+5.9pc">
<fo:basic-link internal-destination="{string(@id)}">
<xsl:value-of select="*/title"/>
        <fo:leader leader-pattern="dots"/>
        <fo:page-number-citation ref-id="{generate-id()}"/>
      </fo:basic-link>
      </fo:block>
      <xsl:call-template name="get-tce5-section"/>
    </xsl:for-each>
  </xsl:template>
  <!-- 5th level header -->
  <xsl:template name="get-tce5-section">
    <xsl:for-each select="bksubsect2">
      <fo:block text-align-last="justify" margin-left="+5.9pc">
        <fo:basic-link internal-destination="{string(@id)}">
<xsl:value-of select="*/title"/>
        <fo:leader leader-pattern="dots"/>
        <fo:page-number-citation ref-id="{generate-id()}"/>
      </fo:basic-link>

      </fo:block>
      <!--xsl:call-template name="get-tce6-section"/-->
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

Reply via email to