--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This file uses the question and answer dtd
+ QAML Version 2.4. More info about it can be found in the dtd file.
+ There should be some xslt stylesheets in this distribution
+ which produce ascii, html and pdf files
+
+ Usage of attributes:
+ p: attr "class" can have "pre" (for code) or "li" for lists. No class attr is the normal
+-->
+
+<?xml-stylesheet type="text/css" href="qaml.css"?>
+<!DOCTYPE faq SYSTEM "qaml-xml.dtd">
+
+<faq>
+
+<head>
+ <title>FOP - Frequently Asked Questions</title>
+ <version>1.0 1999/11/24 </version>
+ <maintain>
+ <name>James Tauber</name>
+ <name>Fotis Jannidis</name>
+ <email>jtauber@jtauber.com</email>
+ <email>jannidis@lrz.uni-muenchen.de</email><subject>FOP</subject>
+ </maintain>
+</head>
+
+
+<body>
+<section class="level1">
+ <title>FAQ - Running FOP</title>
+
+<qna>
+ <q>Q: Running FOP I get the following messages or something similar:
+ "WARNING: Unknown formatting object http://www.w3.org/XSL/Format/1.0^root"
+ and then a FATAL Error "Root element must be root, not default FO".</q>
+ <a>
+ <p>A: Make sure that you have specified as the namespace for fo the
+ following string: "http://www.w3.org/1999/XSL/Format". It is analogous
+ to the xslt namespace "http://www.w3.org/1999/XSL/Transform"
+ </p>
+ </a>
+</qna>
+
+<!-- Template for next question
+<qna>
+ <q></q>
+ <a><p></p></a>
+</qna>
+ -->
+
+</section>
+
+
+<!-- Template for compiling section
+<section class="level1">
+ <title>FAQ - Compiling FOP</title>
+
+<qna>
+ <q></q>
+ <a><p></p></a>
+</qna>
+</section>
+-->
+
+</body>
+</faq>
+
--- /dev/null
+/* Use Times New Roman for default font */
+
+
+body {
+ background-color:#FFFF99;
+ font-family: serif,Times,"Times New Roman";
+ font-size: 12pt;
+ margin-left: 20%;
+ margin-right: 20%;
+}
+
+h1 {
+ font-size: 16pt;
+ margin-top: 5pt;
+ margin-bottom: 5pt;
+
+}
+
+h1.title {
+ font-size: 18pt;
+ margin-top: 10pt;
+ margin-bottom: 10pt;
+}
+
+h2 {
+ font-size: 14pt;
+}
+
+h3 {
+ font-size: 12pt;
+ font-weight: bold;
+}
+
+
+p.pre {
+ font-family: monospace,Courier,"Courier New";
+ font-size: 10pt;
+}
+
+p.contact {
+ font-size: 9pt;
+ text-align= right;
+}
--- /dev/null
+<!--
+ This is an XML DTD for writing Frequently Asked Questions FAQs.
+ QAML Version 2.4 last modified Oct 6 1999
+ by Justin Higgins (jhiggins@dn.net)
+ www.faq.org
+ and Rick Jelliffe (ricko@gate.sinica.edu.tw)
+ www.ascc.net/xml/
+
+ It is based on the QAML 1.0 DTD, with minimal alterations
+ for XML, I18N (internationalization), XLL hypertext linking,
+ style, accessability and tracking. Multi-part answers are
+ supported a little better. Corporate and "look-and-feel"
+ needs are supported better: rights, PICS, logos, advertising
+ sections, corporate addresses.
+
+ * XML: Documents written using the QAML 1.0 DTD
+ are structurally compatible with this DTD; however, such
+ documents need to be converted into "well-formed" XML:
+ make sure they are fully tagged with start-end tags for
+ every element. If you are not using 7-bit ACSCII or
+ UTF-8, specify the appropriate XML encoding header. If you are
+ not using English, specify the appropriate xml:lang language
+ attributes. Use lower-case element type names.
+
+ * I18N: All elements with data content, and the top element,
+ may have a language attribute. People may have alternative names
+ in different scripts: e.g., a Chinese name and an English
+ name.
+
+ * XLink: All elements may have an ID attribute. A fixed xml:link
+ attribute has been added to link and archive, for housekeeping.
+ (Link is used like HTML's <a> and <img> and <link> element types.
+ Archive points to the official location of the current and
+ precious version of the FAQ, and to translations.)
+ Note that the xml:show attribute is available in this DTD, but
+ may not be available at the user's system. The following
+ link roles are defined by this DTD, but you can add your own:
+ "Text", "Image", "Sound", "Software", "Data", "Interactive"
+ are the base Dublin Core categories for the resource types.
+ A logo is a special XLink: it just points to some icon or logo
+ or picture. (The logo does not represent a clickable hypertext
+ link: it is just for graphical purposes.) The link elements at
+ the start of the head element are intended for similar uses as
+ the HTML link element type: a role "bgimage" is defined by this DTD.
+
+ * Style: An element "span" is introduced with the same use as in HTML.
+ All elements have a class attribute, which may help better
+ processing in CSS. The following classes are defined by this DTD,
+ but you can add your own:
+ For section elements: "intro" (a preamble), "rights" (copyright),
+ "advert" (for advertising), "info" (for corporate info about the
+ siteowner, subject, product, or sponsor) and "links" (related sites);
+ For p elements: "li" and "pre", with the HTML meanings: there
+ is no provision for nested lists or tables;
+ For span elements: "tt", "em", "i", "b" & "strong", with the HTML meanings;
+ Also: "definition" and "keyword", for indexing
+ For p and span elements: "sent", with the JSML meaning
+ (a sentence);
+ For the span element type: "literal" with the JSML meaning
+ (to be spelled out as letters)-this helps WAI too;
+ For the span element type: "abbr" and "acronym" are also available,
+ (an acronym is pronouncable: NASA), roughly from HTML
+ For the div element type: "ul" and "ol" with the HTML meanings.
+ The div element type is new with QAML 2.1; we found we could
+ not create good HTML lists without it. However, we have not
+ allowed nested lists with it, at this stage.
+
+ Note: if you use class="pre", also specify xml:space="preserve"
+ to inhibit the stripping of white space by the XML processor.
+ If you are attempting "ASCII art", use
+ <p class="pre" xml:space="preserve" alt="explanatory text">...
+ where the alt attribute holds some explanatory text.
+
+ Please note that you should not rely on format effects
+ (font, boldness) to convey meaning in these FAQs. The output
+ system of the user may not support them.
+
+ If you do not put your own numbers in titles, you can signify this
+ by specifying the autonum attribute on a body or section to "yes".
+
+ * Accessability: QAML has been checked against the W3C WAI guidelines;
+ the link, p & span elements can have an "title" attribute.
+ The span element can have a class="literal", for contractions to be
+ spoken out in individual letters, "abbr" for an abbreviations,
+ and "acronym" for acronyms. The latter two may be marked up with
+ title attribute for better pronunciation. Multiple logos are possible,
+ to allow sound as well as visual logos.
+ Refer /www.w3.org/TR/WD-WAI-PAGEAUTH/
+
+ * Dublin Core: The mappings to Dublin Core metadata are noted.
+ The Dublin Core type for FAQs is "faq". (The althdr element
+ can be used similar to the HTML meta element, to add arbitrary
+ kinds of metadata.)
+
+ * Tracking: A data attribute has been added to various elements.
+ Use an ISO 8601 format date: yyyy-mm-dd or yyyymmdd.
+ The archive element can link to previous versions and translations.
+ The maintainer can advise the preferred subject line to be used
+ in emails about the FAQ, using the element type "subject".
+ A version element has been added to element type head
+
+ * PICS and rights: PICS labels can be added to the header using the
+ label element type. Refer http://www.w3.org/PICS/
+ A text version concerning rights can be given in a section
+ with a class="rights" attribute.
+
+ * PDA and Wireless Systems: to allow better interaction with PDA and
+ wireless systems, which have very small screen real-estate, the
+ <a> answer element type can take a "gist" attribute: this can have
+ a 1 to 5 word summary of the answer. The PDA would use that for example:
+ Q: What is a dog?
+ A: Barking animal >more>
+ Q: Are dogs cats?
+ A: No! >more>
+ where the ">more>" links to the full answer.
+
+ QAML Version 1.0 last modified 16 July 1997
+ by Justin Higgins (jhiggins@dn.net)
+
+ Public identifier for SGML version of QAML Version 1,0:
+ +//ISBN 82-7640-023//DTD Frequently Asked Questions//EN//19940603
+
+ Public identifier for this XML version:
+ +//IDN faq.org//DTD Frequently Asked Questions 2.3//EN//XML
+
+ Rights: This DTD is copyright 1994-1999 Justin Higgins and Rick
+ Jelliffe. You can use it freely for any purpose under the terms
+ of the MPL or GPL. Documents created using this DTD are copyright
+ their (human or corporate) authors and maintainers, subject to
+ local law, unless explicitly noted in the FAQ text or markup.
+
+ Thanks: Eric Luhrs, C.T.Chang, Andy Leighton, David Pawson
+
+ Notice: ID attributes will soon be made #REQUIRED on section and on
+ qna. Please always use them.
+
+-->
+<!-- New in version 2.4
+ email not mandatory for authors and contributors
+ block of links allowed at start of head
+-->
+<!-- New in version 2.3
+ Version element added
+ Allow someone to have more than one email address (deprecated)
+ Namespace declaration added
+-->
+<!ELEMENT faq (head, body) >
+
+
+<!ELEMENT a (p | div)+ >
+<!ELEMENT address (#PCDATA) >
+<!ELEMENT althdr (type, content) ><!-- DC:DESCRIPTION -->
+<!ELEMENT archive (#PCDATA) ><!-- DC:IDENTIFIER? -->
+<!ELEMENT author (logo*, name+, email?) ><!-- DC:CREATOR -->
+<!ELEMENT body (section+ | qna+) >
+<!ELEMENT content (#PCDATA) >
+<!ELEMENT contributor (logo*, name, email?) ><!-- DC:CONTRIBUTOR -->
+<!ELEMENT div (p)+ >
+<!ELEMENT email (#PCDATA) >
+<!ELEMENT head (title, version?, maintain+, hdr*, althdr*, archive*,label*, link*)>
+<!ELEMENT hdr (type, content) ><!-- DC:DESCRIPTION -->
+<!ELEMENT label (#PCDATA) >
+<!ELEMENT link (#PCDATA) >
+<!ELEMENT logo (#PCDATA) >
+<!ELEMENT maintain (logo*, name+, email+, subject?, address?) >
+ <!-- DC:AUTHOR or DC:PUBLISHER -->
+<!ELEMENT name (#PCDATA) >
+<!ELEMENT p (#PCDATA | link | span)* >
+<!ELEMENT q (#PCDATA | link | span)* >
+<!ELEMENT qna (logo*, q, (logo?,topic?,author?,contributor*,a)+)>
+<!ELEMENT section (logo*, title, (qna+ | q+ | ( p | div | section)+)) >
+<!ELEMENT span (#PCDATA) >
+<!ELEMENT subject (#PCDATA) >
+<!ELEMENT title (#PCDATA) ><!-- DC:TITLE -->
+<!ELEMENT topic (#PCDATA) ><!-- DC:TITLE -->
+<!ELEMENT type (#PCDATA) ><!-- DC:SUBJECT -->
+<!ELEMENT version (#PCDATA) >
+ <!-- Type categories include:
+ Animals
+ Art
+ Audio
+ Business & Finance
+ Computers
+ Programming
+ Software
+ Countries
+ Food
+ Games
+ Health
+ History
+ Hobbies
+ Internet
+ Learning
+ Misc.
+ Movies
+ Music
+ People
+ Politics & Law
+ Books & Magazines
+ Religion
+ Science
+ Sports
+ Technology
+ Television & Radio -->
+
+
+<!ATTLIST a id ID #IMPLIED
+ class CDATA #IMPLIED
+ gist CDATA #IMPLIED
+ xml:lang CDATA #IMPLIED >
+<!ATTLIST archive href CDATA #REQUIRED
+ type CDATA #IMPLIED
+ class CDATA #IMPLIED
+ xml:link CDATA #FIXED "simple" >
+<!ATTLIST author id ID #IMPLIED
+ class CDATA #IMPLIED >
+<!ATTLIST althdr id ID #IMPLIED
+ class CDATA #IMPLIED
+ schema CDATA #IMPLIED >
+<!ATTLIST div id ID #IMPLIED
+ class CDATA #IMPLIED
+ xml:lang NMTOKEN #IMPLIED >
+<!ATTLIST body id ID #IMPLIED
+ class CDATA #IMPLIED
+ xml:lang NMTOKEN #IMPLIED
+ autonum ( yes | no ) "no" >
+<!ATTLIST content id ID #IMPLIED
+ class CDATA #IMPLIED >
+<!ATTLIST contributor id ID #IMPLIED
+ class CDATA #IMPLIED >
+<!ATTLIST email id ID #IMPLIED
+ class CDATA #IMPLIED >
+<!ATTLIST faq id ID #IMPLIED
+ xmlns:html CDATA #FIXED "http://www.w3.org/TR/REC-html40"
+ class CDATA #IMPLIED
+ xml:lang NMTOKEN #IMPLIED
+ date CDATA #IMPLIED ><!-- DC:DATE -->
+<!ATTLIST head id ID #IMPLIED
+ class CDATA #IMPLIED >
+<!ATTLIST hdr id ID #IMPLIED
+ class CDATA #IMPLIED
+ schema CDATA #IMPLIED >
+<!ATTLIST label PICSversion CDATA #IMPLIED >
+<!ATTLIST link id ID #IMPLIED
+ class CDATA #IMPLIED
+ xml:link CDATA #FIXED "simple"
+ href CDATA #REQUIRED
+ alt CDATA #IMPLIED
+ role CDATA #IMPLIED
+ title CDATA #IMPLIED
+ show (embed|replace|new) "new"
+ actuate (auto|user) "user"
+ behavior CDATA #IMPLIED >
+<!ATTLIST logo
+ id ID #IMPLIED
+ class CDATA #IMPLIED
+ alt CDATA #IMPLIED
+ href CDATA #REQUIRED
+ xml:lang NMTOKEN #IMPLIED
+ xml:link CDATA "simple"
+ show (embed) "embed"
+ actuate (auto|user) "auto" >
+<!ATTLIST maintain id ID #IMPLIED
+ class CDATA #IMPLIED >
+<!ATTLIST name id ID #IMPLIED
+ class CDATA #IMPLIED >
+<!ATTLIST p id ID #IMPLIED
+ class CDATA #IMPLIED
+ title CDATA #IMPLIED
+ xml:lang NMTOKEN #IMPLIED
+ alt CDATA #IMPLIED
+ date CDATA #IMPLIED
+ xml:space ( default | preserve ) #IMPLIED >
+<!ATTLIST q id ID #IMPLIED
+ class CDATA #IMPLIED
+ xml:lang NMTOKEN #IMPLIED >
+<!ATTLIST qna id ID #IMPLIED
+ class CDATA #IMPLIED
+ xml:lang NMTOKEN #IMPLIED
+ date CDATA #IMPLIED >
+<!ATTLIST section id ID #IMPLIED
+ class CDATA #IMPLIED
+ gist CDATA #IMPLIED
+ xml:lang NMTOKEN #IMPLIED
+ autonum ( yes | no ) "no" >
+<!ATTLIST span id ID #IMPLIED
+ class CDATA #IMPLIED
+ title CDATA #IMPLIED
+ xml:lang NMTOKEN #IMPLIED >
+<!ATTLIST title id ID #IMPLIED
+ class CDATA #IMPLIED
+ xml:lang NMTOKEN #IMPLIED >
+<!ATTLIST topic id ID #IMPLIED
+ class CDATA #IMPLIED
+ xml:lang NMTOKEN #IMPLIED
+ alt CDATA #IMPLIED >
+<!ATTLIST type id ID #IMPLIED
+ class CDATA #IMPLIED >
+
+<!-- Why use QAML instead of HTML?
+ Because unconstrained HTML is too powerful and loose! -->
+
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This file uses the question and answer dtd
+ QAML Version 2.4. More info about it can be found in the dtd file.
+ There should be some xslt stylesheets in this distribution
+ which produce ascii, html and pdf files
+
+Usage of attributes:
+ section: attr "class" has the value "level1", "level2" etc. to mark the level of nesting
+ p: attr "class" can have "pre" (for code) or "li" for lists. No class attr is the normal
+-->
+
+<?xml-stylesheet type="text/css" href="qaml.css"?>
+<!DOCTYPE faq SYSTEM "qaml-xml.dtd">
+
+<faq>
+
+<head>
+ <title>FOP</title>
+ <version>1.0 1999/11/24 </version>
+ <maintain>
+ <name>James Tauber</name>
+ <name>Fotis Jannidis</name>
+ <email>jtauber@jtauber.com</email>
+ <email>jannidis@lrz.uni-muenchen.de</email><subject>FOP</subject>
+ </maintain>
+</head>
+
+<body>
+
+<section class="level1">
+ <title>What is FOP?</title>
+ <p>FOP is the world's first print formatter driven by XSL
+ formatting objects. It is a Java 1.1 application that reads a
+ formatting object tree and then turns it into a PDF document.
+ The formatting object tree, can be in the form of an XML
+ document (output by an XSLT engine like XT or Xalan) or can be
+ passed in memory as a DOM Document or (in the case of
+ XT or Xalan) SAX events.
+ </p>
+ <p>FOP is part of Apache's XML project. The homepage of FOP is
+ <link href="http:/xml.apache.org/fop">http:/xml.apache.org/fop</link>.
+ </p>
+</section>
+
+<section class="level1">
+ <title>Compiling FOP</title>
+ <section class="level2">
+ <title>1. Prerequisites</title>
+<section class="level3">
+ <title>a) Java 1.1.x or later</title>
+ <p></p>
+ </section>
+ <section class="level3">
+ <title>b) XT from James Clark</title>
+ <p>Some of the Java source code in FOP is generated from XML using
+ XSLT. XT must be used to generate this code.</p>
+ <p>XT is an XSL stylesheet processor written in java. At the moment you
+ can't use any other processor, because the make file makes use of some
+ proprietary features of Clark's xt which allow to write output in more
+ then one document. You can find XT at <link href="http://www.jclark.com/xml/xt.html">
+ James Clark's website</link>. You have to use XT version 19991105 or later.</p>
+ <p>(Under windows you shouldn't use the prepackaged xt.exe but also the
+ generic jar file, otherwise make won't work)
+ </p>
+ <p>XT relies on an sax parser like XP (also J. Clark), which can be
+ downloaded at <link href="http://www.jclark.com/xml/xp/index.html">James
+ Clark's Website</link>
+ </p>
+ </section>
+ <section class="level3">
+ <title>c) make</title>
+ <p>Under windows it has been reported that the use of the cygnus solutions port
+ of the GNU utilities works. You can find it at
+ <link href="http://sourceware.cygnus.com/cygwin/">Cygnus Solutions</link>
+ </p>
+ </section>
+ </section>
+</section>
+
+<section class="level1">
+ <title>Running FOP</title>
+ <section class="level2">
+ <title>1) Prerequisites</title>
+ <p>Following software must be installed:</p>
+ <p>a) Java 1.1.x or later</p>
+ <p>b) A sax parser like <link href="http://www.jclark.com/xml/xp/index.html">XP</link>.</p>
+ <p>c) If you have to produce the flow objects files, which are the input for FOP,
+ you need a transformation utility to create this files from your xml files.
+ Normally this is an XSLT stylesheet processor like
+ <link href="http://www.jclark.com/xml/xt.html">XT</link>
+ or <link href="http://xml.apache.org/xalan/index.html">XALAN</link>.
+ </p>
+ </section>
+ <section class="level2">
+ <title>2) Starting FOP as an standalone application</title>
+ <p>There are two ways of running FOP from the command line.</p>
+ <section class="level3">
+ <title>a) Method One</title>
+ <p>One is to first use an XSLT engine to produce the formatting object tree as an
+ XML document and then running the class org.apache.fop.apps.CommandLine with the
+ formatting object file name and PDF filename as arguments. You will need to include
+ FOP, SAX and your SAX Parser in your classpath and so you might invoke
+ </p>
+ <p class="pre">java -cp fop_x_xx_x.jar;sax.jar;xp.jar</p>
+ <p class="pre">org.apache.fop.apps.CommandLine formatting-tree-file pdf-file</p>
+ <p>If your SAX Parser is other than XP, you will need to set the property
+ org.xml.sax.parser to the SAX Parser class to use.
+ </p>
+ </section>
+ <section class="level3">
+ <title>b) Method Two</title>
+ <p>Rather than performing transformation with an XSLT before invoking FOP, it is
+ possible, if you use XT as your XSLT engine, to just call FOP and have it call
+ XT for you. To do this, run the class org.apache.fop.apps.CommandLine with the
+ source XML file name, XSL file name and PDF file name as arguments. You will
+ need to include FOP, SAX, your SAX Parser and XT in your classpath and so you might
+ invoke
+ </p>
+ <p class="pre">java -cp fop_x_xx_x.jar;sax.jar;xp.jar;xt.jar</p>
+ <p class="pre">org.apache.fop.apps.CommandLine xml-file xsl-file pdf-file</p>
+ <p>Again, if your SAX Parser is other than XP, you will need to set the property
+ org.xml.sax.parser to the SAX Parser class to use.
+ </p>
+ <p>Note: If you are using java 2 or later (i.e. jdk 1.2. or later) you can put all
+ needed jar files into the subdirectory jdk1.2.x\jre\lib\ext (windows example). Then
+ FOP can be started without classpath:
+ </p>
+ <p class="pre">java org.apache.fop.apps.CommandLine formatting-tree-file pdf-file</p>
+ </section>
+ </section>
+</section>
+
+<section class="level1">
+ <title>What's Implemented?</title>
+ <section class="level2">
+ <title>a) Formatting Objects</title>
+ <div class="list">
+ <p class="li">root </p>
+ <p class="li">layout-master-set </p>
+ <p class="li">simple-page-master </p>
+ <p class="li">region-body </p>
+ <p class="li">region-before </p>
+ <p class="li">region-after </p>
+ <p class="li">page-sequence </p>
+ <p class="li">sequence-specification </p>
+ <p class="li">sequence-specifier-single </p>
+ <p class="li">sequence-specifier-repeating </p>
+ <p class="li">sequence-specifier-alternating </p>
+ <p class="li">flow </p>
+ <p class="li">static-content </p>
+ <p class="li">block </p>
+ <p class="li">list-block </p>
+ <p class="li">list-item </p>
+ <p class="li">list-item-label </p>
+ <p class="li">list-item-body </p>
+ <p class="li">page-number </p>
+ <p class="li">display-sequence </p>
+ <p class="li">inline-sequence </p>
+ <p class="li">display-rule </p>
+ <p class="li">display-graphic </p>
+ </div>
+ </section>
+ <section class="level2">
+ <title>b) Properties</title>
+ <div class="list">
+ <p class="li">end-indent </p>
+ <p class="li">page-master-name </p>
+ <p class="li">page-master-first </p>
+ <p class="li">page-master-repeating </p>
+ <p class="li">page-master-odd </p>
+ <p class="li">page-master-even </p>
+ <p class="li">margin-top </p>
+ <p class="li">margin-bottom </p>
+ <p class="li">margin-left </p>
+ <p class="li">margin-right </p>
+ <p class="li">extent </p>
+ <p class="li">page-width </p>
+ <p class="li">page-height </p>
+ <p class="li">flow-name </p>
+ <p class="li">font-family </p>
+ <p class="li">font-style </p>
+ <p class="li">font-weight </p>
+ <p class="li">font-size </p>
+ <p class="li">line-height </p>
+ <p class="li">text-align </p>
+ <p class="li">text-align-last </p>
+ <p class="li">space-before.optimum </p>
+ <p class="li">space-after.optimum </p>
+ <p class="li">start-indent </p>
+ <p class="li">end-indent </p>
+ <p class="li">provisional-distance-between-starts </p>
+ <p class="li">provisional-label-separation </p>
+ <p class="li">rule-thickness </p>
+ <p class="li">color </p>
+ <p class="li">wrap-option </p>
+ <p class="li">white-space-treatment </p>
+ <p class="li">break-before </p>
+ <p class="li">break-after </p>
+ <p class="li">text-indent </p>
+ <p class="li">href</p>
+ </div>
+ </section>
+</section>
+
+<section class="level1">
+ <title>Bugs</title>
+ <p> </p>
+</section>
+
+<section class="level1">
+ <title>FOP Relevant Specifications</title>
+ <div class="list">
+ <p class="li"><link href="http://www.w3.org/TR/REC-xml">XML Recommendation</link></p>
+ <p class="li"><link href="http://www.w3.org/TR/WD-xsl/">XSL-FO Working Draft</link></p>
+ <p class="li"><link href="http://www.w3.org/TR/xslt">XSLT Recommandation</link></p>
+ <p class="li"><link href="http://partners.adobe.com/asn/developer/acrosdk/DOCS/pdfspec.pdf">PDF Documentation</link></p>
+ <p class="li"><link href="http://www.megginson.com/SAX/">Simple API for XML (SAX)</link></p>
+ <p class="li"><link href="http://www.w3.org/TR/REC-DOM-Level-1">Document Object Model (DOM)</link></p>
+ <p class="li"><link href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML Recommendation</link></p>
+ <p class="li"><link href="http://java.sun.com/products/jdk/1.1/docs/index.html">Java JDK 1.1 Documentation</link></p>
+ </div>
+</section>
+
+</body>
+</faq>
--- /dev/null
+<?xml version="1.0"?>
+<!-- XSLT stylesheet: QAML -> No Markup (QAML = FAQ Markup Language)
+ author: F. Jannidis <jannidis@.lrz.uni-muenchen.de>
+ version: 1.00ß
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:output method="html"/>
+<xsl:template match ="/">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- writes the header of the html file with a link to css stylesheet-->
+<xsl:template match ="head">
+<xsl:apply-templates/>
+</xsl:template>
+
+<!-- don't output maintain and version-->
+<xsl:template match ="maintain">
+</xsl:template>
+<xsl:template match ="version">
+</xsl:template>
+
+<!-- header title -->
+<xsl:template match ="head/title">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- body -->
+<xsl:template match ="body">
+<!-- generates table of contents with links to the different levels-->
+<xsl:for-each select="section[@class='level1']/title">
+<xsl:text> </xsl:text><xsl:number value="position()"/>) <xsl:value-of select="."/>
+</xsl:for-each>
+
+<!-- processing of the rest -->
+<xsl:apply-templates/>
+
+<!-- writes the footer -->
+
+Version: <xsl:value-of select="/faq/head/version"/> -
+Contact: <xsl:value-of select="//head/maintain/name"/> (<xsl:value-of select="//head/maintain/email"/>)
+</xsl:template>
+
+<!-- title level1, numbering is generated -->
+<xsl:template match ="section[@class='level1']/title">
+<xsl:number count="section[@class='level1']"/>) <xsl:apply-templates/>
+</xsl:template>
+
+<!-- title level2 -->
+<xsl:template match ="section[@class='level2']/title">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- title level3 -->
+<xsl:template match ="section[@class='level3']/title">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- question -->
+<xsl:template match ="q">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- answer -->
+<xsl:template match ="a">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- para -->
+<xsl:template match ="p">
+<xsl:apply-templates/>
+</xsl:template>
+
+<!-- test span -->
+<xsl:template match ="span">
+<xsl:apply-templates/>
+</xsl:template>
+
+<!-- links -->
+<xsl:template match ="link">
+ <xsl:apply-templates/> (<xsl:value-of select="@href"/>)
+</xsl:template>
+
+</xsl:stylesheet>
+
+
--- /dev/null
+<?xml version="1.0"?>
+<!-- XSLT stylesheet: QAML -> HTML (QAML = FAQ Markup Language)
+ author: F. Jannidis <jannidis@.lrz.uni-muenchen.de>
+ version: 1.00ß
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:output method="html"/>
+
+
+<xsl:template match ="/">
+ <html>
+ <xsl:apply-templates/>
+ </html>
+</xsl:template>
+
+
+<!-- writes the header of the html file with a link to css stylesheet-->
+<xsl:template match ="head">
+<head>
+<link rel="stylesheet" type="text/css" href="qaml-html.css"></link>
+<xsl:apply-templates/>
+</head>
+</xsl:template>
+
+<!-- don't output all of maintain and version-->
+<xsl:template match ="maintain">
+</xsl:template>
+<xsl:template match ="version">
+</xsl:template>
+
+
+<!-- header title -->
+<xsl:template match ="head/title">
+<title>
+ <xsl:apply-templates/>
+</title>
+</xsl:template>
+
+
+<!-- body -->
+<xsl:template match ="body">
+<body>
+<!-- defines text title -->
+<h1 class="title"><xsl:value-of select="//head/title"/></h1>
+
+<!-- generates table of contents with links to the different levels-->
+<p>
+<xsl:for-each select="section[@class='level1']/title">
+<xsl:number value="position()"/>)
+<a href="">
+<xsl:attribute name="href">
+#<xsl:number count="section[@class='level1']"/>
+</xsl:attribute>
+<xsl:value-of select="."/>
+</a>
+<br/>
+</xsl:for-each>
+</p>
+<!-- processing of the rest -->
+<xsl:apply-templates/>
+
+<!-- writes the footer -->
+<hr/>
+<p class="contact">
+Version: <xsl:value-of select="/faq/head/version"/> -
+Contact:
+<a>
+<xsl:attribute name="href">
+mailto:<xsl:value-of select="//head/maintain/email"/>
+</xsl:attribute>
+<xsl:value-of select="//head/maintain/name"/>
+</a>
+</p>
+</body>
+</xsl:template>
+
+<!-- title level1, numbering is generated -->
+<xsl:template match ="section[@class='level1']/title">
+<h1>
+<a>
+<xsl:attribute name="name">
+<xsl:number count="section[@class='level1']"/>
+</xsl:attribute>
+</a>
+<xsl:number count="section[@class='level1']"/>)
+ <xsl:apply-templates/>
+</h1>
+</xsl:template>
+
+<!-- title level2 -->
+<xsl:template match ="section[@class='level2']/title">
+<h2>
+ <xsl:apply-templates/>
+</h2>
+</xsl:template>
+
+<!-- title level3 -->
+<xsl:template match ="section[@class='level3']/title">
+<h3>
+ <xsl:apply-templates/>
+</h3>
+</xsl:template>
+
+<!-- question -->
+<xsl:template match ="q">
+<p class="question">
+ <xsl:apply-templates/>
+</p>
+</xsl:template>
+
+<!-- answer -->
+<xsl:template match ="a">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- para in answer -->
+<xsl:template match ="a/p">
+<p class="answer">
+<xsl:apply-templates/>
+</p>
+</xsl:template>
+
+<!-- test span -->
+<xsl:template match ="span">
+<b><xsl:apply-templates/> </b>
+</xsl:template>
+
+<!-- list -->
+<xsl:template match ="div[@class='list']">
+<ul>
+<xsl:apply-templates/>
+</ul>
+</xsl:template>
+
+<!-- list items -->
+<xsl:template match ="div/p[@class='li']">
+<li>
+<xsl:apply-templates/>
+</li>
+</xsl:template>
+
+
+<!-- code fragments, marked by attribute pre -->
+<xsl:template match ="section/p[@class='pre']">
+<p>
+<xsl:attribute name="class">
+<xsl:value-of select="@class"/>
+</xsl:attribute>
+<xsl:apply-templates/>
+</p>
+</xsl:template>
+
+
+<!-- normal paras without class attribute -->
+<xsl:template match ="section/p[not(@class)]">
+<p>
+<xsl:apply-templates/>
+</p>
+</xsl:template>
+
+
+<!-- links -->
+<xsl:template match ="link">
+<a>
+<xsl:attribute name="href">
+<xsl:value-of select="@href"/>
+</xsl:attribute>
+ <xsl:apply-templates/>
+</a>
+</xsl:template>
+
+</xsl:stylesheet>
+
--- /dev/null
+<?xml version="1.0"?>
+<!-- XSLT stylesheet: QAML -> FO (QAML = FAQ Markup Language)
+ version: 1.00ß
+-->
+
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ result-ns="fo" indent-result="yes">
+
+ <xsl:output indent="yes"/>
+
+<xsl:template match ="/">
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<!-- definiert die Druckseiten -->
+<fo:layout-master-set>
+
+<fo:simple-page-master page-master-name="first"
+height="29.7cm" width="21cm"
+margin-top="1cm" margin-bottom="2cm"
+margin-left="2.5cm" margin-right="2.5cm">
+<fo:region-before extent="3cm"/>
+<fo:region-body margin-top="3cm"/>
+<fo:region-after extent="1.5cm"/>
+</fo:simple-page-master>
+
+<fo:simple-page-master page-master-name="rest"
+height="29.7cm" width="21cm"
+margin-top="1cm" margin-bottom="2cm"
+margin-left="2.5cm" margin-right="2.5cm">
+<fo:region-before extent="2.5cm"/>
+<fo:region-body margin-top="2.5cm"/>
+<fo:region-after extent="1.5cm"/>
+</fo:simple-page-master>
+
+</fo:layout-master-set>
+
+<fo:page-sequence>
+<fo:sequence-specification>
+<fo:sequence-specifier-repeating page-master-first="first"
+page-master-repeating="rest"/>
+</fo:sequence-specification>
+
+<fo:static-content flow-name="xsl-before">
+<fo:block text-align="end"
+font-size="10pt"
+font-family="serif"
+line-height="14pt" >
+FOP - p. <fo:page-number/>
+</fo:block>
+ </fo:static-content>
+
+<fo:flow flow-name="xsl-body">
+<xsl:apply-templates select="faq"/>
+</fo:flow>
+
+</fo:page-sequence>
+ </fo:root>
+ </xsl:template>
+
+<!-- don't output head -->
+<xsl:template match ="head">
+</xsl:template>
+
+
+<!-- body -->
+<xsl:template match ="body">
+<!-- defines text title -->
+<fo:block font-size="24pt"
+font-family="serif"
+line-height="24pt"
+space-after.optimum="15pt">
+<xsl:value-of select="//head/title"/>
+</fo:block>
+
+<!-- processing of the rest -->
+<xsl:apply-templates/>
+</xsl:template>
+
+
+
+<!-- title level1, numbering is generated -->
+<xsl:template match ="section[@class='level1']/title">
+<fo:block font-size="18pt"
+font-family="serif"
+line-height="20pt"
+space-before.optimum="20pt"
+space-after.optimum="14pt"
+keep-with-next="true">
+<xsl:number count="section[@class='level1']"/>)
+<xsl:apply-templates/>
+</fo:block>
+</xsl:template>
+
+<!-- title level2 -->
+<xsl:template match ="section[@class='level2']/title">
+<fo:block font-size="16pt"
+font-family="serif"
+line-height="18pt"
+space-before.optimum="8pt"
+space-after.optimum="8pt"
+keep-with-next="true">
+<xsl:apply-templates/>
+</fo:block>
+</xsl:template>
+
+<!-- title level3 -->
+<xsl:template match ="section[@class='level3']/title">
+<fo:block font-size="14pt"
+font-family="serif"
+line-height="16pt"
+space-before.optimum="8pt"
+space-after.optimum="4pt"
+keep-with-next="true">
+<xsl:apply-templates/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match ="section">
+<xsl:apply-templates/>
+</xsl:template>
+
+<!-- question group -->
+<xsl:template match ="qna">
+<xsl:apply-templates/>
+</xsl:template>
+
+<!-- question -->
+<xsl:template match ="q">
+<fo:block start-indent="0.7cm"
+space-before.optimum="12pt">
+<xsl:value-of select="."/>
+</fo:block>
+</xsl:template>
+
+<!-- para in answer -->
+<xsl:template match ="a/p">
+<fo:block start-indent="0.7cm">
+<xsl:apply-templates/>
+</fo:block>
+</xsl:template>
+
+<!-- list -->
+<xsl:template match ="div[@class='list']">
+<fo:list-block start-indent="1cm"
+provisional-label-separation="3pt"
+provisional-distance-between-starts="6pt">
+<xsl:apply-templates/>
+</fo:list-block>
+</xsl:template>
+
+<!-- list items -->
+<xsl:template match ="div/p[@class='li']">
+<fo:list-item>
+<fo:list-item-label><fo:block>*</fo:block></fo:list-item-label>
+<fo:list-item-body>
+<fo:block>
+<xsl:apply-templates/>
+</fo:block>
+</fo:list-item-body>
+</fo:list-item>
+</xsl:template>
+
+
+<!-- code fragments, marked by attribute pre -->
+<xsl:template match ="section/p[@class='pre']">
+<fo:block font-size="10pt"
+font-family="monospace"
+line-height="12pt"
+space-before.optimum="3pt"
+space-after.optimum="3pt">
+<xsl:apply-templates/>
+</fo:block>
+</xsl:template>
+
+<!-- normal paras without class attribute -->
+<xsl:template match ="section/p[not(@class)]">
+<fo:block space-after.optimum="3pt">
+<xsl:apply-templates/>
+</fo:block>
+</xsl:template>
+
+<!-- link -->
+<xsl:template match ="link">
+<fo:inline-sequence font-style="italic"
+ font-family="sans-serif">
+<xsl:apply-templates/>
+</fo:inline-sequence>
+(<xsl:value-of select="@href"/>)
+</xsl:template>
+
+</xsl:stylesheet>