You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2015/03/23 18:03:34 UTC

[36/51] [partial] clerezza git commit: CLEREZZA-966: removed platform. prefix of folder names

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/exclude/form.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/exclude/form.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/exclude/form.rng
new file mode 100755
index 0000000..1c47382
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/exclude/form.rng
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Checks exclusions applying to form and basic-form modules.
+  This schema is intended to be used in addition to xhtml.rng.
+-->
+<grammar ns="http://www.w3.org/1999/xhtml" xmlns="http://relaxng.org/ns/structure/1.0">
+  <start>
+    <ref name="normalElement"/>
+  </start>
+  <define name="normalElement">
+    <element>
+      <anyName>
+        <except>
+          <name>form</name>
+          <name>label</name>
+          <name>button</name>
+        </except>
+      </anyName>
+      <ref name="normalContent"/>
+    </element>
+  </define>
+  <define name="normalContent">
+    <zeroOrMore>
+      <choice>
+        <ref name="normalElement"/>
+        <ref name="formElement"/>
+        <ref name="labelElement"/>
+        <ref name="buttonElement"/>
+        <ref name="anyAttribute"/>
+        <text/>
+      </choice>
+    </zeroOrMore>
+  </define>
+  <define name="formElement">
+    <element name="form">
+      <ref name="formContent"/>
+    </element>
+  </define>
+  <define name="formContent">
+    <zeroOrMore>
+      <choice>
+        <element>
+          <anyName>
+            <except>
+              <name>form</name>
+              <name>label</name>
+              <name>button</name>
+            </except>
+          </anyName>
+          <ref name="formContent"/>
+        </element>
+        <ref name="labelElement"/>
+        <ref name="buttonElement"/>
+        <ref name="anyAttribute"/>
+        <text/>
+      </choice>
+    </zeroOrMore>
+  </define>
+  <define name="labelElement">
+    <element name="label">
+      <ref name="labelContent"/>
+    </element>
+  </define>
+  <define name="labelContent">
+    <zeroOrMore>
+      <choice>
+        <element>
+          <anyName>
+            <except>
+              <name>form</name>
+              <name>label</name>
+              <name>button</name>
+            </except>
+          </anyName>
+          <ref name="labelContent"/>
+        </element>
+        <ref name="buttonElement"/>
+        <ref name="anyAttribute"/>
+        <text/>
+      </choice>
+    </zeroOrMore>
+  </define>
+  <define name="buttonElement">
+    <element name="button">
+      <ref name="buttonContent"/>
+    </element>
+  </define>
+  <define name="buttonContent">
+    <zeroOrMore>
+      <choice>
+        <element>
+          <anyName>
+            <except>
+              <name>a</name>
+              <name>input</name>
+              <name>select</name>
+              <name>textarea</name>
+              <name>label</name>
+              <name>button</name>
+              <name>form</name>
+              <name>isindex</name>
+              <name>fieldset</name>
+              <name>iframe</name>
+            </except>
+          </anyName>
+          <ref name="buttonContent"/>
+        </element>
+        <ref name="anyAttribute"/>
+        <text/>
+      </choice>
+    </zeroOrMore>
+  </define>
+  <define name="anyAttribute">
+    <attribute>
+      <anyName/>
+    </attribute>
+  </define>
+</grammar>

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/index.html
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/index.html b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/index.html
new file mode 100644
index 0000000..bf61574
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/index.html
@@ -0,0 +1,129 @@
+<!--
+
+ 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.
+
+-->
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Modularization of XHTML in RELAX NG</title>
+</head>
+<body>
+<h1>Modularization of XHTML in RELAX NG</h1>
+
+<p>This directory contains an implementataion in RELAX NG of the
+modularization of XHTML specified by the <a
+href="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410"
+>Modularization of XHTML Recommendation</a>.</p>
+
+<p>The RELAX NG schema has not been mechanically derived from the DTDs.
+Rather, it has been hand-crafted so as to produce a good quality RELAX NG
+schema.  However, it may well contain bugs.</p>
+
+<p>The <a href="modules"><code>modules</code></a> directory contains
+all the modules; <a
+href="xhtml-basic.rng"><code>xhtml-basic.rng</code></a> uses the
+modules to implement <a href="http://www.w3.org/TR/xhtml-basic/">XHTML
+Basic</a>; <a
+href="xhtml-strict.rng"><code>xhtml-strict.rng</code></a> uses the
+modules to implement <a href="http://www.w3.org/TR/xhtml1/">XHTML
+1.0</a> strict; <a href="xhtml.rng"><code>xhtml.rng</code></a> uses
+the modules to implement the union of <a
+href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> transitional and <a
+href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> frameset.  You can
+<a href="http://www.thaiopensource.com/download">download</a>
+everything as part of the main Jing distribution.  To create a custom
+version of XHTML, simply copy <code>xhtml.rng</code> and delete the
+inclusions of the modules that you do not want.</p>
+
+<p>The biggest difference between the RELAX NG implementation and the
+DTD implementation is that the RELAX NG implementation does not
+require you to create a model module specific to the combination of
+XHTML modules you are using. Instead, simply include the modules you
+want. The modules take care of redefining the content models
+appropriately.</p>
+
+<p>Note also the following differences:</p>
+
+<ul>
+
+<li>The frames module is used instead of the struct module, rather
+than in addition to it.</li>
+
+<li>In the frames module, the <code>frameset</code> element does not
+restrict the optional <code>noframes</code> element to follow all the
+other child elements. XHTML Modularization is inconsistent with both
+HTML 4.0 and XHTML 1.0 here.</li>
+
+<li>In the basic tables abstract module, the <code>table</code>
+element does not have a <code>width</code> attribute.  The XHTML Rec is
+ambiguous here: the abstract module has the attribute, but the DTD
+does not.</li>
+
+<li>The object and applet modules takes advantage of RELAX NG's
+absence of restrictions on mixed content to enforce the requirement
+that <code>param</code>s precede other content.</li>
+
+<li>The forms module takes advantage of RELAX NG's absence of
+restrictions on mixed content to enforce the requirement that any
+<code>legend</code> precedes other content.</li>
+
+<li>The RELAX NG schema does not enforce exclusions. The HTML 4 DTD
+uses exclusions in several places, for example, to disallow an
+<code>a</code> element from having an <code>a</code> element as a
+descendant. It is not possible to represent this constraint in XML
+DTDs. XHTML Modularization takes the approach of partially
+representing this restriction by, for example, disallowing an
+<code>a</code> element from having an <code>a</code> element as a
+<em>child</em>, without disallowing it from having an <code>a</code>
+element as a non-immediate descendant.  This partial restriction has a
+substantial cost in increasing the complexity and reducing the
+modularity of the schemas. This implementation adopts a different
+approach. The <a href="exclude"><code>exclude</code></a> directory
+contains separate, independent RELAX NG schemas that enforce
+exclusions.  To check use of exclusions, a document should be
+validated against each of these schemas that is applicable <strong>in
+addition to</strong> being validated against the RELAX NG XHTML schema
+proper. The available schemas are as follows:
+
+<dl>
+
+<dt><a href="exclude/basic.rng"><code>exclude/basic.rng</code></a></dt>
+<dd>checks the exclusions relating to <code>a</code> and
+<code>pre</code> elements</dd>
+
+<dt><a
+href="exclude/basic-table.rng"><code>exclude/basic-table.rng</code></a></dt>
+
+<dd>checks the exclusions relating to basic tables module (i.e.
+checks that <code>table</code> elements are not nested)</dd>
+
+<dt><a href="exclude/form.rng"><code>exclude/form.rng</code></a></dt>
+
+<dd>checks the exclusions relating to forms and basic forms modules</dd>
+
+</dl>
+
+</li>
+
+</ul>
+
+<address><a href="mailto:jjc@jclark.com">James Clark</a></address>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/applet.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/applet.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/applet.rng
new file mode 100755
index 0000000..22baa50
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/applet.rng
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Applet Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="applet">
+  <element name="applet">
+    <ref name="applet.attlist"/>
+    <!-- No restrictions on mixed content in TREX. -->
+    <zeroOrMore>
+      <ref name="param"/>
+    </zeroOrMore>
+    <ref name="Flow.model"/>
+  </element>
+</define>
+
+<define name="applet.attlist">
+  <ref name="Core.attrib"/>
+  <attribute name="alt">
+    <ref name="Text.datatype"/>
+  </attribute>
+  <optional>
+    <attribute name="archive"/>
+  </optional>
+  <optional>
+    <attribute name="code"/>
+  </optional>
+  <optional>
+    <attribute name="codebase">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="object"/>
+  </optional>
+  <attribute name="height">
+    <ref name="Length.datatype"/>
+  </attribute>
+  <attribute name="width">
+    <ref name="Length.datatype"/>
+  </attribute>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <ref name="applet"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/attribs.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/attribs.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/attribs.rng
new file mode 100755
index 0000000..5fa3bfa
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/attribs.rng
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Common Attributes Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="id.attrib">
+  <optional>
+    <attribute name="id">
+      <ref name="ID.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="class.attrib">
+  <optional>
+    <attribute name="class">
+      <ref name="NMTOKENS.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="title.attrib">
+  <optional>
+    <attribute name="title">
+      <ref name="Text.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Core.attrib">
+  <ref name="id.attrib"/>
+  <ref name="class.attrib"/>
+  <ref name="title.attrib"/>
+</define>
+
+<define name="lang.attrib">
+  <optional>
+    <attribute name="xml:lang">
+      <ref name="LanguageCode.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="I18n.attrib">
+  <ref name="lang.attrib"/>
+</define>
+
+<define name="Common.attrib">
+  <ref name="Core.attrib"/>
+  <ref name="I18n.attrib"/>
+</define>
+
+<define name="CommonIdRequired.attrib">
+  <attribute name="id">
+    <ref name="ID.datatype"/>
+  </attribute>
+  <ref name="class.attrib"/>
+  <ref name="title.attrib"/>
+  <ref name="I18n.attrib"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/base.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/base.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/base.rng
new file mode 100755
index 0000000..c9ade45
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/base.rng
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Base Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="base">
+  <element name="base">
+    <ref name="base.attlist"/>
+  </element>
+</define>
+
+<define name="base.attlist">
+  <attribute name="href">
+    <ref name="URI.datatype"/>
+  </attribute>
+</define>
+
+<define name="head.content" combine="interleave">
+  <optional>
+    <ref name="base"/>
+  </optional>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/basic-form.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/basic-form.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/basic-form.rng
new file mode 100755
index 0000000..b8f8afb
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/basic-form.rng
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Simplified Forms Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="form">
+  <element name="form">
+    <ref name="form.attlist"/>
+    <!-- Don't use Block.model, because this gets redefined by the
+	 legacy module. -->
+    <oneOrMore>
+      <ref name="Block.class"/>
+    </oneOrMore>
+  </element>
+</define>
+
+<define name="form.attlist">
+  <ref name="Common.attrib"/>
+  <attribute name="action">
+    <ref name="URI.datatype"/>
+  </attribute>
+  <optional>
+    <attribute name="method">
+      <choice>
+	<value>get</value>
+	<value>post</value>
+      </choice>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="enctype">
+      <ref name="ContentType.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="label">
+  <element name="label">
+    <ref name="label.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="label.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="for">
+      <ref name="IDREF.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="accesskey">
+      <ref name="Character.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="input">
+  <element name="input">
+    <ref name="input.attlist"/>
+  </element>
+</define>
+
+<define name="input.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="type">
+      <ref name="InputType.class"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="name"/>
+  </optional>
+  <optional>
+    <attribute name="value"/>
+  </optional>
+  <optional>
+    <attribute name="checked">
+      <value>checked</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="size"/>
+  </optional>
+  <optional>
+    <attribute name="maxlength">
+      <ref name="Number.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="src">
+       <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="accesskey">
+      <ref name="Character.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="InputType.class">
+  <choice>
+    <value>text</value>
+    <value>password</value>
+    <value>checkbox</value>
+    <value>radio</value>
+    <value>submit</value>
+    <value>reset</value>
+    <value>hidden</value>
+  </choice>
+</define>
+
+<define name="select">
+  <element name="select">
+    <ref name="select.attlist"/>
+    <oneOrMore>
+      <ref name="option"/>
+    </oneOrMore>
+  </element>
+</define>
+
+<define name="select.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="name"/>
+  </optional>
+  <optional>
+    <attribute name="size">
+      <ref name="Number.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="multiple">
+      <value>multiple</value>
+    </attribute>
+  </optional>
+</define>
+   
+<define name="option">
+  <element name="option">
+    <ref name="Common.attrib"/>
+    <optional>
+      <attribute name="selected">
+        <value>selected</value>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="value"/>
+    </optional>
+    <text/>
+  </element>
+</define>
+
+<define name="textarea">
+  <element name="textarea">
+    <ref name="textarea.attlist"/>
+  </element>
+</define>
+
+<define name="textarea.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="name"/>
+  </optional>
+  <attribute name="rows">
+    <ref name="Number.datatype"/>
+  </attribute>
+  <attribute name="cols">
+    <ref name="Number.datatype"/>
+  </attribute>
+  <optional>
+    <attribute name="accesskey">
+      <ref name="Character.datatype"/>
+    </attribute>
+  </optional>
+  <text/>
+</define>
+
+<define name="Form.class">
+  <ref name="form"/>
+</define>
+
+<define name="Formctrl.class">
+  <choice>
+    <ref name="input"/>
+    <ref name="label"/>
+    <ref name="select"/>
+    <ref name="textarea"/>
+  </choice>
+</define>
+
+<define name="Block.class" combine="choice">
+  <ref name="Form.class"/>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <ref name="Formctrl.class"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/basic-table.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/basic-table.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/basic-table.rng
new file mode 100755
index 0000000..db9a534
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/basic-table.rng
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Basic Tables Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<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">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="summary">
+      <ref name="Text.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="caption">
+  <element name="caption">
+    <ref name="caption.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="caption.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<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">
+  <ref name="Common.attrib"/>
+  <ref name="CellHAlign.attrib"/>
+  <ref name="CellVAlign.attrib"/>
+</define>
+
+<define name="th">
+  <element name="th">
+    <ref name="th.attlist"/>
+    <ref name="Flow.model"/>
+  </element>
+</define>
+
+<define name="th.attlist">
+  <ref name="Cell.attrib"/>
+</define>
+
+<define name="td">
+  <element name="td">
+    <ref name="td.attlist"/>
+    <ref name="Flow.model"/>
+  </element>
+</define>
+
+<define name="td.attlist">
+  <ref name="Cell.attrib"/>
+</define>
+
+<define name="Cell.attrib">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="abbr">
+      <ref name="Text.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="axis"/>
+  </optional>
+  <optional>
+    <attribute name="headers">
+      <ref name="IDREFS.datatype"/>
+    </attribute>
+  </optional>
+  <ref name="scope.attrib"/>
+  <optional>
+    <attribute name="rowspan">
+      <ref name="Number.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="colspan">
+      <ref name="Number.datatype"/>
+    </attribute>
+  </optional>
+  <ref name="CellHAlign.attrib"/>
+  <ref name="CellVAlign.attrib"/>
+</define>
+
+<define name="CellHAlign.attrib">
+  <optional>
+    <attribute name="align">
+      <choice>
+	<value>left</value>
+	<value>center</value>
+	<value>right</value>
+      </choice>
+    </attribute>
+  </optional>
+</define>
+
+<define name="CellVAlign.attrib">
+  <optional>
+    <attribute name="valign">
+      <choice>
+	<value>top</value>
+	<value>middle</value>
+	<value>bottom</value>
+      </choice>
+    </attribute>
+  </optional>
+</define>
+
+<define name="scope.attrib">
+  <optional>
+    <attribute name="scope">
+      <choice>
+	<value>row</value>
+	<value>col</value>
+      </choice>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Block.class" combine="choice">
+  <ref name="table"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/bdo.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/bdo.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/bdo.rng
new file mode 100755
index 0000000..2742f3a
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/bdo.rng
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Bi-directional Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="bdo">
+  <element name="bdo">
+    <ref name="bdo.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="bdo.attlist">
+  <ref name="Core.attrib"/>
+  <ref name="lang.attrib"/>
+  <ref name="dir.attrib"/>
+</define>
+
+<define name="dir.attrib">
+  <attribute name="dir">
+    <choice>
+      <value>ltr</value>
+      <value>rtl</value>
+    </choice>
+  </attribute>
+</define>
+
+<define name="I18n.attrib" combine="interleave">
+  <optional>
+    <ref name="dir.attrib"/>
+  </optional>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <ref name="bdo"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/csismap.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/csismap.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/csismap.rng
new file mode 100755
index 0000000..7ad9833
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/csismap.rng
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Client-side Image Map Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="area">
+  <element name="area">
+    <ref name="area.attlist"/>
+  </element>
+</define>
+
+<define name="area.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="href">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <ref name="shape.attrib"/>
+  <ref name="coords.attrib"/>
+  <optional>
+    <attribute name="nohref">
+      <value>nohref</value>
+    </attribute>
+  </optional>
+  <attribute name="alt">
+    <ref name="Text.datatype"/>
+  </attribute>
+  <optional>
+    <attribute name="tabindex">
+      <ref name="Number.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="accesskey">
+      <ref name="Character.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="map">
+  <element name="map">
+    <ref name="map.attlist"/>
+    <oneOrMore>
+      <choice>
+        <!-- This does not use Block.mix
+             because loose.dtd doesn't use %Flow; -->
+        <ref name="Block.class"/>
+        <ref name="area"/>
+      </choice>
+    </oneOrMore>
+  </element>
+</define>
+
+<define name="map.attlist">
+  <ref name="CommonIdRequired.attrib"/>
+</define>
+
+<define name="a.attlist" combine="interleave">
+  <ref name="shape.attrib"/>
+  <ref name="coords.attrib"/>
+</define>
+
+<define name="img.attlist" combine="interleave">
+  <ref name="usemap.attlist"/>
+</define>
+
+<define name="object.attlist" combine="interleave">
+  <ref name="usemap.attlist"/>
+</define>
+
+<define name="usemap.attlist">
+  <optional>
+    <attribute name="usemap">
+      <ref name="IDREF.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="shape.attrib">
+  <optional>
+    <attribute name="shape">
+      <choice>
+        <value>rect</value>
+        <value>circle</value>
+        <value>poly</value>
+        <value>default</value>
+      </choice>
+    </attribute>
+  </optional>
+</define>
+
+<define name="coords.attrib">
+  <optional>
+    <attribute name="coords"/>
+  </optional>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <ref name="map"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/datatypes.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/datatypes.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/datatypes.rng
new file mode 100755
index 0000000..d62631a
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/datatypes.rng
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Datatypes Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+
+<!-- Length defined for cellpadding/cellspacing -->
+
+<!-- nn for pixels or nn% for percentage length -->
+<define name="Length.datatype">
+  <text/>
+</define>
+
+<!-- space-separated list of link types -->
+<define name="LinkTypes.datatype">
+  <ref name="NMTOKENS.datatype"/>
+</define>
+
+<!-- single or comma-separated list of media descriptors -->
+<define name="MediaDesc.datatype">
+  <text/>
+</define>
+
+<!-- pixel, percentage, or relative -->
+<define name="MultiLength.datatype">
+  <text/>
+</define>
+
+<!-- one or more digits (NUMBER) -->
+<define name="Number.datatype">
+  <text/>
+</define>
+
+<!-- integer representing length in pixels -->
+<define name="Pixels.datatype">
+  <text/>
+</define>
+
+<!-- script expression -->
+<define name="Script.datatype">
+  <text/>
+</define>
+
+<!-- textual content -->
+<define name="Text.datatype">
+  <text/>
+</define>
+
+<!-- Imported Datatypes ................................ -->
+
+<!-- a single character from [ISO10646] -->
+<define name="Character.datatype">
+  <text/>
+</define>
+
+<!-- a character encoding, as per [RFC2045] -->
+<define name="Charset.datatype">
+  <text/>
+</define>
+
+<!-- a space separated list of character encodings, as per [RFC2045] -->
+<define name="Charsets.datatype">
+  <text/>
+</define>
+
+<!-- media type, as per [RFC2045] -->
+<define name="ContentType.datatype">
+  <text/>
+</define>
+
+<!-- comma-separated list of media types, as per [RFC2045] -->
+<define name="ContentTypes.datatype">
+  <text/>
+</define>
+
+<!-- date and time information. ISO date format -->
+<define name="Datetime.datatype">
+  <text/>
+</define>
+
+<!-- formal public identifier, as per [ISO8879] -->
+<define name="FPI.datatype">
+  <text/>
+</define>
+
+<!-- a language code, as per [RFC1766] -->
+<define name="LanguageCode.datatype">
+  <data type="language"/>
+</define>
+
+<!-- a Uniform Resource Identifier, see [URI] -->
+<define name="URI.datatype">
+  <data type="anyURI"/>
+</define>
+
+<!-- a space-separated list of Uniform Resource Identifiers, see [URI] -->
+<define name="URIs.datatype">
+  <text/>
+</define>
+
+<define name="NMTOKEN.datatype">
+  <data type="NMTOKEN"/>
+</define>
+
+<define name="NMTOKENS.datatype">
+  <data type="NMTOKENS"/>
+</define>
+
+<define name="ID.datatype">
+  <data type="ID"/>
+</define>
+
+<define name="IDREF.datatype">
+  <data type="IDREF"/>
+</define>
+
+<define name="IDREFS.datatype">
+  <data type="IDREFS"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/edit.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/edit.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/edit.rng
new file mode 100755
index 0000000..ad98c89
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/edit.rng
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Edit Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="del">
+  <element name="del">
+    <ref name="del.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="del.attlist">
+  <ref name="Edit.attrib"/>
+</define>
+
+<define name="ins">
+  <element name="ins">
+    <ref name="ins.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="ins.attlist">
+  <ref name="Edit.attrib"/>
+</define>
+
+<define name="Edit.attrib">
+  <optional>
+    <attribute name="cite">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="datetime">
+      <ref name="Datetime.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Edit.class">
+  <choice>
+    <ref name="del"/>
+    <ref name="ins"/>
+  </choice>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <ref name="Edit.class"/>
+</define>
+
+<define name="Block.class" combine="choice">
+  <ref name="Edit.class"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/events.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/events.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/events.rng
new file mode 100755
index 0000000..e13432f
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/events.rng
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Events Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="a.attlist" combine="interleave">
+  <optional>
+    <attribute name="onblur">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onfocus">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="area.attlist" combine="interleave">
+  <optional>
+    <attribute name="onblur">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onfocus">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="form.attlist" combine="interleave">
+  <optional>
+    <attribute name="onreset">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onsubmit">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="body.attlist" combine="interleave">
+  <optional>
+    <attribute name="onload">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onunload">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="label.attlist" combine="interleave">
+  <optional>
+    <attribute name="onblur">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onfocus">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="input.attlist" combine="interleave">
+  <optional>
+    <attribute name="onblur">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onchange">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onfocus">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onselect">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="select.attlist" combine="interleave">
+  <optional>
+    <attribute name="onblur">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onchange">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onfocus">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="textarea.attlist" combine="interleave">
+  <optional>
+    <attribute name="onblur">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onchange">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onfocus">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onselect">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="button.attlist" combine="interleave">
+  <optional>
+    <attribute name="onblur">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onfocus">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Events.attrib">
+  <optional>
+    <attribute name="onclick">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="ondblclick">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onmousedown">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onmouseup">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onmouseover">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onmousemove">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onmouseout">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onkeypress">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onkeydown">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="onkeyup">
+      <ref name="Script.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Common.attrib" combine="interleave">
+  <ref name="Events.attrib"/>
+</define>
+
+<define name="CommonIdRequired.attrib" combine="interleave">
+  <ref name="Events.attrib"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/form.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/form.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/form.rng
new file mode 100755
index 0000000..3189678
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/form.rng
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Forms Module -->
+<!-- Unlike the DTD implementation, this builds on the basic-form module --><grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<include href="basic-form.rng">
+
+  <define name="select">
+    <element name="select">
+      <ref name="select.attlist"/>
+      <oneOrMore>
+	<choice>
+	  <ref name="option"/>
+	  <ref name="optgroup"/>
+	</choice>
+      </oneOrMore>
+    </element>
+  </define>
+
+</include>
+
+<define name="form.attlist" combine="interleave">
+  <optional>
+    <attribute name="accept-charset">
+      <ref name="Charsets.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="accept">
+      <ref name="ContentTypes.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="input.attlist" combine="interleave">
+  <optional>
+    <attribute name="disabled">
+      <value>disabled</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="readonly">
+      <value>readonly</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="alt"/>
+  </optional>
+  <optional>
+    <attribute name="tabindex">
+      <ref name="Number.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="accept">
+      <ref name="ContentTypes.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="InputType.class" combine="choice">
+  <choice>
+    <value>image</value>
+    <value>button</value>
+  </choice>
+</define>
+
+<define name="select.attlist" combine="interleave">
+  <optional>
+    <attribute name="disabled">
+      <value>disabled</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="tabindex">
+      <ref name="Number.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="option.attlist" combine="interleave">
+  <optional>
+    <attribute name="disabled">
+      <value>disabled</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="label">
+      <ref name="Text.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="optgroup">
+  <element name="optgroup">
+    <ref name="optgroup.attlist"/>
+    <oneOrMore>
+      <ref name="option"/>
+    </oneOrMore>
+  </element>
+</define>
+
+<define name="optgroup.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="disabled">
+      <value>disabled</value>
+    </attribute>
+  </optional>
+  <attribute name="label">
+    <ref name="Text.datatype"/>
+  </attribute>
+</define>
+
+<define name="textarea.attlist" combine="interleave">
+  <optional>
+    <attribute name="disabled">
+      <value>disabled</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="readonly">
+      <value>readonly</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="tabindex">
+      <ref name="Number.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="fieldset">
+  <element name="fieldset">
+    <ref name="fieldset.attlist"/>
+    <ref name="legend"/>
+    <ref name="Flow.model"/>
+  </element>
+</define>
+
+<define name="fieldset.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="button">
+  <element name="button">
+    <ref name="button.attlist"/>
+    <ref name="Flow.model"/>
+  </element>
+</define>
+
+<define name="button.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="name"/>
+  </optional>
+  <optional>
+    <attribute name="value"/>
+  </optional>
+  <optional>
+    <attribute name="type">
+      <choice>
+        <value>button</value>
+        <value>submit</value>
+        <value>reset</value>
+      </choice>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="disabled">
+      <value>disabled</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="tabindex">
+      <ref name="Number.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="accesskey">
+      <ref name="Character.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="legend">
+  <element name="legend">
+    <ref name="legend.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="legend.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="accesskey">
+      <ref name="Character.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Form.class" combine="choice">
+  <ref name="fieldset"/>
+</define>
+
+<define name="Formctrl.class" combine="choice">
+  <ref name="button"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/frames.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/frames.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/frames.rng
new file mode 100755
index 0000000..7b97353
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/frames.rng
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Frames Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<include href="struct.rng">
+
+  <define name="html">
+    <element name="html">
+      <ref name="html.attlist"/>
+      <ref name="head"/>
+      <ref name="frameset"/>
+    </element>
+  </define>
+
+</include>
+
+<define name="frameset">
+  <element name="frameset">
+    <ref name="frameset.attlist"/>
+    <interleave>
+      <oneOrMore>
+	<choice>
+	  <ref name="frameset"/>
+	  <ref name="frame"/>
+	</choice>
+      </oneOrMore>
+      <optional>
+	<ref name="noframes"/>
+      </optional>
+    </interleave>
+  </element>
+</define>
+
+<define name="frameset.attlist">
+  <ref name="Core.attrib"/>
+  <optional>
+    <attribute name="cols">
+      <ref name="MultiLength.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="rows">
+      <ref name="MultiLength.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="frame">
+  <element name="frame">
+    <ref name="frame.attlist"/>
+  </element>
+</define>
+
+<define name="frame.attlist">
+  <ref name="Core.attrib"/>
+  <optional>
+    <attribute name="longdesc">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="src">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="frameborder">
+      <choice>
+        <value>1</value>
+        <value>0</value>
+      </choice>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="marginwidth">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="marginheight">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="noresize">
+      <value>noresize</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="scrolling">
+      <choice>
+        <value>yes</value>
+        <value>no</value>
+        <value>auto</value>
+      </choice>
+    </attribute>
+  </optional>
+</define>
+
+<define name="noframes">
+  <element name="noframes">
+    <ref name="noframes.attlist"/>
+    <ref name="body"/>
+  </element>
+</define>
+
+<define name="noframes.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/hypertext.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/hypertext.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/hypertext.rng
new file mode 100755
index 0000000..fb90d95
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/hypertext.rng
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Hypertext Module -->
+<!-- Depends on text module. -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="a">
+  <element name="a">
+    <ref name="a.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="a.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="href">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="charset">
+      <ref name="Charset.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="type">
+      <ref name="ContentType.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="hreflang">
+      <ref name="LanguageCode.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="rel">
+      <ref name="LinkTypes.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="rev">
+      <ref name="LinkTypes.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="accesskey">
+      <ref name="Character.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="tabindex">
+      <ref name="Number.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <ref name="a"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/iframe.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/iframe.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/iframe.rng
new file mode 100755
index 0000000..3763854
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/iframe.rng
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Iframe Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="iframe">
+  <element name="iframe">
+    <ref name="iframe.attlist"/>
+    <ref name="Flow.model"/>
+  </element>
+</define>
+
+<define name="iframe.attlist">
+  <ref name="Core.attrib"/>
+  <optional>
+    <attribute name="longdesc">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="src">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="frameborder">
+      <choice>
+        <value>1</value>
+        <value>0</value>
+      </choice>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="width">
+      <ref name="Length.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="height">
+      <ref name="Length.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="marginwidth">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="marginheight">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="scrolling">
+      <choice>
+        <value>yes</value>
+        <value>no</value>
+        <value>auto</value>
+      </choice>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <ref name="iframe"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/image.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/image.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/image.rng
new file mode 100755
index 0000000..1f313f6
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/image.rng
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Image Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="img">
+  <element name="img">
+    <ref name="img.attlist"/>
+  </element>
+</define>
+
+<define name="img.attlist">
+  <ref name="Common.attrib"/>
+  <attribute name="src">
+    <ref name="URI.datatype"/>
+  </attribute>
+  <attribute name="alt">
+    <ref name="Text.datatype"/>
+  </attribute>
+  <optional>
+    <attribute name="longdesc">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="height">
+      <ref name="Length.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="width">
+      <ref name="Length.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <ref name="img"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/inlstyle.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/inlstyle.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/inlstyle.rng
new file mode 100755
index 0000000..70d728a
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/inlstyle.rng
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Inline Style Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="Core.attrib" combine="interleave">
+  <optional>
+    <attribute name="style"/>
+  </optional>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/legacy.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/legacy.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/legacy.rng
new file mode 100755
index 0000000..87a7205
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/legacy.rng
@@ -0,0 +1,502 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Legacy Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="lang.attrib" combine="interleave">
+  <optional>
+    <attribute name="lang">
+      <ref name="LanguageCode.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="basefont">
+  <element name="basefont">
+    <ref name="basefont.attlist"/>
+  </element>
+</define>
+
+<define name="basefont.attlist">
+  <ref name="id.attrib"/>
+  <ref name="Font.attrib"/>
+</define>
+
+<define name="center">
+  <element name="center">
+    <ref name="center.attlist"/>
+    <ref name="Flow.model"/>
+  </element>
+</define>
+
+<define name="center.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="font">
+  <element name="font">
+    <ref name="font.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="font.attlist">
+  <ref name="Core.attrib"/>
+  <ref name="I18n.attrib"/>
+  <ref name="Font.attrib"/>
+</define>
+
+<define name="Font.attrib">
+  <optional>
+    <attribute name="size"/>
+  </optional>
+  <optional>
+    <attribute name="color">
+      <ref name="Color.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="face"/>
+  </optional>
+</define>
+
+<define name="s">
+  <element name="s">
+    <ref name="s.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="s.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="strike">
+  <element name="strike">
+    <ref name="strike.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="strike.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="u">
+  <element name="u">
+    <ref name="u.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="u.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="dir">
+  <element name="dir">
+    <ref name="dir.attlist"/>
+    <oneOrMore>
+      <ref name="li.noblock"/>
+    </oneOrMore>
+  </element>
+</define>
+
+<define name="dir.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="compact">
+      <value>compact</value>
+    </attribute>
+  </optional>
+</define>
+
+<define name="menu">
+  <element name="menu">
+    <ref name="menu.attlist"/>
+    <oneOrMore>
+      <ref name="li.noblock"/>
+    </oneOrMore>
+  </element>
+</define>
+
+<define name="menu.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="compact">
+      <value>compact</value>
+    </attribute>
+  </optional>
+</define>
+
+<define name="li.noblock">
+  <element name="li">
+    <ref name="li.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="isindex">
+  <element name="isindex">
+    <ref name="isindex.attlist"/>
+  </element>
+</define>
+
+<define name="isindex.attlist">
+  <ref name="Core.attrib"/>
+  <ref name="I18n.attrib"/>
+  <optional>
+    <attribute name="prompt">
+      <ref name="Text.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="applet.attlist" combine="interleave">
+  <optional>
+    <attribute name="align">
+      <choice>
+	<value>top</value>
+	<value>middle</value>
+	<value>bottom</value>
+	<value>left</value>
+	<value>right</value>
+      </choice>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="hspace">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="vspace">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="body.attlist" combine="interleave">
+  <optional>
+    <attribute name="background">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="bgcolor">
+      <ref name="Color.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="text">
+      <ref name="Color.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="link">
+      <ref name="Color.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="vlink">
+      <ref name="Color.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="alink">
+      <ref name="Color.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="br.attlist" combine="interleave">
+  <optional>
+    <attribute name="clear">
+      <choice>
+	<value>left</value>
+	<value>all</value>
+	<value>right</value>
+	<value>none</value>
+      </choice>
+    </attribute>
+  </optional>
+</define>
+
+<define name="caption.attlist" combine="interleave">
+  <ref name="align.attrib"/>
+</define>
+
+<define name="div.attlist" combine="interleave">
+  <ref name="align.attrib"/>
+</define>
+
+<!-- Not in the CR, but surely an error. -->
+
+<define name="dl.attlist" combine="interleave">
+  <optional>
+    <attribute name="compact">
+      <value>compact</value>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Heading.attrib" combine="interleave">
+  <ref name="align.attrib"/>
+</define>
+
+<define name="hr.attlist" combine="interleave">
+  <optional>
+    <attribute name="align">
+      <choice>
+	<value>left</value>
+	<value>center</value>
+	<value>right</value>
+      </choice>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="noshade">
+      <value>noshade</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="size">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="width">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="img.attlist" combine="interleave">
+  <optional>
+    <attribute name="align">
+      <choice>
+	<value>top</value>
+	<value>middle</value>
+	<value>bottom</value>
+	<value>left</value>
+	<value>right</value>
+      </choice>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="border">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="hspace">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="vspace">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="input.attlist" combine="interleave">
+  <ref name="align.attrib"/>
+</define>
+
+<define name="legend.attlist" combine="interleave">
+  <optional>
+    <attribute name="align">
+      <choice>
+	<value>top</value>
+	<value>bottom</value>
+	<value>left</value>
+	<value>right</value>
+      </choice>
+    </attribute>
+  </optional>
+</define>
+
+<define name="li.attlist" combine="interleave">
+  <optional>
+    <attribute name="type"/>
+  </optional>
+  <optional>
+    <attribute name="value"/>
+  </optional>
+</define>
+
+<define name="object.attlist" combine="interleave">
+  <optional>
+    <attribute name="align">
+      <choice>
+	<value>top</value>
+	<value>middle</value>
+	<value>bottom</value>
+	<value>left</value>
+	<value>right</value>
+      </choice>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="border">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="hspace">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="vspace">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="ol.attlist" combine="interleave">
+  <optional>
+    <attribute name="type"/>
+  </optional>
+  <optional>
+    <attribute name="compact">
+      <value>compact</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="start"/>
+  </optional>
+</define>
+
+<define name="p.attlist" combine="interleave">
+  <ref name="align.attrib"/>
+</define>
+
+<define name="pre.attlist" combine="interleave">
+  <optional>
+    <attribute name="width">
+      <ref name="Length.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="script.attlist" combine="interleave">
+  <optional>
+    <attribute name="language">
+      <ref name="ContentType.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="table.attlist" combine="interleave">
+  <ref name="align.attrib"/>
+  <optional>
+    <attribute name="bgcolor">
+      <ref name="Color.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="tr.attlist" combine="interleave">
+  <optional>
+    <attribute name="bgcolor">
+      <ref name="Color.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Cell.attrib" combine="interleave">
+  <optional>
+    <attribute name="nowrap">
+      <value>nowrap</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="bgcolor">
+      <ref name="Color.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="width">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="height">
+      <ref name="Pixels.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="ul.attlist" combine="interleave">
+  <optional>
+    <attribute name="type"/>
+  </optional>
+  <optional>
+    <attribute name="compact">
+      <value>compact</value>
+    </attribute>
+  </optional>
+</define>
+
+<define name="align.attrib">
+  <optional>
+    <attribute name="align">
+      <choice>
+	<value>left</value>
+	<value>all</value>
+	<value>right</value>
+	<value>none</value>
+      </choice>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Color.datatype">
+  <text/>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <choice>
+    <ref name="font"/>
+    <ref name="basefont"/>
+    <ref name="s"/>
+    <ref name="strike"/>
+    <ref name="u"/>
+  </choice>
+</define>
+
+<define name="Block.class" combine="choice">
+  <choice>
+    <ref name="center"/>
+    <ref name="isindex"/>
+  </choice>
+</define>
+
+<define name="List.class" combine="choice">
+  <choice>
+    <ref name="dir"/>
+    <ref name="menu"/>
+  </choice>
+</define>
+
+<define name="head.content" combine="interleave">
+  <optional>
+    <ref name="isindex"/>
+  </optional>
+</define>
+
+<define name="Block.mix" combine="choice">
+  <choice>
+    <text/>
+    <ref name="Inline.class"/>
+  </choice>
+</define>
+
+<!-- With the legacy module and the frames modules, the html
+     element can contain either body or frameset. -->
+<define name="frameset" combine="choice">
+  <ref name="body"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/link.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/link.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/link.rng
new file mode 100755
index 0000000..3cce22d
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/link.rng
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Link Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="link">
+  <element name="link">
+    <ref name="link.attlist"/>
+  </element>
+</define>
+
+<define name="link.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="charset">
+      <ref name="Charset.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="href">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="hreflang">
+      <ref name="LanguageCode.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="type">
+      <ref name="ContentType.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="rel">
+      <ref name="LinkTypes.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="rev">
+      <ref name="LinkTypes.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="media">
+      <ref name="MediaDesc.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="head.content" combine="interleave">
+  <zeroOrMore>
+    <ref name="link"/>
+  </zeroOrMore>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/list.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/list.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/list.rng
new file mode 100755
index 0000000..eb81c1c
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/list.rng
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- List Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="dl">
+  <element name="dl">
+    <ref name="dl.attlist"/>
+    <oneOrMore>
+      <choice>
+	<ref name="dt"/>
+	<ref name="dd"/>
+      </choice>
+    </oneOrMore>
+  </element>
+</define>
+
+<define name="dl.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="dt">
+  <element name="dt">
+    <ref name="dt.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="dt.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="dd">
+  <element name="dd">
+    <ref name="dd.attlist"/>
+    <ref name="Flow.model"/>
+  </element>
+</define>
+
+<define name="dd.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="ol">
+  <element name="ol">
+    <ref name="ol.attlist"/>
+    <oneOrMore>
+      <ref name="li"/>
+    </oneOrMore>
+  </element>
+</define>
+
+<define name="ol.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="ul">
+  <element name="ul">
+    <ref name="ul.attlist"/>
+    <oneOrMore>
+      <ref name="li"/>
+    </oneOrMore>
+  </element>
+</define>
+
+<define name="ul.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="li">
+  <element name="li">
+    <ref name="li.attlist"/>
+    <ref name="Flow.model"/>
+  </element>
+</define>  
+
+<define name="li.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="List.class">
+  <choice>
+    <ref name="ul"/>
+    <ref name="ol"/>
+    <ref name="dl"/>
+  </choice>
+</define>
+
+<define name="Block.class" combine="choice">
+  <ref name="List.class"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/meta.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/meta.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/meta.rng
new file mode 100755
index 0000000..fbccc94
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/meta.rng
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Meta Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="meta">
+  <element name="meta">
+    <ref name="meta.attlist"/>
+  </element>
+</define>
+
+<define name="meta.attlist">
+  <ref name="I18n.attrib"/>
+  <optional>
+    <attribute name="http-equiv">
+      <ref name="NMTOKEN.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="name">
+      <ref name="NMTOKEN.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="content"/>
+  </optional>
+  <optional>
+    <attribute name="scheme"/>
+  </optional>
+</define>
+
+<define name="head.content" combine="interleave">
+  <zeroOrMore>
+    <ref name="meta"/>
+  </zeroOrMore>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/nameident.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/nameident.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/nameident.rng
new file mode 100755
index 0000000..dcd8633
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/nameident.rng
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Name Identification Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="a.attlist" combine="interleave">
+  <ref name="name.attlist"/>
+</define>
+
+<define name="applet.attlist" combine="interleave">
+  <ref name="name.attlist"/>
+</define>
+
+<define name="form.attlist" combine="interleave">
+  <ref name="name.attlist"/>
+</define>
+
+<define name="frame.attrib" combine="interleave">
+  <ref name="name.attlist"/>
+</define>
+
+<define name="iframe.attlist" combine="interleave">
+  <ref name="name.attlist"/>
+</define>
+
+<define name="img.attlist" combine="interleave">
+  <ref name="name.attlist"/>
+</define>
+
+<define name="map.attlist" combine="interleave">
+  <ref name="name.attlist"/>
+</define>
+
+<define name="name.attlist">
+  <optional>
+    <attribute name="name"/>
+  </optional>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/object.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/object.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/object.rng
new file mode 100755
index 0000000..3f5ef9a
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/object.rng
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Object Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="object">
+  <element name="object">
+    <ref name="object.attlist"/>
+    <!-- No restrictions on mixed content in TREX. -->
+    <zeroOrMore>
+      <ref name="param"/>
+    </zeroOrMore>
+    <ref name="Flow.model"/>
+  </element>
+</define>
+
+<define name="object.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="declare">
+      <value>declare</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="classid">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="codebase">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="data">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="type">
+      <ref name="ContentType.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="codetype">
+      <ref name="ContentType.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="archive">
+      <ref name="URIs.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="standby">
+      <ref name="Text.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="height">
+      <ref name="Length.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="width">
+      <ref name="Length.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="name"/>
+  </optional>
+  <optional>
+    <attribute name="tabindex">
+      <ref name="Number.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <ref name="object"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/param.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/param.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/param.rng
new file mode 100755
index 0000000..20a7a82
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/param.rng
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Param Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="param">
+  <element name="param">
+    <ref name="param.attlist"/>
+  </element>
+</define>
+
+<define name="param.attlist">
+  <ref name="id.attrib"/>
+  <attribute name="name"/>
+  <optional>
+    <attribute name="value"/>
+  </optional>
+  <optional>
+    <attribute name="valuetype">
+      <choice>
+	<value>data</value>
+	<value>ref</value>
+	<value>object</value>
+      </choice>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="type">
+      <ref name="ContentType.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/pres.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/pres.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/pres.rng
new file mode 100755
index 0000000..8526d16
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/pres.rng
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="hr">
+  <element name="hr">
+    <ref name="hr.attlist"/>
+  </element>
+</define>
+
+<define name="hr.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="Block.class" combine="choice">
+  <ref name="hr"/>
+</define>
+
+<define name="b">
+  <element name="b">
+    <ref name="b.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="b.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="big">
+  <element name="big">
+    <ref name="big.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="big.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="i">
+  <element name="i">
+    <ref name="i.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="i.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="small">
+  <element name="small">
+    <ref name="small.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="small.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="sub">
+  <element name="sub">
+    <ref name="sub.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="sub.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="sup">
+  <element name="sup">
+    <ref name="sup.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="sup.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="tt">
+  <element name="tt">
+    <ref name="tt.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="tt.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <choice>
+    <ref name="b"/>
+    <ref name="big"/>
+    <ref name="i"/>
+    <ref name="small"/>
+    <ref name="sub"/>
+    <ref name="sup"/>
+    <ref name="tt"/>
+  </choice>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/ruby.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/ruby.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/ruby.rng
new file mode 100755
index 0000000..cc154a5
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/ruby.rng
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="ruby">
+  <element name="ruby">
+    <ref name="ruby.attlist"/>
+    <choice>
+      <group>
+        <ref name="rb"/>
+        <choice>
+          <ref name="rt"/>
+          <group>
+            <ref name="rp"/>
+            <ref name="rt"/>
+            <ref name="rp"/>
+          </group>
+        </choice>
+      </group>
+      <group>
+        <ref name="rbc"/>
+        <ref name="rtc"/>
+        <optional>
+          <ref name="rtc"/>
+        </optional>
+      </group>
+    </choice>
+  </element>
+</define>
+
+<define name="ruby.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="rbc">
+  <element name="rbc">
+    <ref name="rbc.attlist"/>
+    <oneOrMore>
+      <ref name="rb"/>
+    </oneOrMore>
+  </element>
+</define>
+
+<define name="rbc.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="rtc">
+  <element name="rtc">
+    <ref name="rtc.attlist"/>
+    <oneOrMore>
+      <ref name="rt"/>
+    </oneOrMore>
+  </element>
+</define>
+
+<define name="rtc.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="rb">
+  <element name="rb">
+    <ref name="rb.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="rb.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="rt">
+  <element name="rt">
+    <ref name="rt.attlist"/>
+    <ref name="Inline.model"/>
+  </element>
+</define>
+
+<define name="rt.attlist">
+  <ref name="Common.attrib"/>
+  <optional>
+    <attribute name="rt">
+      <ref name="Number.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+<define name="rp">
+  <element name="rp">
+    <ref name="rp.attlist"/>
+    <text/>
+  </element>
+</define>
+
+<define name="rp.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <ref name="ruby"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/script.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/script.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/script.rng
new file mode 100755
index 0000000..16c200a
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/script.rng
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Script Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="script">
+  <element name="script">
+    <ref name="script.attlist"/>
+    <text/>
+  </element>
+</define>
+
+<define name="script.attlist">
+  <optional>
+    <attribute name="charset">
+      <ref name="Charset.datatype"/>
+    </attribute>
+  </optional>
+  <attribute name="type">
+    <ref name="ContentType.datatype"/>
+  </attribute>
+  <optional>
+    <attribute name="src">
+      <ref name="URI.datatype"/>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="defer">
+      <value>defer</value>
+    </attribute>
+  </optional>
+  <optional>
+    <attribute name="xml:space">
+      <value>preserve</value>
+    </attribute>
+  </optional>
+</define>
+
+<define name="noscript">
+  <element name="noscript">
+    <ref name="noscript.attlist"/>
+    <ref name="Block.model"/>
+  </element>
+</define>
+
+<define name="noscript.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="head.content" combine="interleave">
+  <zeroOrMore>
+    <ref name="script"/>
+  </zeroOrMore>
+</define>
+
+<define name="Script.class">
+  <choice>
+    <ref name="noscript"/>
+    <ref name="script"/>
+  </choice>
+</define>
+
+<define name="Inline.class" combine="choice">
+  <ref name="Script.class"/>
+</define>
+
+<define name="Block.class" combine="choice">
+  <ref name="Script.class"/>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/ssismap.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/ssismap.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/ssismap.rng
new file mode 100755
index 0000000..3aa9fce
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/ssismap.rng
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Server-side Image Map Module -->
+<!-- Depends on image module. -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<define name="img.attlist" combine="interleave">
+  <optional>
+    <attribute name="ismap">
+      <value>ismap</value>
+    </attribute>
+  </optional>
+</define>
+
+</grammar>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/struct.rng
----------------------------------------------------------------------
diff --git a/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/struct.rng b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/struct.rng
new file mode 100755
index 0000000..98ff167
--- /dev/null
+++ b/platform/content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/mozile/lib/xhtml/modules/struct.rng
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Structure Module -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+<start>
+  <ref name="html"/>
+</start>
+
+<define name="title">
+  <element name="title">
+    <ref name="title.attlist"/>
+    <text/>
+  </element>
+</define>
+
+<define name="title.attlist">
+  <ref name="I18n.attrib"/>
+</define>
+
+<define name="head">
+  <element name="head">
+    <ref name="head.attlist"/>
+    <ref name="head.content"/>
+  </element>
+</define>
+
+<define name="head.attlist">
+  <ref name="I18n.attrib"/>
+  <ref name="profile.attlist"/>
+</define>
+
+<define name="head.content">
+  <ref name="title"/>
+</define>
+
+<define name="profile.attlist">
+  <optional>
+    <attribute name="profile">
+      <ref name="URI.datatype"/>
+    </attribute>     
+  </optional>
+</define>
+
+<define name="body">
+  <element name="body">
+    <ref name="body.attlist"/>
+    <ref name="Block.model"/>
+  </element>
+</define>
+
+<define name="body.attlist">
+  <ref name="Common.attrib"/>
+</define>
+
+<define name="html">
+  <element name="html">
+    <ref name="html.attlist"/>
+    <ref name="head"/>
+    <ref name="body"/>
+  </element>
+</define>
+
+<define name="html.attlist">
+  <ref name="XHTML.version.attrib"/>
+  <ref name="I18n.attrib"/>
+</define>
+
+<define name="XHTML.version.attrib">
+  <optional>
+    <attribute name="version">
+      <ref name="FPI.datatype"/>
+    </attribute>
+  </optional>
+</define>
+
+</grammar>
\ No newline at end of file