Ross Gardler schrieb:
EMMEL Thomas wrote:
Ok, I solved it by adding an own DTD for my project, which was a bit hard since there are several informations in the forrest docs which are hard to follow if you dont decide to read the whole docs.

Patches welcome and appreciated.

I took several informations from the location you gave and the mailing-list where I wonder in the end how this ever could have worked for anyone else (see http://www.mail-archive.com/[email protected]/msg02344.html) since I had to change some small issues...

Don't keep it to yourself, share the info. Patches welcome - this is a community project.

Never thought such small changes would help... :-), specially when
they come from one like me not intended to be a XML expert at all.

But of course I will attach my DTD to help others.
Should I add something to the documentation here as well?
The catalog.xcat-entry is here
>>>>snip
<!-- my own dtd -->
<public publicId="-//Your Company Name//Document w XInclude DTD 2.1//EN"
        uri="document-xinclude-v21.dtd"/>
<<<snip

In addition if anyone have problems getting the <span> element working I may help, cause I think there are some other changes I made last year to the xsl that creates xml from html where I need to do a diff to find it...
I hope next week there is some time to look for that.


For me it is always hard to follow the documentation of forrest since
there is some flow-chart or something like this missing. In other points
I always have to play with and test things to find the point where I need to do changes for my purpose.

To the other point:
Why should Forrest not intended to be a web publishing framework???

The first line of our home page says "Apache Forrest is a publishing framework that transforms input from various sources into a unified presentation in one or more output formats."

Web is only one output format. It *can* be used as a web publishing framework, and many people do use it as such. However, that was not why it was created. If someone wants a web publication framework and does not intend to publish in any format there are other, arguably better, tools.

Yes, but getting PDF as well is one of the big points where I dont like
to start with a huge programming package just to manage one time in ten years a documentation of 100 pages.
And thus I found forrest one of the best tools around.

BTW, is there any progress in the last time to bring more features and fixes to the PDF-output? Like table-sizes, the problem with the pictures that are too high in aspect-ratio and so on...

Your fist engagement with this project was to ask how to do something that only makes sense on the web and as a result you have already had to define a new DTD and XSL stylesheet. Why? Because Forrest is not a web publication framework, but a general purpose publication framework.

Accepted and dont be so 'hard' (:-)) with those who just try to use it...


Ross

Thanks and kind regards

Thomas
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- ===================================================================

     Apache Documentation DTD (Version 2.0)

PURPOSE:
  This DTD was developed to create a simple yet powerful document
  type for software documentation for use with the Apache projects.
  It is an XML-compliant DTD and it's maintained by the Apache Forrest
  project.

  Any new elements must be in accordance with XHTML2.
  
  The v2.x series of this DTD is an evolution of the 1.x series, incorporating
  lessons learned. Various new much-needed elements have been added, some unused
  features removed, and some renamed (link -> a). 2.x is not
  backwards-compatible, although a stylesheet can probably do the conversion.

TYPICAL INVOCATION:

  <!DOCTYPE document PUBLIC
       "-//APACHE//DTD Documentation V2.0//EN"
       "document-vxy.dtd">

  where

    x := major version
    y := minor version

NOTES:
  Many of the design patterns used in this DTD were take from the
  W3C XML Specification DTD edited by Eve Maler <[EMAIL PROTECTED]>.

  Where possible, great care has been used to reuse HTML tag
  names to reduce learning efforts and to allow HTML editors to be
  used for complex authorings like tables and lists.

EXTENSIBILITY:
  This DTD includes several empty placeholders that can be used to
  extend it. These placeholders are implemented with empty entities. Here
  is the list of those empty entities and what they are used for:

    - local.inline: this entity should contain extended definitions of
                    elements that can be used 'inline', or directly inside
                    the content. An example for this entity could be

                        <!ENTITY % local.inline "|citation">

    - local.blocks: this entity should contain extended definitions of
                    elements that behave as 'blocks', thus can be visually
                    rendered as areas on the canvas. An example for this
                    entity could be:

                        <!ENTITY % local.blocks "|poem">

    - local.sections: this entity should contain extended definitions of
                      elements that behave as 'sections', thus can be considered
                      containers of block-level elements. An example for
                      this entity could be:

                        <!ENTITY % local.sections "|chapter">

    - local.headers: this entity should contain extended definitions of
                     elements that behave as parts of the document header.
                     An example for this header could be:

                        <!ENTITY % local.headers ", notes?">

    - local.footers: this entity should contain extended definitions of
                     elements that behave as parts of the document footer.
                     An example for this header could be:

                        <!ENTITY % local.footers ", annotations*">

==================================================================== -->


<!-- =============================================================== -->
<!-- Include the Common ISO Character Entity Sets -->
<!-- =============================================================== -->

<!ENTITY % common-charents PUBLIC
    "-//APACHE//ENTITIES Common Character Entity Sets V1.0//EN"
    "common-charents-v10.mod">
%common-charents;

<!-- =============================================================== -->
<!-- Document -->
<!-- =============================================================== -->
<!ENTITY % local.inline "|xi:include">
<!ENTITY % document PUBLIC
    "-//APACHE//ENTITIES Documentation V2.0//EN"
    "document-v20.mod">
%document;

<!ATTLIST document
  %common.att; 
  xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude";
>

<!-- ==================================================== -->
<!-- XInclude -->
<!-- ==================================================== -->

<!ELEMENT xi:include EMPTY>
<!ATTLIST xi:include
  parse     (text|xml)  "xml"
  href      CDATA       #REQUIRED
  encoding  CDATA       #IMPLIED
  name  CDATA       #IMPLIED
>

<!-- ==================================================== -->
<!-- New span element -->
<!-- ==================================================== -->
<!ENTITY % content.mix "%link-content.mix;|%links;|span">
<!ELEMENT span (span)*>
<!ATTLIST span
  %common.att; 
>

<!-- =============================================================== -->
<!-- End of DTD -->
<!-- =============================================================== -->