You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by th...@apache.org on 2005/06/04 23:07:01 UTC

svn commit: r180024 - in /forrest/trunk/main/webapp/resources/schema/relaxng: README.txt document-v20.mod.rng document-v20.rng

Author: thorsten
Date: Sat Jun  4 14:07:01 2005
New Revision: 180024

URL: http://svn.apache.org/viewcvs?rev=180024&view=rev
Log:
started to convert our dtd's to relaxng schemas

Added:
    forrest/trunk/main/webapp/resources/schema/relaxng/document-v20.mod.rng   (with props)
    forrest/trunk/main/webapp/resources/schema/relaxng/document-v20.rng   (with props)
Modified:
    forrest/trunk/main/webapp/resources/schema/relaxng/README.txt

Modified: forrest/trunk/main/webapp/resources/schema/relaxng/README.txt
URL: http://svn.apache.org/viewcvs/forrest/trunk/main/webapp/resources/schema/relaxng/README.txt?rev=180024&r1=180023&r2=180024&view=diff
==============================================================================
--- forrest/trunk/main/webapp/resources/schema/relaxng/README.txt (original)
+++ forrest/trunk/main/webapp/resources/schema/relaxng/README.txt Sat Jun  4 14:07:01 2005
@@ -22,6 +22,10 @@
 Jing RELAX NG validator in Java:
 	http://www.thaiopensource.com/relaxng/
 
+Trang Multi-format XML schema converter based on RELAX NG
+Trang converts between different schema languages for XML.
+	http://www.thaiopensource.com/relaxng/trang.html
+
 To run an XML file against a .rng schema using Jing, see the
 "validate-config" target in xml-forrest/build.xml or do this:
 

Added: forrest/trunk/main/webapp/resources/schema/relaxng/document-v20.mod.rng
URL: http://svn.apache.org/viewcvs/forrest/trunk/main/webapp/resources/schema/relaxng/document-v20.mod.rng?rev=180024&view=auto
==============================================================================
--- forrest/trunk/main/webapp/resources/schema/relaxng/document-v20.mod.rng (added)
+++ forrest/trunk/main/webapp/resources/schema/relaxng/document-v20.mod.rng Sat Jun  4 14:07:01 2005
@@ -0,0 +1,1014 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 1999-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.
+-->
+<!--
+  ===================================================================
+  
+       Apache Common Documentation elements (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.
+  
+  TYPICAL INVOCATION:
+  
+    <!ENTITY % document PUBLIC
+        "-//APACHE//ENTITIES Documentation Vxy//EN"
+        "document-vxy.mod">
+    %document;
+  
+    where
+  
+      x := major version
+      y := minor version
+  
+  NOTES:
+  
+  FIXME:
+  
+  CHANGE HISTORY:
+  [Version 2.0a]
+    20030505  Add a meta element to the header, for generic metadata
+    20030505  Zap jump and fork, and rename 'link' to 'a' for better HTMLness
+    20030510  Fix bug which allowed nested lists like <ol><ol>. Now lists can only contain li's.
+  
+  ====================================================================
+-->
+<!-- =============================================================== -->
+<!-- Useful entities for increased DTD readability -->
+<!-- =============================================================== -->
+<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="text">
+    <text/>
+  </define>
+  <!-- Entities referred to later on are defined up front -->
+  <define name="markup">
+    <choice>
+      <ref name="strong"/>
+      <ref name="em"/>
+      <ref name="code"/>
+      <ref name="sub"/>
+      <ref name="sup"/>
+    </choice>
+  </define>
+  <define name="special-inline">
+    <choice>
+      <ref name="br"/>
+      <ref name="img"/>
+      <ref name="icon"/>
+      <ref name="acronym"/>
+      <ref name="map"/>
+    </choice>
+  </define>
+  <define name="links">
+    <ref name="a"/>
+  </define>
+  <define name="paragraphs">
+    <choice>
+      <ref name="p"/>
+      <ref name="source"/>
+      <ref name="note"/>
+      <ref name="warning"/>
+      <ref name="fixme"/>
+    </choice>
+  </define>
+  <define name="tables">
+    <ref name="table"/>
+  </define>
+  <define name="lists">
+    <choice>
+      <ref name="ol"/>
+      <ref name="ul"/>
+      <ref name="dl"/>
+    </choice>
+  </define>
+  <define name="special-blocks">
+    <choice>
+      <ref name="figure"/>
+      <ref name="anchor"/>
+    </choice>
+  </define>
+  <!-- these are used for image maps -->
+  <define name="Shape">
+    <choice>
+      <value>rect</value>
+      <value>circle</value>
+      <value>poly</value>
+      <value>default</value>
+    </choice>
+  </define>
+  <define name="Coords">
+    <data type="string" datatypeLibrary=""/>
+  </define>
+  <!-- =============================================================== -->
+  <!-- Entities for general XML compliance -->
+  <!-- =============================================================== -->
+  <!--
+    Common attributes
+    Every element has an ID attribute (sometimes required,
+    but usually optional) for links. %common.att;
+    is for common attributes where the ID is optional, and
+    %common-idreq.att; is for common attributes where the
+    ID is required.
+  -->
+  <define name="common.att">
+    <optional>
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="class">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="xml:lang">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+  </define>
+  <define name="common-idreq.att">
+    <attribute name="id">
+      <data type="ID"/>
+    </attribute>
+    <optional>
+      <attribute name="class">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="xml:lang">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+  </define>
+  <!--
+    xml:space attribute ===============================================
+            Indicates that the element contains white space
+            that the formatter or other application should retain,
+            as appropriate to its function.
+    ====================================================================
+  -->
+  <define name="xmlspace.att">
+    <optional>
+      <attribute name="xml:space" a:defaultValue="preserve">
+        <value>preserve</value>
+      </attribute>
+    </optional>
+  </define>
+  <!--
+    def attribute =====================================================
+            Points to the element where the relevant definition can be
+            found, using the IDREF mechanism.  %def.att; is for optional
+            def attributes, and %def-req.att; is for required def
+            attributes.
+    ====================================================================
+  -->
+  <!--
+    ref attribute =====================================================
+            Points to the element where more information can be found,
+            using the IDREF mechanism.  %ref.att; is for optional
+            ref attributes, and %ref-req.att; is for required ref
+            attributes.
+    ==================================================================
+  -->
+  <!-- =============================================================== -->
+  <!-- Entities for general usage -->
+  <!-- =============================================================== -->
+  <!--
+    Key attribute =====================================================
+            Optionally provides a sorting or indexing key, for cases when
+            the element content is inappropriate for this purpose.
+    ====================================================================
+  -->
+  <!--
+    Title attributes ==================================================
+            Indicates that the element requires to have a title attribute.
+    ====================================================================
+  -->
+  <!--
+    Name attributes ==================================================
+            Indicates that the element requires to have a name attribute.
+    ====================================================================
+  -->
+  <define name="name.att">
+    <attribute name="name"/>
+  </define>
+  <!--
+    Email attributes ==================================================
+            Indicates that the element requires to have an email attribute.
+    ====================================================================
+  -->
+  <define name="email.att">
+    <attribute name="email"/>
+  </define>
+  <!--
+    Link attributes ===================================================
+            Indicates that the element requires to have hyperlink attributes.
+    ====================================================================
+  -->
+  <define name="link.att">
+    <attribute name="href"/>
+    <optional>
+      <attribute name="title"/>
+    </optional>
+  </define>
+  <!-- =============================================================== -->
+  <!-- General definitions -->
+  <!-- =============================================================== -->
+  <!-- A person is a general unparsed human entity -->
+  <define name="person">
+    <element name="person">
+      <ref name="person.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="person.attlist" combine="interleave">
+    <ref name="common.att"/>
+    <ref name="name.att"/>
+    <ref name="email.att"/>
+  </define>
+  <!-- =============================================================== -->
+  <!-- Content definitions -->
+  <!-- =============================================================== -->
+  <define name="local.inline">
+    <notAllowed/>
+  </define>
+  <define name="link-content.mix">
+    <choice>
+      <ref name="text"/>
+      <ref name="markup"/>
+      <ref name="special-inline"/>
+      <ref name="local.inline"/>
+    </choice>
+  </define>
+  <define name="content.mix">
+    <choice>
+      <ref name="link-content.mix"/>
+      <ref name="links"/>
+    </choice>
+  </define>
+  <!-- ==================================================== -->
+  <!-- Phrase Markup -->
+  <!-- ==================================================== -->
+  <!-- Strong (typically bold) -->
+  <define name="strong">
+    <element name="strong">
+      <ref name="strong.attlist"/>
+      <zeroOrMore>
+        <ref name="content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="strong.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- Emphasis (typically italic) -->
+  <define name="em">
+    <element name="em">
+      <ref name="em.attlist"/>
+      <zeroOrMore>
+        <ref name="content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="em.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- Code (typically monospaced) -->
+  <define name="code">
+    <element name="code">
+      <ref name="code.attlist"/>
+      <ref name="text"/>
+    </element>
+  </define>
+  <define name="code.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- Superscript (typically smaller and higher) -->
+  <define name="sup">
+    <element name="sup">
+      <ref name="sup.attlist"/>
+      <ref name="text"/>
+    </element>
+  </define>
+  <define name="sup.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- Subscript (typically smaller and lower) -->
+  <define name="sub">
+    <element name="sub">
+      <ref name="sub.attlist"/>
+      <ref name="text"/>
+    </element>
+  </define>
+  <define name="sub.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- ==================================================== -->
+  <!-- Hypertextual Links -->
+  <!-- ==================================================== -->
+  <!-- hyperlink (equivalent of <a ...>) -->
+  <!-- http://www.w3.org/TR/xhtml2/mod-hypertext.html#s_hypertextmodule -->
+  <define name="a">
+    <element name="a">
+      <ref name="a.attlist"/>
+      <zeroOrMore>
+        <ref name="link-content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="a.attlist" combine="interleave">
+    <ref name="common.att"/>
+    <ref name="link.att"/>
+  </define>
+  <!-- ==================================================== -->
+  <!-- Specials -->
+  <!-- ==================================================== -->
+  <!-- Breakline Object (typically forces line break) -->
+  <define name="br">
+    <element name="br">
+      <ref name="br.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="br.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- Image Object (typically an inlined image) -->
+  <define name="img">
+    <element name="img">
+      <ref name="img.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="img.attlist" combine="interleave">
+    <attribute name="src"/>
+    <attribute name="alt"/>
+    <optional>
+      <attribute name="height"/>
+    </optional>
+    <optional>
+      <attribute name="width"/>
+    </optional>
+    <optional>
+      <attribute name="usemap"/>
+    </optional>
+    <optional>
+      <attribute name="ismap">
+        <choice>
+          <value>ismap</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.att"/>
+  </define>
+  <!-- support the img usemap attribute -->
+  <define name="map">
+    <element name="map">
+      <ref name="map.attlist"/>
+      <oneOrMore>
+        <ref name="area"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="map.attlist" combine="interleave">
+    <optional>
+      <attribute name="name"/>
+    </optional>
+  </define>
+  <define name="area">
+    <element name="area">
+      <ref name="area.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="area.attlist" combine="interleave">
+    <optional>
+      <attribute name="shape" a:defaultValue="rect">
+        <ref name="Shape"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="coords">
+        <ref name="Coords"/>
+      </attribute>
+    </optional>
+    <ref name="link.att"/>
+    <optional>
+      <attribute name="nohref">
+        <choice>
+          <value>nohref</value>
+        </choice>
+      </attribute>
+    </optional>
+    <attribute name="alt"/>
+  </define>
+  <!-- Image Icon (typically an inlined image placed as graphical item) -->
+  <define name="icon">
+    <element name="icon">
+      <ref name="icon.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="icon.attlist" combine="interleave">
+    <attribute name="src"/>
+    <attribute name="alt"/>
+    <optional>
+      <attribute name="height"/>
+    </optional>
+    <optional>
+      <attribute name="width"/>
+    </optional>
+    <ref name="common.att"/>
+  </define>
+  <!-- Acronym (in modern browsers, will have rollover text) -->
+  <define name="acronym">
+    <element name="acronym">
+      <ref name="acronym.attlist"/>
+      <zeroOrMore>
+        <ref name="text"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="acronym.attlist" combine="interleave">
+    <attribute name="title"/>
+    <ref name="common.att"/>
+  </define>
+  <!-- =============================================================== -->
+  <!-- Blocks definitions -->
+  <!-- =============================================================== -->
+  <define name="local.blocks">
+    <notAllowed/>
+  </define>
+  <define name="blocks">
+    <choice>
+      <ref name="paragraphs"/>
+      <ref name="tables"/>
+      <ref name="lists"/>
+      <ref name="special-blocks"/>
+      <ref name="local.blocks"/>
+    </choice>
+  </define>
+  <!-- Flow mixes block and inline -->
+  <define name="flow">
+    <choice>
+      <ref name="content.mix"/>
+      <ref name="blocks"/>
+    </choice>
+  </define>
+  <!-- ==================================================== -->
+  <!-- Paragraphs -->
+  <!-- ==================================================== -->
+  <!-- Text Paragraph (normally vertically space delimited. Space can be preserved.) -->
+  <define name="p">
+    <element name="p">
+      <ref name="p.attlist"/>
+      <zeroOrMore>
+        <ref name="content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="p.attlist" combine="interleave">
+    <ref name="common.att"/>
+    <optional>
+      <attribute name="xml:space">
+        <choice>
+          <value>default</value>
+          <value>preserve</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!-- Source Paragraph (normally space is preserved) -->
+  <define name="source">
+    <element name="source">
+      <ref name="source.attlist"/>
+      <zeroOrMore>
+        <ref name="content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="source.attlist" combine="interleave">
+    <ref name="common.att"/>
+    <ref name="xmlspace.att"/>
+  </define>
+  <!-- Note Paragraph (normally shown encapsulated) -->
+  <define name="note">
+    <element name="note">
+      <ref name="note.attlist"/>
+      <zeroOrMore>
+        <ref name="content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="note.attlist" combine="interleave">
+    <optional>
+      <attribute name="label"/>
+    </optional>
+    <ref name="common.att"/>
+  </define>
+  <!-- Warning Paragraph (normally shown with eye-catching colors) -->
+  <define name="warning">
+    <element name="warning">
+      <ref name="warning.attlist"/>
+      <zeroOrMore>
+        <ref name="content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="warning.attlist" combine="interleave">
+    <optional>
+      <attribute name="label"/>
+    </optional>
+    <ref name="common.att"/>
+  </define>
+  <!-- Fixme Paragraph (normally not shown) -->
+  <define name="fixme">
+    <element name="fixme">
+      <ref name="fixme.attlist"/>
+      <zeroOrMore>
+        <ref name="content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="fixme.attlist" combine="interleave">
+    <attribute name="author"/>
+    <ref name="common.att"/>
+  </define>
+  <!-- ==================================================== -->
+  <!-- Tables -->
+  <!-- ==================================================== -->
+  <!-- Attributes that indicate the spanning of the table cell -->
+  <define name="cell.span">
+    <optional>
+      <attribute name="colspan" a:defaultValue="1"/>
+    </optional>
+    <optional>
+      <attribute name="rowspan" a:defaultValue="1"/>
+    </optional>
+  </define>
+  <!-- Table element -->
+  <define name="table">
+    <element name="table">
+      <ref name="table.attlist"/>
+      <optional>
+        <ref name="caption"/>
+      </optional>
+      <oneOrMore>
+        <ref name="tr"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="table.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- The table title -->
+  <define name="caption">
+    <element name="caption">
+      <ref name="caption.attlist"/>
+      <zeroOrMore>
+        <ref name="content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="caption.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- The table row element -->
+  <define name="tr">
+    <element name="tr">
+      <ref name="tr.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="th"/>
+          <ref name="td"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="tr.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- The table row header element -->
+  <define name="th">
+    <element name="th">
+      <ref name="th.attlist"/>
+      <zeroOrMore>
+        <ref name="flow"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="th.attlist" combine="interleave">
+    <ref name="common.att"/>
+    <ref name="cell.span"/>
+  </define>
+  <!-- The table row description element -->
+  <define name="td">
+    <element name="td">
+      <ref name="td.attlist"/>
+      <zeroOrMore>
+        <ref name="flow"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="td.attlist" combine="interleave">
+    <ref name="common.att"/>
+    <ref name="cell.span"/>
+  </define>
+  <!-- ==================================================== -->
+  <!-- Lists -->
+  <!-- ==================================================== -->
+  <!-- List item -->
+  <define name="li">
+    <element name="li">
+      <ref name="li.attlist"/>
+      <zeroOrMore>
+        <ref name="flow"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="li.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- Unordered list (typically bulleted) -->
+  <define name="ul">
+    <element name="ul">
+      <ref name="ul.attlist"/>
+      <oneOrMore>
+        <ref name="li"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!--
+    spacing attribute:
+    Use "normal" to get normal vertical spacing for items;
+    use "compact" to get less spacing.  The default is dependent
+    on the stylesheet.
+  -->
+  <define name="ul.attlist" combine="interleave">
+    <ref name="common.att"/>
+    <optional>
+      <attribute name="spacing">
+        <choice>
+          <value>normal</value>
+          <value>compact</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!-- Ordered list (typically numbered) -->
+  <define name="ol">
+    <element name="ol">
+      <ref name="ol.attlist"/>
+      <oneOrMore>
+        <ref name="li"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!--
+    spacing attribute:
+    Use "normal" to get normal vertical spacing for items;
+    use "compact" to get less spacing.  The default is dependent
+    on the stylesheet.
+  -->
+  <define name="ol.attlist" combine="interleave">
+    <ref name="common.att"/>
+    <optional>
+      <attribute name="spacing">
+        <choice>
+          <value>normal</value>
+          <value>compact</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!-- Definition list (typically two-column) -->
+  <define name="dl">
+    <element name="dl">
+      <ref name="dl.attlist"/>
+      <oneOrMore>
+        <ref name="dt"/>
+        <ref name="dd"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="dl.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- Definition term -->
+  <define name="dt">
+    <element name="dt">
+      <ref name="dt.attlist"/>
+      <zeroOrMore>
+        <ref name="content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="dt.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- Definition description -->
+  <define name="dd">
+    <element name="dd">
+      <ref name="dd.attlist"/>
+      <zeroOrMore>
+        <ref name="flow"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="dd.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- ==================================================== -->
+  <!-- Special Blocks -->
+  <!-- ==================================================== -->
+  <!-- Image Block (typically a separated and centered image) -->
+  <define name="figure">
+    <element name="figure">
+      <ref name="figure.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="figure.attlist" combine="interleave">
+    <attribute name="src"/>
+    <attribute name="alt"/>
+    <optional>
+      <attribute name="height"/>
+    </optional>
+    <optional>
+      <attribute name="width"/>
+    </optional>
+    <optional>
+      <attribute name="usemap"/>
+    </optional>
+    <optional>
+      <attribute name="ismap">
+        <choice>
+          <value>ismap</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="align"/>
+    </optional>
+    <ref name="common.att"/>
+  </define>
+  <!-- anchor point (equivalent of <a name="...">, typically not rendered) -->
+  <define name="anchor">
+    <element name="anchor">
+      <ref name="anchor.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="anchor.attlist" combine="interleave">
+    <ref name="common-idreq.att"/>
+  </define>
+  <!-- =============================================================== -->
+  <!-- Document -->
+  <!-- =============================================================== -->
+  <define name="document">
+    <element name="document">
+      <ref name="document.attlist"/>
+      <ref name="header"/>
+      <ref name="body"/>
+      <optional>
+        <ref name="footer"/>
+      </optional>
+    </element>
+  </define>
+  <define name="document.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- ==================================================== -->
+  <!-- Header -->
+  <!-- ==================================================== -->
+  <define name="local.headers">
+    <empty/>
+  </define>
+  <define name="header">
+    <element name="header">
+      <ref name="header.attlist"/>
+      <ref name="title"/>
+      <optional>
+        <ref name="subtitle"/>
+      </optional>
+      <optional>
+        <ref name="version"/>
+      </optional>
+      <optional>
+        <ref name="type"/>
+      </optional>
+      <optional>
+        <ref name="authors"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="notice"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="abstract"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="meta"/>
+      </zeroOrMore>
+      <ref name="local.headers"/>
+    </element>
+  </define>
+  <define name="header.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <define name="title">
+    <element name="title">
+      <ref name="title.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="text"/>
+          <ref name="markup"/>
+          <ref name="links"/>
+          <ref name="special-inline"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="title.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <define name="subtitle">
+    <element name="subtitle">
+      <ref name="subtitle.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="text"/>
+          <ref name="markup"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="subtitle.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <define name="version">
+    <element name="version">
+      <ref name="version.attlist"/>
+      <ref name="text"/>
+    </element>
+  </define>
+  <define name="version.attlist" combine="interleave">
+    <ref name="common.att"/>
+    <optional>
+      <attribute name="major"/>
+    </optional>
+    <optional>
+      <attribute name="minor"/>
+    </optional>
+    <optional>
+      <attribute name="fix"/>
+    </optional>
+    <optional>
+      <attribute name="tag"/>
+    </optional>
+  </define>
+  <define name="type">
+    <element name="type">
+      <ref name="type.attlist"/>
+      <ref name="text"/>
+    </element>
+  </define>
+  <define name="type.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <define name="authors">
+    <element name="authors">
+      <ref name="authors.attlist"/>
+      <oneOrMore>
+        <ref name="person"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="authors.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <define name="notice">
+    <element name="notice">
+      <ref name="notice.attlist"/>
+      <zeroOrMore>
+        <ref name="content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="notice.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <define name="abstract">
+    <element name="abstract">
+      <ref name="abstract.attlist"/>
+      <zeroOrMore>
+        <ref name="content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="abstract.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- See http://www.w3.org/TR/xhtml2/mod-meta.html#s_metamodule -->
+  <define name="meta">
+    <element name="meta">
+      <ref name="meta.attlist"/>
+      <text/>
+    </element>
+  </define>
+  <define name="meta.attlist" combine="interleave">
+    <attribute name="name">
+      <data type="NMTOKEN"/>
+    </attribute>
+    <ref name="common.att"/>
+  </define>
+  <!-- ==================================================== -->
+  <!-- Body -->
+  <!-- ==================================================== -->
+  <define name="local.sections">
+    <notAllowed/>
+  </define>
+  <define name="sections">
+    <choice>
+      <ref name="section"/>
+      <ref name="local.sections"/>
+    </choice>
+  </define>
+  <define name="body">
+    <element name="body">
+      <ref name="body.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="sections"/>
+          <ref name="blocks"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="body.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <define name="section">
+    <element name="section">
+      <ref name="section.attlist"/>
+      <ref name="title"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="sections"/>
+          <ref name="blocks"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="section.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+  <!-- ==================================================== -->
+  <!-- Footer -->
+  <!-- ==================================================== -->
+  <define name="local.footers">
+    <notAllowed/>
+  </define>
+  <define name="footer">
+    <element name="footer">
+      <ref name="footer.attlist"/>
+      <choice>
+        <ref name="legal"/>
+        <ref name="local.footers"/>
+      </choice>
+    </element>
+  </define>
+  <define name="footer.attlist" combine="interleave">
+    <empty/>
+  </define>
+  <define name="legal">
+    <element name="legal">
+      <ref name="legal.attlist"/>
+      <zeroOrMore>
+        <ref name="content.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="legal.attlist" combine="interleave">
+    <ref name="common.att"/>
+  </define>
+</grammar>
+<!-- =============================================================== -->
+<!-- End of DTD -->
+<!-- =============================================================== -->

Propchange: forrest/trunk/main/webapp/resources/schema/relaxng/document-v20.mod.rng
------------------------------------------------------------------------------
    svn:eol-style = native

Added: forrest/trunk/main/webapp/resources/schema/relaxng/document-v20.rng
URL: http://svn.apache.org/viewcvs/forrest/trunk/main/webapp/resources/schema/relaxng/document-v20.rng?rev=180024&view=auto
==============================================================================
--- forrest/trunk/main/webapp/resources/schema/relaxng/document-v20.rng (added)
+++ forrest/trunk/main/webapp/resources/schema/relaxng/document-v20.rng Sat Jun  4 14:07:01 2005
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 1999-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.
+-->
+<!--
+  ===================================================================
+  
+       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 XML
+    project.
+  
+    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.1a//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 <el...@arbortext.com>.
+  
+    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 -->
+<!-- =============================================================== -->
+<!-- =============================================================== -->
+<!-- Document -->
+<!-- =============================================================== -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+  <include href="document-v20.mod.rng"/>
+  <start>
+    <choice>
+      <ref name="document"/>
+    </choice>
+  </start>
+</grammar>
+<!-- =============================================================== -->
+<!-- End of DTD -->
+<!-- =============================================================== -->

Propchange: forrest/trunk/main/webapp/resources/schema/relaxng/document-v20.rng
------------------------------------------------------------------------------
    svn:eol-style = native