The Apache Forrest xdocs document-v1.3 DTD
Sample Content
Hint: See the xml source to see how the various elements are used and see the DTD reference documentation.
Block and inline elements
This is a simple paragraph. Most documents contain a fair amount of paragraphs. Paragraphs are called <p>.
This next paragraph has a class attribute of 'quote'. CSS can be used to present this <p class='quote'> in a different style than the other paragraphs. The handling of this quoted paragraph is defined in the <extra-css> element in the skinconf.xml.
Anyway, like I was sayin', shrimp is the fruit of the sea. You can barbecue it, boil it, broil it, bake it, sautee it. Dey's uh, shrimp-kabobs, shrimp creole, shrimp gumbo. Pan fried, deep fried, stir-fried. There's pineapple shrimp, lemon shrimp, coconut shrimp, pepper shrimp, shrimp soup, shrimp stew, shrimp salad, shrimp and potatoes, shrimp burger, shrimp sandwich. That- that's about it.
A number of in-line elements are available in the DTD, we will show them inside an unordered list (<ul>):
- Here is a simple list item (<li>).
- Have you seen the use of the <code> element in the previous item?
- Also, we have <sub> and <sup> elements to show content above or below the text baseline.
- There is a facility to emphasize certain words using the <em><strong> elements.
- We can use <icon>s too.
- Another possibility is the <img> element: , which offers the ability to refer to an image map.
- We have elements for hyperlinking:
- <link href="../index.html">
- Use this to link to another document. As per normal, this will open the new document in the same browser window.
- <link href="#section">
- Use this to link to the named anchor in the current document.
- <link href="../index.html#History">
- Use this to link to another document and go to the named anchor. This will open the new document in the same browser window.
- <jump href="../index.html">
- Use this to jump to another document and optionally go to a named anchor within that document. This will open the new document in the same browser window. So what is the difference between link and jump? The jump behaves differently, in that it will replace any frames in the current window. This is the equivalent of <a ... target="_top">
- <fork href="../index.html">
- Use this to fork your webbrowser to another document. This will open the document in a new, unnamed browser window. This is the equivalent of <a ... target="_blank">
- Oh, by the way, a definition list <dl> was used inside
the previous list item. We could put another
- unordered list
- inside the list item
A sample nested table Or even tables.. inside tables.. or inside lists, but I believe this liberty gets quickly quite hairy as you see.
So far for the in-line elements, let's look at some paragraph-level elements.
Apart from unordered lists, we have ordered lists too, of course.
- Item 1
- Item 2
- This should be 3 if my math is still OK.
Various presentation formats
This sample document, written in document-v13 XML can be presented via Forrest in a number of different formats. The links in the following list show this document in each of the currently available formats.
Each of the formats can be made available as a link near the top of the page. Actual placement of those links depends on the skin currently in use. Those links are enabled in the skinconf.xml via the <disable-XXX-link> elements in the skinconf.xml
Presentation Format | Description | skinconf.xml Element |
---|---|---|
HTML | This document in HTML format. | Always generated by default. Cannot be turned off. |
XML | This document in its raw XML format. | <disable-xml-link>. By default, set to true, meaning that this link will not be shown. |
This document as Adobe PDF | <disable-pdf-link>. By default, set to false, meaning that this link will be shown. | |
Text | This document as straight text. | <disable-txt-link>. By default, set to true, meaning that this link will not be shown. NOT YET IMPLEMENTED. |
POD | This document as Perl POD (Plain Old Documentation). Text with minimal formatting directives. If on a *nix system with perl installed, see "man perlpod". | <disable-pod-link>. By default, set to true, meaning that this link will not be shown. |
Using sections
You can use sections to put some structure in your document. For some strange historical reason, the section title is an attribute of the <section> element.
Sections, the sequel
Just some second section.
Section 2.1
Which contains a subsection (2.1).
Showing preformatted source code
Enough about these sections. Let's have a look at more interesting elements, <source> for instance:
// This example is from the book _Java in a Nutshell_ by David Flanagan. // Written by David Flanagan. Copyright (c) 1996 O'Reilly & Associates. // You may study, use, modify, and distribute this example for any purpose. // This example is provided WITHOUT WARRANTY either expressed or implied. import java.applet.*; // Don't forget these import statements! import java.awt.*; public class FirstApplet extends Applet { // This method displays the applet. // The Graphics class is how you do all drawing in Java. public void paint(Graphics g) { g.drawString("Hello World", 25, 50); } }
CDATA sections are used within <source> elements so that you can write pointy brackets without needing to escape them with messy < entities ...
<pointy> easy </pointy>
Please take care to still use a sensible line-length within your source elements.
Using tables
And now for a table:
heading cell 1 | heading cell 2 | heading cell 3 | ||||
---|---|---|---|---|---|---|
data cell | this data cell spans two columns | |||||
Tables can be nested: |
|
|
Using figures
And a <figure> to end all of this. Note that this can also be implemented with an <img> element.
DTD changes
See the generated DTD reference documentation.
Changes since document-v12
All v1.2 docs will work fine as v1.3 DTD. The main change is the addition of a @class attribute to every element, which enables the "extra-css" section in the skinconf to be put to good use.
Changes since document-v11
doc-v12 enhances doc-v11 by relaxing various restrictions that were found to be unnecessary.
- Links ((link|jump|fork) and inline elements (br|img|icon|acronym) are allowed inside title.
- Paragraphs (p|source|note|warning|fixme), table and figure|anchor are allowed inside li.
- Paragraphs (p|source|note|warning|fixme), lists (ol|ul|dl), table, figure|anchor are allowed inside definition lists (dd) and tables (td and dh).
- Inline content (strong|em|code|sub|sup|br|img|icon|acronym|link|jump|fork) is allowed in strong and em.