Added: forrest/site/0.7/docs/validation.html
URL:
http://svn.apache.org/viewcvs/forrest/site/0.7/docs/validation.html?view=auto&rev=160895
==============================================================================
--- forrest/site/0.7/docs/validation.html (added)
+++ forrest/site/0.7/docs/validation.html Mon Apr 11 07:58:59 2005
@@ -0,0 +1,697 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.7-dev">
+<meta name="Forrest-skin-name" content="pelt">
+<meta-data></meta-data>
+<title>XML Validation (v0.7)</title>
+<link type="text/css" href="../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../skin/screen.css"
rel="stylesheet">
+<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../skin/profile.css" rel="stylesheet">
+<script src="../skin/getBlank.js" language="javascript"
type="text/javascript"></script><script src="../skin/getMenu.js"
language="javascript" type="text/javascript"></script><script
src="../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> > <a
href="http://forrest.apache.org/">forrest</a><script
src="../skin/breadcrumbs.js" language="JavaScript"
type="text/javascript"></script>
+</div>
+<!--+
+ |header
+ +-->
+<div class="header">
+<!--+
+ |start group logo
+ +-->
+<div class="grouplogo">
+<a href="http://www.apache.org/"><img class="logoImage" alt="Apache"
src="../images/apache-forrest.png" title="The Apache Software Foundation"></a>
+</div>
+<!--+
+ |end group logo
+ +-->
+<!--+
+ |start Project Logo
+ +-->
+<div class="projectlogo">
+<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest"
src="../images/project-logo.gif" title="Apache Forrest"></a>
+</div>
+<!--+
+ |end Project Logo
+ +-->
+<!--+
+ |start Search
+ +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="forrest.apache.org" name="sitesearch" type="hidden"><input
onFocus="getBlank (this, 'Search the site with google:');" value="Search the
site with google:" size="25" name="q" id="query" type="text">
+ <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+ |end search
+ +-->
+<!--+
+ |start Tabs
+ +-->
+<ul id="tabs">
+<li>
+<a class="base-not-selected" href="../index.html">Welcome</a>
+</li>
+<li>
+<a class="base-not-selected" href="../contrib.html">Project</a>
+</li>
+<li class="current">
+<a class="base-selected" href="../docs/index.html">0.7 Docs</a>
+</li>
+<li>
+<a class="base-not-selected" href="../docs/howto/index.html">0.7 How-To</a>
+</li>
+</ul>
+<!--+
+ |end Tabs
+ +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+ |start Subtabs
+ +-->
+<div id="level2tabs">
+<a class="base-not-selected" href="..">Core</a> | <a class="base-not-selected"
href="..">ForrestBot</a> | <a class="base-not-selected" href="..">ForrestBar</a>
+</div>
+<!--+
+ |end Endtabs
+ +-->
+<script type="text/javascript" language="JavaScript"><!--
+ document.write("Published: " + document.lastModified);
+ // --></script>
+</div>
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+
+
+ </div>
+<!--+
+ |start Menu, mainarea
+ +-->
+<!--+
+ |start Menu
+ +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../skin/')"
id="menu_selected_1.1Title" class="menutitle" style="background-image:
url('../skin/images/chapter_open.gif');">Documentation</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display:
block;">
+<div class="menuitem">
+<a title="" href="../docs/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/faq.html">FAQs</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/changes.html">Changes</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/todo.html">Todo</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/your-project.html">Using Forrest</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">XML Validation</div>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/linking.html">Menus and Linking</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/searching.html">Searching</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/skins.html">Default Skins</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/skin-package.html">Skin Packages</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/plugins/usingPlugins.html">Plugins</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/views.html">Views-dev</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/forrest-contract.html">Our Contract</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/compliance.html">Standards Compliance</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.15', '../skin/')" id="menu_1.1.15Title"
class="menutitle">Advanced Topics</div>
+<div id="menu_1.1.15" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs/build.html">Building Forrest</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/catalog.html">Using DTD Catalogs</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/sitemap-ref.html">Sitemap Reference</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/project-sitemap.html">Project sitemap</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/plugins/pluginInfrastructure.html">Plugin
Infrastructure</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/cap.html">Sourcetype Action</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.16', '../skin/')" id="menu_1.1.16Title"
class="menutitle">Other versions</div>
+<div id="menu_1.1.16" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs.html">Overview</a>
+</div>
+<div class="menuitem">
+<a title="" href="http://forrest.apache.org/docs/../0.8/">0.8-dev</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/index.html">0.7 (current)</a>
+</div>
+<div class="menuitem">
+<a title="" href="http://forrest.apache.org/docs/../0.6/">0.6</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.17', '../skin/')" id="menu_1.1.17Title"
class="menutitle">Upgrading</div>
+<div id="menu_1.1.17" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs/upgrading_07.html">Upgrading to 0.7</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/upgrading_06.html">Upgrading to 0.6</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.18', '../skin/')" id="menu_1.1.18Title"
class="menutitle">SubProjects</div>
+<div id="menu_1.1.18" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs/forrestbar.html">ForrestBar</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/forrestbot.html">Forrestbot</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/forrestbot-web-interface.html">Forrestbot Webapp</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.19', '../skin/')" id="menu_1.1.19Title"
class="menutitle">Reference docs</div>
+<div id="menu_1.1.19" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.19.1', '../skin/')" id="menu_1.1.19.1Title"
class="menutitle">DTD documentation</div>
+<div id="menu_1.1.19.1" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs/dtd-docs.html">Overview</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/document-v20.dtdx.html">document-v20</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/howto-v20.dtdx.html">howto-v20</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/faq-v20.dtdx.html">faq-v20</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/document-v13.dtdx.html">document-v13</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/howto-v13.dtdx.html">howto-v13</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/faq-v13.dtdx.html">faq-v13</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.19.2', '../skin/')" id="menu_1.1.19.2Title"
class="menutitle">Doc samples</div>
+<div id="menu_1.1.19.2" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs/document-v13.html">document-v13</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/document-v20.html">document-v20</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.20', '../skin/')" id="menu_1.1.20Title"
class="menutitle">Older Docs</div>
+<div id="menu_1.1.20" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs/primer.html">Forrest Primer</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/libre-intro.html">Libre</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/dreams.html">Dream list</a>
+</div>
+</div>
+</div>
+<div id="credit">
+<hr>
+ This is documentation for current release v0.7
+ (<a href="http://forrest.apache.org/docs.html">More</a> ...)</div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt=""
src="../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+ |alternative credits
+ +-->
+</div>
+<!--+
+ |end Menu
+ +-->
+<!--+
+ |start content
+ +-->
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="validation.pdf"><img alt="PDF -icon"
src="../skin/images/pdfdoc.gif" class="skin"><br>
+ PDF</a>
+</div>
+<div class="trail">
+ Font size:
+ <input value="Reset" class="resetfont" title="Reset
text" onclick="ndeSetTextSize('reset'); return false;" type="button">
+ <input value="-a" class="smallerfont" title="Shrink
text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+ <input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>XML Validation</h1>
+<h3>DTDs, catalogs and whatnot</h3>
+<div id="motd-area">
+ This is documentation for current release v0.7
+ (<a href="http://forrest.apache.org/docs.html">More</a> ...)</div>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#xml_validation">XML validation</a>
+</li>
+<li>
+<a href="#Validating+new+XML+types">Validating new XML types</a>
+<ul class="minitoc">
+<li>
+<a href="#Creating+or+extending+a+DTD">Creating or extending a DTD</a>
+</li>
+<li>
+<a href="#catalog">Associating DTDs with document types</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#entities">Referring to entities</a>
+</li>
+<li>
+<a href="#Validating+in+an+XML+editor">Validating in an XML editor</a>
+</li>
+<li>
+<a href="#relaxng">Validation using RELAX NG</a>
+</li>
+</ul>
+</div>
+
+<a name="N10010"></a><a name="xml_validation"></a>
+<h2 class="underlined_10">XML validation</h2>
+<div class="section">
+<p>
+ By default, Forrest will validate your XML before generating
+ HTML or a webapp from it, and fail if any XML files are not valid.
+ Validation can be performed manually by doing
+ '<span class="codefrag">forrest validate</span>' in the project root
directory.
+ </p>
+<p>
+ For an XML file to be valid, it <em>must</em> have a document type
+ declaration at the top, indicating its content type. Hence by
+ default, any Forrest-processed XML file that lacks a DOCTYPE
+ declaration will cause the build to break.
+ </p>
+<p>
+ Despite the strict default behavior, Forrest is quite flexible about
+ validation. Validation can be switched off for certain sections of a
+ project. In validated sections, it is possible for projects to specify
+ exactly what files they want (and don't want) validated. Forrest
+ validation is controlled through a set of properties in
+ <span class="codefrag">forrest.properties</span>:
+ </p>
+<pre class="code">
+##############
+# validation properties
+
+# This set of properties determine if validation is performed
+# Values are inherited unless overridden.
+# e.g. if forrest.validate=false then all others are false unless set to true.
+#forrest.validate=true
+#forrest.validate.xdocs=${forrest.validate}
+#forrest.validate.skinconf=${forrest.validate}
+#forrest.validate.sitemap=${forrest.validate}
+#forrest.validate.stylesheets=${forrest.validate}
+#forrest.validate.skins=${forrest.validate}
+#forrest.validate.skins.stylesheets=${forrest.validate.skins}
+
+# *.failonerror=(true|false) - stop when an XML file is invalid
+#forrest.validate.failonerror=true
+
+# *.excludes=(pattern) - comma-separated list of path patterns to not validate
+# e.g.
+#forrest.validate.xdocs.excludes=samples/subdir/**, samples/faq.xml
+#forrest.validate.xdocs.excludes=
+ </pre>
+<p>
+ For example, to avoid validating
+ <span class="codefrag">${project.xdocs-dir}</span>/slides.xml and
everything inside the
+ <span class="codefrag">${project.xdocs-dir}/manual/</span> directory,
add this to
+ <span class="codefrag">forrest.properties</span>:
+ </p>
+<pre class="code">forrest.validate.xdocs.excludes=slides.xml, manual/**</pre>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">
+ The <span class="codefrag">failonerror</span> properties only work for
files validated
+ with Ant's <xmlvalidate> and not (yet) for those validated
+ with <jing>, where <span class="codefrag">failonerror</span>
defaults to
+ <span class="codefrag">true</span>.
+ </div>
+</div>
+</div>
+
+
+<a name="N10049"></a><a name="Validating+new+XML+types"></a>
+<h2 class="underlined_10">Validating new XML types</h2>
+<div class="section">
+<p>
+ Forrest provides an <a
href="http://www.oasis-open.org/committees/entity/spec.html">OASIS Catalog</a>
+ [see <a
href="http://xml.apache.org/commons/components/resolver/resolver-article.html">tutorial</a>]
+ <span
class="codefrag">forrest/main/webapp/resources/schema/catalog.xcat</span>
+ as a means of associating public identifiers
+ (e.g. <span class="codefrag">-//APACHE//DTD Documentation
V1.1//EN</span> above) with DTDs.
+ If you <a href="../docs/your-project.html#adding_new_content_type">add
a new content type</a>, you
+ should add the DTD to <span
class="codefrag">${project.schema-dir}/dtd/</span> and add
+ an entry to the <span
class="codefrag">${project.schema-dir}/catalog.xcat</span> file. This
+ section describes the details of this process.
+ </p>
+<a name="N1006A"></a><a name="Creating+or+extending+a+DTD"></a>
+<h3 class="underlined_5">Creating or extending a DTD</h3>
+<p>
+ The main Forrest DTDs are designed to be modular and extensible, so
+ it is fairly easy to create a new document type that is a superset
+ of one from Forrest. This is what we'll demonstrate here, using our
+ earlier <a
href="../docs/your-project.html#adding_new_content_type">download format</a>
+ as an example. Our download format adds a group of new elements to
+ the standard 'documentv13' format. Our new elements are described
+ by the following DTD:
+ </p>
+<pre class="code">
+<!ELEMENT release (downloads)>
+<!ATTLIST release
+version CDATA #REQUIRED
+date CDATA #REQUIRED>
+
+<!ELEMENT downloads (file*)>
+
+<!ELEMENT file EMPTY>
+<!ATTLIST file
+url CDATA #REQUIRED
+name CDATA #REQUIRED
+size CDATA #IMPLIED>
+ </pre>
+<p>
+ The document-v13 entities are defined in a reusable 'module':
+ <span
class="codefrag">forrest/main/webapp/resources/schema/dtd/document-v13.mod</span>
+ The
+ <span
class="codefrag">forrest/main/webapp/resources/schema/dtd/document-v13.dtd</span>
+ file provides a full description and basic example of how to pull in
+ modules. In our example, our DTD reuses modules
+ <span class="codefrag">common-charents-v10.mod</span> and
+ <span class="codefrag">document-v13.mod</span>. Here is the full
DTD, with
+ explanation to follow.
+ </p>
+<pre class="code">
+<!-- ===================================================================
+
+Download Doc format
+
+PURPOSE:
+This DTD provides simple extensions on the Apache DocumentV11 format to link
+to a set of downloadable files.
+
+TYPICAL INVOCATION:
+
+<!DOCTYPE document PUBLIC "-//Acme//DTD Download Documentation V1.0//EN"
+"download-v10.dtd">
+
+COPYRIGHT:
+ Copyright 2002-2004 The Apache Software Foundation or its licensors,
+ as applicable.
+
+ Licensed 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.
+
+==================================================================== -->
+
+
+<!-- =============================================================== -->
+<!-- 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 % document PUBLIC "-//APACHE//ENTITIES Documentation V1.3//EN"
+"document-v13.mod">
+
+<!-- Override this entity so that 'release' is allowed below 'section'
-->
+<!ENTITY % local.sections "|release">
+
+%document;
+
+<!ELEMENT release (downloads)>
+<!ATTLIST release
+version CDATA #REQUIRED
+date CDATA #REQUIRED>
+
+<!ELEMENT downloads (file*)>
+
+<!ELEMENT file EMPTY>
+<!ATTLIST file
+url CDATA #REQUIRED
+name CDATA #REQUIRED
+size CDATA #IMPLIED>
+
+<!-- =============================================================== -->
+<!-- End of DTD -->
+<!-- =============================================================== -->
+ </pre>
+<p>This custom DTD should be placed in your project resources
+ directory at <span
class="codefrag">src/documentation/resources/schema/dtd/</span>
+</p>
+<p>
+ The <!ENTITY % ... > blocks are so-called
+ <a href="http://www.xml.com/axml/target.html#dt-PERef">parameter
+ entities</a>. They are like macros, whose content will be
+ inserted when a parameter-entity reference, like
+ <span class="codefrag">%common-charents;</span> or <span
class="codefrag">%document;</span> is
+ inserted.
+ </p>
+<p>
+ In our DTD, we first pull in the 'common-charents' entity, which
+ defines character symbol sets. We then define the 'document'
+ entity. However, before the <span
class="codefrag">%document;</span> PE reference, we
+ first override the 'local.section' entity. This is a hook into
+ document-v13.mod. By setting its value to '|release', we declare
+ that our <release> element is to be allowed wherever "local
+ sections" are used. There are five or so such hooks for different
+ areas of the document; see document-v13.dtd for more details. We
then
+ import the %document; contents, and declare the rest of our DTD
+ elements.
+ </p>
+<p>
+ We now have a DTD for the 'download' document type.
+ </p>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">
+
+<a
href="http://www.oasis-open.org/docbook/documentation/reference/html/ch05.html">Chapter
+ 5: Customizing DocBook</a> of Norman Walsh's "DocBook: The
+ Definitive Guide" gives a complete overview of the process of
+ customizing a DTD.
+ </div>
+</div>
+<a name="N100B1"></a><a name="catalog"></a>
+<h3 class="underlined_5">Associating DTDs with document types</h3>
+<p>
+ Recall that our DOCTYPE declaration for our download document type
+ is:
+ </p>
+<pre class="code"><!DOCTYPE document PUBLIC "-//Acme//DTD Download
Documentation V1.0//EN"
+ "download-v10.dtd">
+ </pre>
+<p>
+ We only care about the quoted section after <span
class="codefrag">PUBLIC</span>, called
+ the "public identifier", which globally identifies our document type.
+ We cannot rely on the subsequent "system identifier" part
+ ("download-v10.dtd"), because as a relative reference it is liable to
+ break. The solution Forrest uses is to ignore the system id, and
rely
+ on a mapping from the public ID to a stable DTD location, via a
+ Catalog file.</p>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">
+ See <a
href="http://xml.apache.org/commons/components/resolver/resolver-article.html">this
article</a> for a good
+ introduction to catalogs and the Cocoon documentation
+ <a
href="http://cocoon.apache.org/2.1/userdocs/concepts/catalog.html">Entity
resolution with catalogs</a>.
+ </div>
+</div>
+<p>
+ Forrest provides a standard catalog file at
+ <span
class="codefrag">forrest/main/webapp/resources/schema/catalog.xcat</span>
+ for the document
+ types that Forrest provides. Projects can augment this with their
+ own catalog file located in
+ <span class="codefrag">${project.schema-dir}/catalog.xcat</span> to
use it you must
+ specify either the path (full or relative) to your
+ <span class="codefrag">catalog.xcat</span> in the <span
class="codefrag">CatalogManager.properties</span>
+ file. If you provide a relative path you must set the property
+ <span class="codefrag">relative-catalogs</span> to "yes".
+ </p>
+<p>
+ When Cocoon starts, it reads the <span
class="codefrag">CatalogManager.properties</span> file from your
+ <span class="codefrag">project.classes-dir</span>. This is usually
src/documentation/classes/
+ but you can change this in <span
class="codefrag">forrest.properties</span>. When you seed
+ a new site using <span class="codefrag">forrest seed-site</span> a
sample catalog file
+ is placed in the site structure, you can use this as a template for
your
+ own files.
+ </p>
+<p>
+ Forrest uses the XML Catalog syntax by default, although the older
+ plain-text
+ format can also be used. Here is what the XML Catalog format looks
+ like:
+ </p>
+<pre class="code"><?xml version="1.0"?>
+<!-- OASIS XML Catalog for Forrest -->
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
+ <public publicId="-//Acme//DTD Download Documentation V1.0//EN"
+ uri="dtd/download-v10.dtd"/>
+</catalog></pre>
+<p>
+ The format is described in <a
href="http://www.oasis-open.org/committees/entity/spec.html">the
+ spec</a>, and is fairly simple and very powerful.
+ The "<span class="codefrag">public</span>" elements map
+ a public identifier to a DTD (relative to the catalog file).
+ </p>
+<p>
+ We now have a custom DTD and a catalog mapping which lets both
+ Forrest and Cocoon
+ locate the DTD. Now if we were to run <span
class="codefrag">'forrest validate'</span>
+ our download file would validate along with all the others. If
+ something goes wrong, try running <span class="codefrag">'forrest -v
validate'</span> to
+ see the error in more detail. Remember to raise the "verbosity"
+ level in <span class="codefrag">cocoon.xconf</span> if you suspect
problems
+ with your catalog.
+ </p>
+</div>
+
+
+<a name="N1010F"></a><a name="entities"></a>
+<h2 class="underlined_10">Referring to entities</h2>
+<div class="section">
+<p>
+ Look at the source of this document
+ (<span class="codefrag">xdocs/docs/validation.xml</span>) and see how
the entity set
+ <span class="codefrag">"Numeric and Special Graphic"</span> is
declared in the
+ document type declaration.
+ </p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+
+<tr>
+
+<td colspan="1" rowspan="1">ISOnum.pen</td>
+ <td colspan="1" rowspan="1">&half;</td>
+ <td colspan="1" rowspan="1">½</td>
+
+</tr>
+
+</table>
+</div>
+
+
+<a name="N10134"></a><a name="Validating+in+an+XML+editor"></a>
+<h2 class="underlined_10">Validating in an XML editor</h2>
+<div class="section">
+<p>
+ If you have an XML editor that understands SGML or XML catalogs, let
+ it know where the Forrest catalog file is, and you will be able to
+ validate any Forrest XML file, regardless of location, as you edit
+ your files. See the
+ <a href="../docs/catalog.html">configuration notes</a> your favourite
+ editor.
+ </p>
+</div>
+
+
+<a name="N10142"></a><a name="relaxng"></a>
+<h2 class="underlined_10">Validation using RELAX NG</h2>
+<div class="section">
+<p>
+ Other validation is also conducted during build-time using RELAX NG.
+ This validates all of the important configuration files, both in
+ Forrest itself and in your project. At the moment it processes all
+ skinconf.xml files, all sitemap.xmap files, and all XSLT stylesheets.
+ </p>
+<p>
+ The RNG grammars to do this are located in the
+ <span class="codefrag">main/webapp/resources/schema/relaxng</span>
directory.
+ If you want to
+ know more about this, and perhaps extend it for your own use, then
+ see <span
class="codefrag">main/webapp/resources/schema/relaxng/README.txt</span>
+ and the Ant targets in the various build.xml files.
+ </p>
+</div>
+
+</div>
+<!--+
+ |end content
+ +-->
+<div class="clearboth"> </div>
+</div>
+<div id="footer">
+<!--+
+ |start bottomstrip
+ +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<div class="copyright">
+ Copyright © 2002-2005 The Apache Software Foundation.</div>
+<!--+
+ |end bottomstrip
+ +-->
+</div>
+</body>
+</html>
Propchange: forrest/site/0.7/docs/validation.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: forrest/site/0.7/docs/validation.pdf
URL:
http://svn.apache.org/viewcvs/forrest/site/0.7/docs/validation.pdf?view=auto&rev=160895
==============================================================================
Binary file - no diff available.
Propchange: forrest/site/0.7/docs/validation.pdf
------------------------------------------------------------------------------
svn:mime-type = application/pdf
Added: forrest/site/0.7/docs/views.html
URL:
http://svn.apache.org/viewcvs/forrest/site/0.7/docs/views.html?view=auto&rev=160895
==============================================================================
--- forrest/site/0.7/docs/views.html (added)
+++ forrest/site/0.7/docs/views.html Mon Apr 11 07:58:59 2005
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.7-dev">
+<meta name="Forrest-skin-name" content="pelt">
+<meta-data></meta-data>
+<title>forrest:views concept (Draft -feature planed for 0.8) (v0.7)</title>
+<link type="text/css" href="../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../skin/screen.css"
rel="stylesheet">
+<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../skin/profile.css" rel="stylesheet">
+<script src="../skin/getBlank.js" language="javascript"
type="text/javascript"></script><script src="../skin/getMenu.js"
language="javascript" type="text/javascript"></script><script
src="../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> > <a
href="http://forrest.apache.org/">forrest</a><script
src="../skin/breadcrumbs.js" language="JavaScript"
type="text/javascript"></script>
+</div>
+<!--+
+ |header
+ +-->
+<div class="header">
+<!--+
+ |start group logo
+ +-->
+<div class="grouplogo">
+<a href="http://www.apache.org/"><img class="logoImage" alt="Apache"
src="../images/apache-forrest.png" title="The Apache Software Foundation"></a>
+</div>
+<!--+
+ |end group logo
+ +-->
+<!--+
+ |start Project Logo
+ +-->
+<div class="projectlogo">
+<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest"
src="../images/project-logo.gif" title="Apache Forrest"></a>
+</div>
+<!--+
+ |end Project Logo
+ +-->
+<!--+
+ |start Search
+ +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="forrest.apache.org" name="sitesearch" type="hidden"><input
onFocus="getBlank (this, 'Search the site with google:');" value="Search the
site with google:" size="25" name="q" id="query" type="text">
+ <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+ |end search
+ +-->
+<!--+
+ |start Tabs
+ +-->
+<ul id="tabs">
+<li>
+<a class="base-not-selected" href="../index.html">Welcome</a>
+</li>
+<li>
+<a class="base-not-selected" href="../contrib.html">Project</a>
+</li>
+<li class="current">
+<a class="base-selected" href="../docs/index.html">0.7 Docs</a>
+</li>
+<li>
+<a class="base-not-selected" href="../docs/howto/index.html">0.7 How-To</a>
+</li>
+</ul>
+<!--+
+ |end Tabs
+ +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+ |start Subtabs
+ +-->
+<div id="level2tabs">
+<a class="base-not-selected" href="..">Core</a> | <a class="base-not-selected"
href="..">ForrestBot</a> | <a class="base-not-selected" href="..">ForrestBar</a>
+</div>
+<!--+
+ |end Endtabs
+ +-->
+<script type="text/javascript" language="JavaScript"><!--
+ document.write("Published: " + document.lastModified);
+ // --></script>
+</div>
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+
+
+ </div>
+<!--+
+ |start Menu, mainarea
+ +-->
+<!--+
+ |start Menu
+ +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../skin/')"
id="menu_selected_1.1Title" class="menutitle" style="background-image:
url('../skin/images/chapter_open.gif');">Documentation</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display:
block;">
+<div class="menuitem">
+<a title="" href="../docs/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/faq.html">FAQs</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/changes.html">Changes</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/todo.html">Todo</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/your-project.html">Using Forrest</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/validation.html">XML Validation</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/linking.html">Menus and Linking</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/searching.html">Searching</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/skins.html">Default Skins</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/skin-package.html">Skin Packages</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/plugins/usingPlugins.html">Plugins</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Views-dev</div>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/forrest-contract.html">Our Contract</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/compliance.html">Standards Compliance</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.15', '../skin/')" id="menu_1.1.15Title"
class="menutitle">Advanced Topics</div>
+<div id="menu_1.1.15" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs/build.html">Building Forrest</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/catalog.html">Using DTD Catalogs</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/sitemap-ref.html">Sitemap Reference</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/project-sitemap.html">Project sitemap</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/plugins/pluginInfrastructure.html">Plugin
Infrastructure</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/cap.html">Sourcetype Action</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.16', '../skin/')" id="menu_1.1.16Title"
class="menutitle">Other versions</div>
+<div id="menu_1.1.16" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs.html">Overview</a>
+</div>
+<div class="menuitem">
+<a title="" href="http://forrest.apache.org/docs/../0.8/">0.8-dev</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/index.html">0.7 (current)</a>
+</div>
+<div class="menuitem">
+<a title="" href="http://forrest.apache.org/docs/../0.6/">0.6</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.17', '../skin/')" id="menu_1.1.17Title"
class="menutitle">Upgrading</div>
+<div id="menu_1.1.17" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs/upgrading_07.html">Upgrading to 0.7</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/upgrading_06.html">Upgrading to 0.6</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.18', '../skin/')" id="menu_1.1.18Title"
class="menutitle">SubProjects</div>
+<div id="menu_1.1.18" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs/forrestbar.html">ForrestBar</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/forrestbot.html">Forrestbot</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/forrestbot-web-interface.html">Forrestbot Webapp</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.19', '../skin/')" id="menu_1.1.19Title"
class="menutitle">Reference docs</div>
+<div id="menu_1.1.19" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.19.1', '../skin/')" id="menu_1.1.19.1Title"
class="menutitle">DTD documentation</div>
+<div id="menu_1.1.19.1" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs/dtd-docs.html">Overview</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/document-v20.dtdx.html">document-v20</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/howto-v20.dtdx.html">howto-v20</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/faq-v20.dtdx.html">faq-v20</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/document-v13.dtdx.html">document-v13</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/howto-v13.dtdx.html">howto-v13</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/faq-v13.dtdx.html">faq-v13</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.19.2', '../skin/')" id="menu_1.1.19.2Title"
class="menutitle">Doc samples</div>
+<div id="menu_1.1.19.2" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs/document-v13.html">document-v13</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/document-v20.html">document-v20</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.20', '../skin/')" id="menu_1.1.20Title"
class="menutitle">Older Docs</div>
+<div id="menu_1.1.20" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../docs/primer.html">Forrest Primer</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/libre-intro.html">Libre</a>
+</div>
+<div class="menuitem">
+<a title="" href="../docs/dreams.html">Dream list</a>
+</div>
+</div>
+</div>
+<div id="credit">
+<hr>
+ This is documentation for current release v0.7
+ (<a href="http://forrest.apache.org/docs.html">More</a> ...)</div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt=""
src="../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+ |alternative credits
+ +-->
+</div>
+<!--+
+ |end Menu
+ +-->
+<!--+
+ |start content
+ +-->
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="views.pdf"><img alt="PDF -icon"
src="../skin/images/pdfdoc.gif" class="skin"><br>
+ PDF</a>
+</div>
+<div class="trail">
+ Font size:
+ <input value="Reset" class="resetfont" title="Reset
text" onclick="ndeSetTextSize('reset'); return false;" type="button">
+ <input value="-a" class="smallerfont" title="Shrink
text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+ <input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>forrest:views concept (Draft -feature planed for 0.8)</h1>
+<div id="motd-area">
+ This is documentation for current release v0.7
+ (<a href="http://forrest.apache.org/docs.html">More</a> ...)</div>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#introduction">Introduction</a>
+</li>
+<li>
+<a href="#background">Background</a>
+</li>
+<li>
+<a href="#nc-definition">Definition of naming conventions</a>
+</li>
+<li>
+<a href="#leather">leather-dev</a>
+</li>
+</ul>
+</div>
+
+<div class="frame warning">
+<div class="label">Warning</div>
+<div class="content">This document is heavily under development</div>
+</div>
+
+<a name="N10010"></a><a name="introduction"></a>
+<h2 class="underlined_10">Introduction</h2>
+<div class="section">
+<p>
+ Like stated in the <a href="../docs/skins.html">Skin documentation
+ file</a> the aim of the forrest skins is to provide
+ many capabilities so that extra skins are not needed. Our experience
showed that many forrest user
+ had to create a new skin because the default skin did not offer the
feature their wanted to use.
+ That leaded us to develop a new concept of creating skins that would
be easily extensible by a user.
+ </p>
+<p>
+ The aim of the upcoming "forrest:views" skinning concept is to provide
a flexible framework for creating
+ site and page specific layout in different formats.
+ </p>
+</div>
+
+
+<a name="N10021"></a><a name="background"></a>
+<h2 class="underlined_10">Background</h2>
+<div class="section">
+<p>
+ The problem with the forrest skins so far has been that "only" the
design changed (html-skeleton),
+ but still we had to write a completely new skin and implement all
functionality.
+ Another problem was that the functionality was not easy extensible by
a user.
+ Then we decided to support the a standard regarding naming conventions
for css elements.
+ This standard has been developed on the <a
href="http://www.oscom.org/events/oscom4/proposals/skins">
+ OSCOM website</a>, where you can find some more background
informations.
+ </p>
+</div>
+
+
+<a name="N1002F"></a><a name="nc-definition"></a>
+<h2 class="underlined_10">Definition of naming conventions</h2>
+<div class="section">
+<p>
+ "A naming convention is an attempt to systematize names in a field so
+ they unambiguously convey similar information in a similar manner."
+ <a
href="http://www.wordiq.com/definition/Naming_convention">wordiq-definition</a>
+
+</p>
+</div>
+
+<a name="N1003D"></a><a name="leather"></a>
+<h2 class="underlined_10">leather-dev</h2>
+<div class="section">
+<p>
+ That leaded to the development of the "leather-dev" skin which
established a semantic container approach for div elements.
+ The problems with leather-dev was pointed out on the mail
+ <a
href="http://marc.theaimsgroup.com/?l=forrest-dev%C2%A0m=111049344517653%C2%A0w=2">status
on leather-dev?</a>
+
+</p>
+</div>
+
+</div>
+<!--+
+ |end content
+ +-->
+<div class="clearboth"> </div>
+</div>
+<div id="footer">
+<!--+
+ |start bottomstrip
+ +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<div class="copyright">
+ Copyright © 2002-2005 The Apache Software Foundation.</div>
+<!--+
+ |end bottomstrip
+ +-->
+</div>
+</body>
+</html>
Propchange: forrest/site/0.7/docs/views.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: forrest/site/0.7/docs/views.pdf
URL:
http://svn.apache.org/viewcvs/forrest/site/0.7/docs/views.pdf?view=auto&rev=160895
==============================================================================
Binary file - no diff available.
Propchange: forrest/site/0.7/docs/views.pdf
------------------------------------------------------------------------------
svn:mime-type = application/pdf