You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2021/02/18 11:02:03 UTC

[myfaces-homepage] branch master updated: Provide the XML Schemata and DTDs for Tobago

This is an automated email from the ASF dual-hosted git repository.

lofwyr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-homepage.git


The following commit(s) were added to refs/heads/master by this push:
     new e3b16f0  Provide the XML Schemata and DTDs for Tobago
     new 5ebd923  Merge pull request #21 from lofwyr14/master
e3b16f0 is described below

commit e3b16f05b961d73873df03e490b18177c5f71aea
Author: Udo Schnurpfeil <ud...@irian.eu>
AuthorDate: Thu Feb 18 11:48:23 2021 +0100

    Provide the XML Schemata and DTDs for Tobago
---
 tobago/tobago-config-1.0.29.dtd |  50 ++++++
 tobago/tobago-config-1.0.30.dtd |  59 +++++++
 tobago/tobago-config-1.0.34.dtd |  63 +++++++
 tobago/tobago-config-1.5.dtd    |  57 ++++++
 tobago/tobago-config-1.5.xsd    | 152 ++++++++++++++++
 tobago/tobago-config-1.6.xsd    | 168 ++++++++++++++++++
 tobago/tobago-config-2.0.6.xsd  | 207 ++++++++++++++++++++++
 tobago/tobago-config-2.0.xsd    | 193 ++++++++++++++++++++
 tobago/tobago-config-2.3.xsd    | 216 +++++++++++++++++++++++
 tobago/tobago-config-3.0.xsd    | 198 +++++++++++++++++++++
 tobago/tobago-config-4.0.xsd    | 209 ++++++++++++++++++++++
 tobago/tobago-config-5.0.xsd    | 381 ++++++++++++++++++++++++++++++++++++++++
 tobago/tobago-config_1_0.dtd    |  62 +++++++
 13 files changed, 2015 insertions(+)

diff --git a/tobago/tobago-config-1.0.29.dtd b/tobago/tobago-config-1.0.29.dtd
new file mode 100755
index 0000000..5034901
--- /dev/null
+++ b/tobago/tobago-config-1.0.29.dtd
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * 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.
+-->
+
+<!--
+  This is the DTD for the tobago configuration files version 1.0.29.
+  You should use the following DOCTYPE in your tobago-config.xml:
+
+  <!DOCTYPE tobago-config PUBLIC
+      "-//The Apache Software Foundation//DTD Tobago Config 1.0.29//EN"
+      "http://myfaces.apache.org/tobago/tobago-config-1.0.29.dtd">
+-->
+
+<!ENTITY % Boolean "(true|false|yes|no)">
+
+<!ELEMENT tobago-config (theme-config, resource-dir*, ajax-enabled?, fix-resource-order?, renderers?)>
+
+<!ELEMENT theme-config (default-theme, supported-theme*)>
+<!ELEMENT default-theme (#PCDATA)>
+<!ELEMENT supported-theme (#PCDATA)>
+
+<!ELEMENT name (#PCDATA)>
+<!ELEMENT display-name (#PCDATA)>
+<!ELEMENT fallback (#PCDATA)>
+
+<!ELEMENT resource-dir (#PCDATA)>
+
+<!ELEMENT ajax-enabled (#PCDATA)>
+
+<!ELEMENT fix-resource-order (#PCDATA)>
+
+<!ELEMENT renderers (renderer)*>
+<!ELEMENT renderer (name|supported-markup)*>
+<!ELEMENT supported-markup (markup)*>
+<!ELEMENT markup (#PCDATA)>
diff --git a/tobago/tobago-config-1.0.30.dtd b/tobago/tobago-config-1.0.30.dtd
new file mode 100755
index 0000000..4f64d8d
--- /dev/null
+++ b/tobago/tobago-config-1.0.30.dtd
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * 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.
+-->
+
+<!--
+  This is the DTD for the tobago configuration files version 1.0.30.
+  You should use the following DOCTYPE in your tobago-config.xml:
+
+  <!DOCTYPE tobago-config PUBLIC
+      "-//The Apache Software Foundation//DTD Tobago Config 1.0.30//EN"
+      "http://myfaces.apache.org/tobago/tobago-config-1.0.30.dtd">
+-->
+
+<!ENTITY % Boolean "(true|false|yes|no)">
+
+<!ELEMENT tobago-config (theme-config, resource-dir*,
+    ajax-enabled?, fix-resource-order?, fix-layout-transparency?, renderers?)>
+
+<!ELEMENT theme-config (default-theme, supported-theme*)>
+<!ELEMENT default-theme (#PCDATA)>
+<!ELEMENT supported-theme (#PCDATA)>
+
+<!ELEMENT name (#PCDATA)>
+<!ELEMENT display-name (#PCDATA)>
+<!ELEMENT fallback (#PCDATA)>
+
+<!ELEMENT resource-dir (#PCDATA)>
+
+<!ELEMENT ajax-enabled (#PCDATA)>
+
+<!ELEMENT fix-resource-order (#PCDATA)>
+
+<!--
+  UIParameter, UIHiddenInput and UIInstruction (from the <?xml ...> declaration when using facelets)
+  should not be part of the layout.
+  You have to enable this behavior, because of backward compatibility.
+  For Tobago 1.5 this will be the normal behavior and this configuration entry will be removed.
+ -->
+<!ELEMENT fix-layout-transparency (#PCDATA)>
+
+<!ELEMENT renderers (renderer)*>
+<!ELEMENT renderer (name|supported-markup)*>
+<!ELEMENT supported-markup (markup)*>
+<!ELEMENT markup (#PCDATA)>
diff --git a/tobago/tobago-config-1.0.34.dtd b/tobago/tobago-config-1.0.34.dtd
new file mode 100755
index 0000000..d132088
--- /dev/null
+++ b/tobago/tobago-config-1.0.34.dtd
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * 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.
+-->
+
+<!--
+  This is the DTD for the tobago configuration files version 1.0.34.
+  You should use the following DOCTYPE in your tobago-config.xml:
+
+  <!DOCTYPE tobago-config PUBLIC
+      "-//The Apache Software Foundation//DTD Tobago Config 1.0.34//EN"
+      "http://myfaces.apache.org/tobago/tobago-config-1.0.34.dtd">
+-->
+
+<!ENTITY % Boolean "(true|false|yes|no)">
+
+<!ELEMENT tobago-config (theme-config, resource-dir*,
+    ajax-enabled?, fix-resource-order?, fix-layout-transparency?,
+    create-session-secret?, check-session-secret?, renderers?)>
+
+<!ELEMENT theme-config (default-theme, supported-theme*)>
+<!ELEMENT default-theme (#PCDATA)>
+<!ELEMENT supported-theme (#PCDATA)>
+
+<!ELEMENT name (#PCDATA)>
+<!ELEMENT display-name (#PCDATA)>
+<!ELEMENT fallback (#PCDATA)>
+
+<!ELEMENT resource-dir (#PCDATA)>
+
+<!ELEMENT ajax-enabled (#PCDATA)>
+
+<!ELEMENT fix-resource-order (#PCDATA)>
+
+<!--
+  UIParameter, UIHiddenInput and UIInstruction (from the <?xml ...> declaration when using facelets)
+  should not be part of the layout.
+  You have to enable this behavior, because of backward compatibility.
+  For Tobago 1.5 this will be the normal behavior and this configuration entry will be removed.
+ -->
+<!ELEMENT fix-layout-transparency (#PCDATA)>
+
+<!ELEMENT create-session-secret (#PCDATA)>
+<!ELEMENT check-session-secret (#PCDATA)>
+
+<!ELEMENT renderers (renderer)*>
+<!ELEMENT renderer (name|supported-markup)*>
+<!ELEMENT supported-markup (markup)*>
+<!ELEMENT markup (#PCDATA)>
diff --git a/tobago/tobago-config-1.5.dtd b/tobago/tobago-config-1.5.dtd
new file mode 100644
index 0000000..745ceb9
--- /dev/null
+++ b/tobago/tobago-config-1.5.dtd
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * 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.
+-->
+
+<!--
+  ************************************************************************************
+  ************************************************************************************
+  Warning: This version is not officially release, please use the schema!
+  http://myfaces.apache.org/tobago/tobago-config-1.5.xsd
+  ************************************************************************************
+  ************************************************************************************
+
+  This is the DTD for the tobago configuration files version 1.5.
+  You should use the following DOCTYPE in your tobago-config.xml:
+
+  <!DOCTYPE tobago-config PUBLIC
+      "-//The Apache Software Foundation//DTD Tobago Config 1.5//EN"
+      "http://myfaces.apache.org/tobago/tobago-config-1.5.dtd">
+-->
+
+<!ENTITY % Boolean "(true|false|yes|no)">
+
+<!ELEMENT tobago-config (theme-config, resource-dir*,
+    create-session-secret?, check-session-secret?, renderers?)>
+
+<!ELEMENT theme-config (default-theme, supported-theme*)>
+<!ELEMENT default-theme (#PCDATA)>
+<!ELEMENT supported-theme (#PCDATA)>
+
+<!ELEMENT name (#PCDATA)>
+<!ELEMENT display-name (#PCDATA)>
+<!ELEMENT fallback (#PCDATA)>
+
+<!ELEMENT resource-dir (#PCDATA)>
+
+<!ELEMENT create-session-secret (#PCDATA)>
+<!ELEMENT check-session-secret (#PCDATA)>
+
+<!ELEMENT renderers (renderer)*>
+<!ELEMENT renderer (name|supported-markup)*>
+<!ELEMENT supported-markup (markup)*>
+<!ELEMENT markup (#PCDATA)>
diff --git a/tobago/tobago-config-1.5.xsd b/tobago/tobago-config-1.5.xsd
new file mode 100755
index 0000000..5fdd904
--- /dev/null
+++ b/tobago/tobago-config-1.5.xsd
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+    targetNamespace="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:tobago="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:xml="http://www.w3.org/XML/1998/namespace"
+    elementFormDefault="qualified"
+    attributeFormDefault="unqualified"
+    version="1.5">
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      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.
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      This is the XML schema for the tobago configuration files version 1.5.
+
+      Use the following definition:
+
+      <tobago-config
+          xmlns="http://myfaces.apache.org/tobago/tobago-config"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://myfaces.apache.org/tobago/tobago-config http://myfaces.apache.org/tobago/tobago-config-1.5.xsd"
+          version="1.5">
+        ...
+      </tobago-config>
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="tobago-config" type="tobago:tobago-config-type"/>
+
+  <xs:complexType name="tobago-config-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" minOccurs="0"/>
+      <xs:element name="ordering" type="tobago:ordering-type" minOccurs="0"/>
+      <xs:element name="theme-config" type="tobago:theme-config-type" minOccurs="0"/>
+      <xs:element name="resource-dir" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="create-session-secret" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="check-session-secret" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="renderers" type="tobago:renderers-type" minOccurs="0"/>
+      <xs:element name="theme-definitions" type="tobago:theme-definitions-type" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="version"
+                   type="tobago:tobago-config-version-type"
+                   use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="tobago-config-version-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="1.5"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ordering-type">
+    <xs:sequence>
+      <xs:element name="after" type="tobago:before-after-type" minOccurs="0"/>
+      <xs:element name="before" type="tobago:before-after-type" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="before-after-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-config-type">
+    <xs:sequence>
+      <xs:element name="default-theme" type="xs:string"/>
+      <xs:element name="supported-theme" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="renderers-type">
+    <xs:sequence>
+      <xs:element name="renderer" type="tobago:renderer-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="renderer-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="supported-markup" type="tobago:supported-markup-type"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="supported-markup-type">
+    <xs:sequence>
+      <xs:element name="markup" type="xs:string" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definitions-type">
+    <xs:sequence>
+      <xs:element name="theme-definition" type="tobago:theme-definition-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definition-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="display-name" type="xs:string" minOccurs="0"/>
+      <xs:element name="deprecated-name" type="xs:string" minOccurs="0"/>
+      <xs:element name="resource-path" type="xs:string"/>
+      <xs:element name="fallback" type="xs:string" minOccurs="0"/>
+      <xs:element name="renderers" type="tobago:renderers-type" minOccurs="0"/>
+      <xs:element name="resources" type="tobago:resources-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="resources-type">
+    <xs:sequence>
+      <xs:element name="script" type="tobago:script-type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="style" type="tobago:style-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="production" type="xs:boolean" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="script-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="style-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="name-type">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+</xs:schema>
diff --git a/tobago/tobago-config-1.6.xsd b/tobago/tobago-config-1.6.xsd
new file mode 100755
index 0000000..fa7f6be
--- /dev/null
+++ b/tobago/tobago-config-1.6.xsd
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+    targetNamespace="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:tobago="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    elementFormDefault="qualified"
+    attributeFormDefault="unqualified"
+    version="1.6">
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      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.
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+
+      ************************************************************************************
+      ************************************************************************************
+      Warning: This version is not officially release, please use version 2.0!
+      http://myfaces.apache.org/tobago/tobago-config-2.0.xsd
+      ************************************************************************************
+      ************************************************************************************
+
+      This is the XML schema for the tobago configuration files version 1.6.
+
+      Use the following definition:
+
+      <tobago-config
+          xmlns="http://myfaces.apache.org/tobago/tobago-config"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://myfaces.apache.org/tobago/tobago-config http://myfaces.apache.org/tobago/tobago-config-1.6.xsd"
+          version="1.6">
+        ...
+      </tobago-config>
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="tobago-config" type="tobago:tobago-config-type"/>
+
+  <xs:complexType name="tobago-config-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" minOccurs="0"/>
+      <xs:element name="ordering" type="tobago:ordering-type" minOccurs="0"/>
+      <xs:element name="theme-config" type="tobago:theme-config-type" minOccurs="0"/>
+      <xs:element name="resource-dir" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="create-session-secret" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="check-session-secret" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="prevent-frame-attacks" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="content-security-policy" type="tobago:content-security-policy-type" minOccurs="0"/>
+      <xs:element name="renderers" type="tobago:renderers-type" minOccurs="0"/>
+      <xs:element name="theme-definitions" type="tobago:theme-definitions-type" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="version"
+                   type="tobago:tobago-config-version-type"
+                   use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="tobago-config-version-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="1.6"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ordering-type">
+    <xs:sequence>
+      <xs:element name="after" type="tobago:before-after-type" minOccurs="0"/>
+      <xs:element name="before" type="tobago:before-after-type" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="before-after-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-config-type">
+    <xs:sequence>
+      <xs:element name="default-theme" type="xs:string"/>
+      <xs:element name="supported-theme" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="content-security-policy-type">
+    <xs:sequence>
+      <xs:element name="directive" type="xs:string" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="renderers-type">
+    <xs:sequence>
+      <xs:element name="renderer" type="tobago:renderer-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="renderer-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="supported-markup" type="tobago:supported-markup-type"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="supported-markup-type">
+    <xs:sequence>
+      <xs:element name="markup" type="xs:string" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definitions-type">
+    <xs:sequence>
+      <xs:element name="theme-definition" type="tobago:theme-definition-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definition-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="display-name" type="xs:string" minOccurs="0"/>
+      <xs:element name="deprecated-name" type="xs:string" minOccurs="0"/>
+      <xs:element name="resource-path" type="xs:string"/>
+      <xs:element name="fallback" type="xs:string" minOccurs="0"/>
+      <xs:element name="versioned" type="xs:boolean" minOccurs="0" default="false"/>
+      <xs:element name="renderers" type="tobago:renderers-type" minOccurs="0"/>
+      <xs:element name="resources" type="tobago:resources-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="resources-type">
+    <xs:sequence>
+      <xs:element name="script" type="tobago:script-type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="style" type="tobago:style-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="production" type="xs:boolean" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="script-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="style-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="name-type">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+</xs:schema>
diff --git a/tobago/tobago-config-2.0.6.xsd b/tobago/tobago-config-2.0.6.xsd
new file mode 100644
index 0000000..db5b2ff
--- /dev/null
+++ b/tobago/tobago-config-2.0.6.xsd
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+    targetNamespace="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:tobago="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    elementFormDefault="qualified"
+    attributeFormDefault="unqualified"
+    version="2.0.6">
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      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.
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      This is the XML schema for the Tobago configuration files version 2.0.6.
+
+      Use the following definition:
+
+      <tobago-config
+          xmlns="http://myfaces.apache.org/tobago/tobago-config"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://myfaces.apache.org/tobago/tobago-config http://myfaces.apache.org/tobago/tobago-config-2.0.6.xsd"
+          version="2.0.6">
+        ...
+      </tobago-config>
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="tobago-config" type="tobago:tobago-config-type"/>
+
+  <xs:complexType name="tobago-config-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" minOccurs="0"/>
+      <xs:element name="ordering" type="tobago:ordering-type" minOccurs="0"/>
+      <xs:element name="theme-config" type="tobago:theme-config-type" minOccurs="0"/>
+      <xs:element name="resource-dir" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="create-session-secret" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="check-session-secret" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="prevent-frame-attacks" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="set-nosniff-header" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="auto-access-key-from-label" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="classic-date-time-picker" type="xs:boolean" minOccurs="0" default="false"/>
+      <xs:element name="content-security-policy" type="tobago:content-security-policy-type" minOccurs="0"/>
+      <xs:element name="sanitizer" type="tobago:sanitizer-type" minOccurs="0"/>
+      <xs:element name="renderers" type="tobago:renderers-type" minOccurs="0"/>
+      <xs:element name="theme-definitions" type="tobago:theme-definitions-type" minOccurs="0"/>
+      <xs:element name="mime-types" type="tobago:mime-types-type" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="version"
+                  type="tobago:tobago-config-version-type"
+                  use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="tobago-config-version-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="2.0.6"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ordering-type">
+    <xs:sequence>
+      <xs:element name="after" type="tobago:before-after-type" minOccurs="0"/>
+      <xs:element name="before" type="tobago:before-after-type" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="before-after-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-config-type">
+    <xs:sequence>
+      <xs:element name="default-theme" type="xs:string"/>
+      <xs:element name="supported-theme" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="content-security-policy-type">
+    <xs:sequence>
+      <xs:element name="directive" type="xs:string" maxOccurs="unbounded" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="mode" type="tobago:scp-mode-type" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="sanitizer-type">
+    <xs:sequence>
+      <xs:element name="sanitizer-class" type="xs:string" maxOccurs="1" minOccurs="1"/>
+      <xs:element name="properties" type="tobago:properties-type" maxOccurs="1" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="scp-mode-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="on"/>
+      <xs:enumeration value="off"/>
+      <xs:enumeration value="report-only"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="renderers-type">
+    <xs:sequence>
+      <xs:element name="renderer" type="tobago:renderer-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="renderer-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="supported-markup" type="tobago:supported-markup-type"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="supported-markup-type">
+    <xs:sequence>
+      <xs:element name="markup" type="xs:string" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definitions-type">
+    <xs:sequence>
+      <xs:element name="theme-definition" type="tobago:theme-definition-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definition-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="display-name" type="xs:string" minOccurs="0"/>
+      <xs:element name="resource-path" type="xs:string"/>
+      <xs:element name="fallback" type="xs:string" minOccurs="0"/>
+      <xs:element name="versioned" type="xs:boolean" minOccurs="0" default="false"/>
+      <xs:element name="renderers" type="tobago:renderers-type" minOccurs="0"/>
+      <xs:element name="resources" type="tobago:resources-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="resources-type">
+    <xs:sequence>
+      <xs:element name="script" type="tobago:script-type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="style" type="tobago:style-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="production" type="xs:boolean" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="script-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="style-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="name-type">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+  <xs:complexType name="properties-type">
+    <xs:sequence>
+      <xs:element name="entry" type="tobago:entry-type" maxOccurs="unbounded" minOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="entry-type">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="key" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="mime-types-type">
+    <xs:sequence>
+      <xs:element name="mime-type" type="tobago:mime-type-type" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="mime-type-type">
+    <xs:sequence>
+      <xs:element name="extension" type="xs:string"/>
+      <xs:element name="type" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+
+</xs:schema>
diff --git a/tobago/tobago-config-2.0.xsd b/tobago/tobago-config-2.0.xsd
new file mode 100644
index 0000000..0f1df48
--- /dev/null
+++ b/tobago/tobago-config-2.0.xsd
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+    targetNamespace="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:tobago="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    elementFormDefault="qualified"
+    attributeFormDefault="unqualified"
+    version="2.0">
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      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.
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      This is the XML schema for the Tobago configuration files version 2.0.
+
+      Use the following definition:
+
+      <tobago-config
+          xmlns="http://myfaces.apache.org/tobago/tobago-config"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://myfaces.apache.org/tobago/tobago-config http://myfaces.apache.org/tobago/tobago-config-2.0.xsd"
+          version="2.0">
+        ...
+      </tobago-config>
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="tobago-config" type="tobago:tobago-config-type"/>
+
+  <xs:complexType name="tobago-config-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" minOccurs="0"/>
+      <xs:element name="ordering" type="tobago:ordering-type" minOccurs="0"/>
+      <xs:element name="theme-config" type="tobago:theme-config-type" minOccurs="0"/>
+      <xs:element name="resource-dir" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="create-session-secret" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="check-session-secret" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="prevent-frame-attacks" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="set-nosniff-header" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="auto-access-key-from-label" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="classic-date-time-picker" type="xs:boolean" minOccurs="0" default="false"/>
+      <xs:element name="content-security-policy" type="tobago:content-security-policy-type" minOccurs="0"/>
+      <xs:element name="sanitizer" type="tobago:sanitizer-type" minOccurs="0"/>
+      <xs:element name="renderers" type="tobago:renderers-type" minOccurs="0"/>
+      <xs:element name="theme-definitions" type="tobago:theme-definitions-type" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="version"
+                  type="tobago:tobago-config-version-type"
+                  use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="tobago-config-version-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="2.0"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ordering-type">
+    <xs:sequence>
+      <xs:element name="after" type="tobago:before-after-type" minOccurs="0"/>
+      <xs:element name="before" type="tobago:before-after-type" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="before-after-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-config-type">
+    <xs:sequence>
+      <xs:element name="default-theme" type="xs:string"/>
+      <xs:element name="supported-theme" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="content-security-policy-type">
+    <xs:sequence>
+      <xs:element name="directive" type="xs:string" maxOccurs="unbounded" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="mode" type="tobago:scp-mode-type" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="sanitizer-type">
+    <xs:sequence>
+      <xs:element name="sanitizer-class" type="xs:string" maxOccurs="1" minOccurs="1"/>
+      <xs:element name="properties" type="tobago:properties-type" maxOccurs="1" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="scp-mode-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="on"/>
+      <xs:enumeration value="off"/>
+      <xs:enumeration value="report-only"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="renderers-type">
+    <xs:sequence>
+      <xs:element name="renderer" type="tobago:renderer-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="renderer-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="supported-markup" type="tobago:supported-markup-type"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="supported-markup-type">
+    <xs:sequence>
+      <xs:element name="markup" type="xs:string" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definitions-type">
+    <xs:sequence>
+      <xs:element name="theme-definition" type="tobago:theme-definition-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definition-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="display-name" type="xs:string" minOccurs="0"/>
+      <xs:element name="resource-path" type="xs:string"/>
+      <xs:element name="fallback" type="xs:string" minOccurs="0"/>
+      <xs:element name="versioned" type="xs:boolean" minOccurs="0" default="false"/>
+      <xs:element name="renderers" type="tobago:renderers-type" minOccurs="0"/>
+      <xs:element name="resources" type="tobago:resources-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="resources-type">
+    <xs:sequence>
+      <xs:element name="script" type="tobago:script-type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="style" type="tobago:style-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="production" type="xs:boolean" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="script-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="style-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="name-type">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+  <xs:complexType name="properties-type">
+    <xs:sequence>
+      <xs:element name="entry" type="tobago:entry-type" maxOccurs="unbounded" minOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="entry-type">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="key" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+</xs:schema>
diff --git a/tobago/tobago-config-2.3.xsd b/tobago/tobago-config-2.3.xsd
new file mode 100644
index 0000000..0c00ff2
--- /dev/null
+++ b/tobago/tobago-config-2.3.xsd
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+    targetNamespace="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:tobago="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    elementFormDefault="qualified"
+    version="2.3">
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      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.
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      This is the XML schema for the Tobago configuration files version 2.3.
+
+      Use the following definition:
+
+      <tobago-config
+          xmlns="http://myfaces.apache.org/tobago/tobago-config"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://myfaces.apache.org/tobago/tobago-config http://myfaces.apache.org/tobago/tobago-config-2.3.xsd"
+          version="2.3">
+        ...
+      </tobago-config>
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="tobago-config" type="tobago:tobago-config-type"/>
+
+  <xs:complexType name="tobago-config-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" minOccurs="0"/>
+      <xs:element name="ordering" type="tobago:ordering-type" minOccurs="0"/>
+      <xs:element name="theme-config" type="tobago:theme-config-type" minOccurs="0"/>
+      <xs:element name="resource-dir" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="create-session-secret" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="check-session-secret" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="prevent-frame-attacks" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="set-nosniff-header" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="auto-access-key-from-label" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="classic-date-time-picker" type="xs:boolean" minOccurs="0" default="false"/>
+      <xs:element name="content-security-policy" type="tobago:content-security-policy-type" minOccurs="0"/>
+      <xs:element name="sanitizer" type="tobago:sanitizer-type" minOccurs="0"/>
+      <xs:element name="renderers" type="tobago:renderers-type" minOccurs="0"/>
+      <xs:element name="theme-definitions" type="tobago:theme-definitions-type" minOccurs="0"/>
+      <xs:element name="mime-types" type="tobago:mime-types-type" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="version"
+                  type="tobago:tobago-config-version-type"
+                  use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="tobago-config-version-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="2.3"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ordering-type">
+    <xs:sequence>
+      <xs:element name="after" type="tobago:before-after-type" minOccurs="0"/>
+      <xs:element name="before" type="tobago:before-after-type" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="before-after-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-config-type">
+    <xs:sequence>
+      <xs:element name="default-theme" type="xs:string"/>
+      <xs:element name="supported-theme" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="content-security-policy-type">
+    <xs:sequence>
+      <xs:element name="directive" type="xs:string" maxOccurs="unbounded" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="mode" type="tobago:scp-mode-type" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="sanitizer-type">
+    <xs:sequence>
+      <xs:element name="sanitizer-class" type="xs:string" maxOccurs="1" minOccurs="1"/>
+      <xs:element name="properties" type="tobago:properties-type" maxOccurs="1" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="scp-mode-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="on"/>
+      <xs:enumeration value="off"/>
+      <xs:enumeration value="report-only"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="renderers-type">
+    <xs:sequence>
+      <xs:element name="renderer" type="tobago:renderer-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="renderer-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="supported-markup" type="tobago:supported-markup-type"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="supported-markup-type">
+    <xs:sequence>
+      <xs:element name="markup" type="xs:string" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definitions-type">
+    <xs:sequence>
+      <xs:element name="theme-definition" type="tobago:theme-definition-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definition-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="display-name" type="xs:string" minOccurs="0"/>
+      <xs:element name="resource-path" type="xs:string"/>
+      <xs:element name="fallback" type="xs:string" minOccurs="0"/>
+      <xs:element name="versioned" type="xs:boolean" minOccurs="0" default="false"/>
+      <xs:element name="renderers" type="tobago:renderers-type" minOccurs="0"/>
+      <xs:element name="resources" type="tobago:resources-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="resources-type">
+    <xs:sequence>
+      <xs:element name="excludes" type="tobago:excludes-type" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="script" type="tobago:script-type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="style" type="tobago:style-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="production" type="xs:boolean" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="excludes-type">
+    <xs:sequence>
+      <xs:element name="script" type="tobago:script-type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="style" type="tobago:style-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="script-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+    <xs:attribute name="priority" type="xs:unsignedShort"/>
+  </xs:complexType>
+
+  <xs:complexType name="style-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+    <xs:attribute name="priority" type="xs:unsignedShort"/>
+  </xs:complexType>
+
+  <xs:simpleType name="name-type">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+  <xs:complexType name="properties-type">
+    <xs:sequence>
+      <xs:element name="entry" type="tobago:entry-type" maxOccurs="unbounded" minOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="entry-type">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="key" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="mime-types-type">
+    <xs:sequence>
+      <xs:element name="mime-type" type="tobago:mime-type-type" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="mime-type-type">
+    <xs:sequence>
+      <xs:element name="extension" type="xs:string"/>
+      <xs:element name="type" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+
+</xs:schema>
diff --git a/tobago/tobago-config-3.0.xsd b/tobago/tobago-config-3.0.xsd
new file mode 100644
index 0000000..1327213
--- /dev/null
+++ b/tobago/tobago-config-3.0.xsd
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+    targetNamespace="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:tobago="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    elementFormDefault="qualified"
+    attributeFormDefault="unqualified"
+    version="3.0">
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      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.
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      This is the XML schema for the Tobago configuration files version 3.0.
+
+      Use the following definition:
+
+      <tobago-config
+          xmlns="http://myfaces.apache.org/tobago/tobago-config"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://myfaces.apache.org/tobago/tobago-config http://myfaces.apache.org/tobago/tobago-config-3.0.xsd"
+          version="3.0">
+        ...
+      </tobago-config>
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="tobago-config" type="tobago:tobago-config-type"/>
+
+  <xs:complexType name="tobago-config-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" minOccurs="0"/>
+      <xs:element name="ordering" type="tobago:ordering-type" minOccurs="0"/>
+      <xs:element name="theme-config" type="tobago:theme-config-type" minOccurs="0"/>
+      <xs:element name="create-session-secret" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="check-session-secret" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="prevent-frame-attacks" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="set-nosniff-header" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="classic-date-time-picker" type="xs:boolean" minOccurs="0" default="false"/>
+      <xs:element name="content-security-policy" type="tobago:content-security-policy-type" minOccurs="0"/>
+      <xs:element name="sanitizer" type="tobago:sanitizer-type" minOccurs="0"/>
+      <xs:element name="renderers" type="tobago:renderers-type" minOccurs="0"/>
+      <xs:element name="theme-definitions" type="tobago:theme-definitions-type" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="version"
+                  type="tobago:tobago-config-version-type"
+                  use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="tobago-config-version-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="3.0"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ordering-type">
+    <xs:sequence>
+      <xs:element name="after" type="tobago:before-after-type" minOccurs="0"/>
+      <xs:element name="before" type="tobago:before-after-type" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="before-after-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-config-type">
+    <xs:sequence>
+      <xs:element name="default-theme" type="xs:string"/>
+      <xs:element name="supported-theme" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="content-security-policy-type">
+    <xs:sequence>
+      <xs:element name="directive" type="xs:string" maxOccurs="unbounded" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="mode" type="tobago:scp-mode-type" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="sanitizer-type">
+    <xs:sequence>
+      <xs:element name="sanitizer-class" type="xs:string" maxOccurs="1" minOccurs="1"/>
+      <xs:element name="properties" type="tobago:properties-type" maxOccurs="1" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="scp-mode-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="on"/>
+      <xs:enumeration value="off"/>
+      <xs:enumeration value="report-only"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="renderers-type">
+    <xs:sequence>
+      <xs:element name="renderer" type="tobago:renderer-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="renderer-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="supported-markup" type="tobago:supported-markup-type"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="supported-markup-type">
+    <xs:sequence>
+      <xs:element name="markup" type="xs:string" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definitions-type">
+    <xs:sequence>
+      <xs:element name="theme-definition" type="tobago:theme-definition-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definition-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="display-name" type="xs:string" minOccurs="0"/>
+      <xs:element name="fallback" type="xs:string" minOccurs="0"/>
+      <xs:element name="versioned" type="xs:boolean" minOccurs="0" default="false"/>
+      <xs:element name="renderers" type="tobago:renderers-type" minOccurs="0"/>
+      <xs:element name="resources" type="tobago:resources-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="resources-type">
+    <xs:sequence>
+      <xs:element name="excludes" type="tobago:excludes-type" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="script" type="tobago:script-type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="style" type="tobago:style-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="production" type="xs:boolean" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="excludes-type">
+    <xs:sequence>
+      <xs:element name="script" type="tobago:script-type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="style" type="tobago:style-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="script-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="style-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="name-type">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+  <xs:complexType name="properties-type">
+    <xs:sequence>
+      <xs:element name="entry" type="tobago:entry-type" maxOccurs="unbounded" minOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="entry-type">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="key" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+</xs:schema>
diff --git a/tobago/tobago-config-4.0.xsd b/tobago/tobago-config-4.0.xsd
new file mode 100644
index 0000000..95e6b48
--- /dev/null
+++ b/tobago/tobago-config-4.0.xsd
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+    targetNamespace="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:tobago="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    elementFormDefault="qualified"
+    attributeFormDefault="unqualified"
+    version="4.0">
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      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.
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      This is the XML schema for the Tobago configuration files version 4.0.
+
+      Use the following definition:
+
+      <tobago-config
+          xmlns="http://myfaces.apache.org/tobago/tobago-config"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://myfaces.apache.org/tobago/tobago-config http://myfaces.apache.org/tobago/tobago-config-4.0.xsd"
+          version="4.0">
+        ...
+      </tobago-config>
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="tobago-config" type="tobago:tobago-config-type"/>
+
+  <xs:complexType name="tobago-config-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" minOccurs="0"/>
+      <xs:element name="ordering" type="tobago:ordering-type" minOccurs="0"/>
+      <xs:element name="theme-config" type="tobago:theme-config-type" minOccurs="0"/>
+      <xs:element name="create-session-secret" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="check-session-secret" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="prevent-frame-attacks" type="xs:boolean" minOccurs="0" default="true">
+        <xs:annotation>
+          <xs:documentation>
+            Sets the HTTP header "X-Frame-Options" to "DENY".
+            This setting is deprecated but needed for IE11. The current way to configure this is using
+            the Content Security Policy directive 'frame-ancestors'.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="set-nosniff-header" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="classic-date-time-picker" type="xs:boolean" minOccurs="0" default="false">
+        <xs:annotation>
+          <xs:documentation>
+            No longer supported.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="content-security-policy" type="tobago:content-security-policy-type" minOccurs="0"/>
+      <xs:element name="sanitizer" type="tobago:sanitizer-type" minOccurs="0"/>
+      <xs:element name="decode-line-feed" type="xs:boolean" minOccurs="0" default="true"/>
+      <xs:element name="security-annotation" type="tobago:security-annotation-type" minOccurs="0" default="disable"/>
+      <xs:element name="theme-definitions" type="tobago:theme-definitions-type" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="version"
+                  type="tobago:tobago-config-version-type"
+                  use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="tobago-config-version-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="4.0"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ordering-type">
+    <xs:sequence>
+      <xs:element name="after" type="tobago:before-after-type" minOccurs="0"/>
+      <xs:element name="before" type="tobago:before-after-type" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="before-after-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-config-type">
+    <xs:sequence>
+      <xs:element name="default-theme" type="xs:string"/>
+      <xs:element name="supported-theme" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="content-security-policy-type">
+    <xs:sequence>
+      <xs:element name="directive" type="tobago:directive-type" maxOccurs="unbounded" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="mode" type="tobago:scp-mode-type" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="directive-type">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="name" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="sanitizer-type">
+    <xs:sequence>
+      <xs:element name="sanitizer-class" type="xs:string" maxOccurs="1" minOccurs="1"/>
+      <xs:element name="properties" type="tobago:properties-type" maxOccurs="1" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="scp-mode-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="on"/>
+      <xs:enumeration value="off"/>
+      <xs:enumeration value="report-only"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="theme-definitions-type">
+    <xs:sequence>
+      <xs:element name="theme-definition" type="tobago:theme-definition-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definition-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="display-name" type="xs:string" minOccurs="0"/>
+      <xs:element name="fallback" type="xs:string" minOccurs="0"/>
+      <xs:element name="versioned" type="xs:boolean" minOccurs="0" default="false"/>
+      <xs:element name="resources" type="tobago:resources-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="resources-type">
+    <xs:sequence>
+      <xs:element name="excludes" type="tobago:excludes-type" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="script" type="tobago:script-type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="style" type="tobago:style-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="production" type="xs:boolean" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="excludes-type">
+    <xs:sequence>
+      <xs:element name="script" type="tobago:script-type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="style" type="tobago:style-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="script-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="style-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="name-type">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+  <xs:complexType name="properties-type">
+    <xs:sequence>
+      <xs:element name="entry" type="tobago:entry-type" maxOccurs="unbounded" minOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="entry-type">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="key" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:simpleType name="security-annotation-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="hide"/>
+      <xs:enumeration value="disable"/>
+      <xs:enumeration value="ignore"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+</xs:schema>
diff --git a/tobago/tobago-config-5.0.xsd b/tobago/tobago-config-5.0.xsd
new file mode 100644
index 0000000..4858b04
--- /dev/null
+++ b/tobago/tobago-config-5.0.xsd
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+    targetNamespace="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:tobago="http://myfaces.apache.org/tobago/tobago-config"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    elementFormDefault="qualified"
+    version="5.0">
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+      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.
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:annotation>
+    <xs:documentation>
+      <![CDATA[
+
+      ************************************************************************************
+      ************************************************************************************
+      WARNING
+      THIS IS A PRE-RELEASE VERSION OF THIS FILE, PLEASE CHECK IF THERE IS AN UPDATE ON
+      http://myfaces.apache.org/tobago/tobago-config-5.0.xsd
+      ************************************************************************************
+      ************************************************************************************
+
+      This is the XML schema for the Tobago configuration files version 5.0.
+
+      Use the following definition:
+
+      <tobago-config
+          xmlns="http://myfaces.apache.org/tobago/tobago-config"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://myfaces.apache.org/tobago/tobago-config http://myfaces.apache.org/tobago/tobago-config-5.0.xsd"
+          version="5.0">
+        ...
+      </tobago-config>
+      ]]>
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="tobago-config" type="tobago:tobago-config-type"/>
+
+  <xs:complexType name="tobago-config-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            Name of this instance of the configuration to be referenced in other tobago-config.xml files.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ordering" type="tobago:ordering-type" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            Can be used to order this instance of the configuration against other tobago-config.xml files.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="theme-config" type="tobago:theme-config-type" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            Configure the themes to be used.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="create-session-secret" type="xs:boolean" minOccurs="0" default="true">
+
+      </xs:element>
+      <xs:element name="check-session-secret" type="xs:boolean" minOccurs="0" default="true">
+
+      </xs:element>
+      <xs:element name="prevent-frame-attacks" type="xs:boolean" minOccurs="0" default="true">
+        <xs:annotation>
+          <xs:documentation>
+            Sets the HTTP header "X-Frame-Options" to "DENY".
+            This setting is deprecated but needed for IE11. The current way to configure this is using
+            the Content Security Policy directive 'frame-ancestors'.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="set-nosniff-header" type="xs:boolean" minOccurs="0" default="true">
+        <xs:annotation>
+          <xs:documentation>
+            Sets the HTTP header "X-Content-Type-Options" to "nosniff".
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="classic-date-time-picker" type="xs:boolean" minOccurs="0" default="false">
+        <xs:annotation>
+          <xs:documentation>
+            Warning: No longer supported.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="content-security-policy" type="tobago:content-security-policy-type" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            Define rule for CSP.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="sanitizer" type="tobago:sanitizer-type" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[
+            Define a Java class which implements org.apache.myfaces.tobago.sanitizer.Sanitizer
+            to protect against HTML content of <tc:out escape="true"/> and
+            <tc:textarea/>.
+
+            This is the default:
+            <sanitizer>
+              <sanitizer-class>org.apache.myfaces.tobago.sanitizer.JsoupSanitizer</sanitizer-class>
+              <properties>
+                <entry key="whitelist">relaxed</entry>
+              </properties>
+            </sanitizer>
+            ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="decode-line-feed" type="xs:boolean" minOccurs="0" default="true">
+        <xs:annotation>
+          <xs:documentation>
+            Use LF instead of CR+LF in textarea while decoding.
+            HTTP transports usually a line break with CR+LF
+            (see https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4).
+            When this property is set to true (by default), the Java bean will get the string only with LF ('\n').
+
+            When this property is set to false, there might be a conflict with the length validator,
+            because you have 2 character for each line break.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="security-annotation" type="tobago:security-annotation-type" minOccurs="0" default="disable">
+        <xs:annotation>
+          <xs:documentation>
+            Defines the behavior of actions in buttons and links, if the MethodExpression
+            has a security annotation.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="theme-definitions" type="tobago:theme-definitions-type" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            Configuration of a new theme which may come with this JAR file.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+    <xs:attribute name="version"
+                  type="tobago:tobago-config-version-type"
+                  use="required"/>
+  </xs:complexType>
+
+  <xs:simpleType name="security-annotation-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="hide"/>
+      <xs:enumeration value="disable"/>
+      <xs:enumeration value="ignore"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tobago-config-version-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="5.0"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ordering-type">
+    <xs:sequence>
+      <xs:element name="after" type="tobago:before-after-type" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            This configuration instance needs to be applied after the referenced instance.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="before" type="tobago:before-after-type" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            This configuration instance needs to be applied before the referenced instance.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="before-after-type">
+    <xs:sequence>
+      <xs:element name="name" type="tobago:name-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-config-type">
+    <xs:sequence>
+      <xs:element name="default-theme" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            The default theme, which is used when no theme is selected programmatically.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="supported-theme" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>
+            Other supported theme for this application.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="content-security-policy-type">
+    <xs:sequence>
+      <xs:element name="directive" type="tobago:directive-type" maxOccurs="unbounded" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            CSP directive to be added to the HTTP header.
+            It is possible to define more than one directive with the same name, to allow
+            more than one value.
+            The mode defines, if the SCP headers should be written, not written, or only
+            reporting headers should be written.
+
+            For more information about the directives see
+            https://www.w3.org/TR/CSP/
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+    <xs:attribute name="mode" type="tobago:csp-mode-type" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="directive-type">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="name" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation>
+              Name of the CSP directive e. g. script-src, style-src, frame-ancestors, child-src, ...
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="sanitizer-type">
+    <xs:sequence>
+      <xs:element name="sanitizer-class" type="xs:string"/>
+      <xs:element name="properties" type="tobago:properties-type" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="properties-type">
+    <xs:sequence>
+      <xs:element name="entry" type="tobago:entry-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="entry-type">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="key" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:simpleType name="csp-mode-type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="on"/>
+      <xs:enumeration value="off"/>
+      <xs:enumeration value="report-only"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="theme-definitions-type">
+    <xs:sequence>
+      <xs:element name="theme-definition" type="tobago:theme-definition-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="theme-definition-type">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            The technical name of the theme, which e. g. is used in paths.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="display-name" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            The display name of the theme, which may be used in a theme selector.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="fallback" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            The parent of the theme.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="version" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            The version of the theme. The version string will be encoded into the
+            resource path, to avoid caching problems. The version can be accessed by
+            #{tobagoContext.theme.version}.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="resources" type="tobago:resources-type" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>
+            A list of resources this theme is using.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="resources-type">
+    <xs:annotation>
+      <xs:documentation>
+        Resources can be added, or removed (if they are coming from its fallback theme).
+        To removed the resources, put it inside the "excludes" with the same name it was included
+        in the parent.
+
+        There a two different sets of resources, one for production and one for development.
+        Use the production flag to set this mode explicitly.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="includes" type="tobago:includes-excludes-type" minOccurs="0"/>
+      <xs:element name="excludes" type="tobago:includes-excludes-type" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="production" type="xs:boolean" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="includes-excludes-type">
+    <xs:sequence>
+      <xs:element name="script" type="tobago:script-type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="style" type="tobago:style-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="script-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+    <xs:attribute name="type" type="xs:string"/>
+    <xs:attribute name="priority" type="xs:unsignedShort"/>
+  </xs:complexType>
+
+  <xs:complexType name="style-type">
+    <xs:attribute name="name" type="xs:string" use="required"/>
+    <xs:attribute name="priority" type="xs:unsignedShort"/>
+  </xs:complexType>
+
+  <xs:simpleType name="name-type">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+</xs:schema>
diff --git a/tobago/tobago-config_1_0.dtd b/tobago/tobago-config_1_0.dtd
new file mode 100755
index 0000000..4d41568
--- /dev/null
+++ b/tobago/tobago-config_1_0.dtd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * 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.
+-->
+
+<!--
+  This is the DTD for the tobago configuration files version 1.0.
+  You should use the following DOCTYPE in your tobago-config.xml:
+
+  <!DOCTYPE tobago-config PUBLIC
+      "-//The Apache Software Foundation//DTD Tobago Config 1.0//EN"
+      "http://myfaces.apache.org/tobago/tobago-config_1_0.dtd">
+-->
+
+<!ENTITY % Boolean "(true|false|yes|no)">
+
+<!ELEMENT tobago-config (theme-config, resource-dir*, load-theme-resources-from-classpath?, mapping-rule*, ajax-enabled?, renderers?)>
+
+<!ELEMENT theme-config (default-theme, supported-theme*)>
+<!ELEMENT default-theme (#PCDATA)>
+<!ELEMENT supported-theme (#PCDATA)>
+
+<!ELEMENT name (#PCDATA)>
+<!ELEMENT display-name (#PCDATA)>
+<!ELEMENT fallback (#PCDATA)>
+
+<!ELEMENT resource-dir (#PCDATA)>
+
+<!-- deprecated -->
+<!ELEMENT load-theme-resources-from-classpath (#PCDATA)>
+
+<!-- deprecated -->
+<!ELEMENT mapping-rule (request-uri, forward-uri, attribute*)>
+<!-- deprecated -->
+<!ELEMENT request-uri (#PCDATA)>
+<!-- deprecated -->
+<!ELEMENT forward-uri (#PCDATA)>
+
+<!ELEMENT attribute (key, value)>
+<!ELEMENT key (#PCDATA)>
+<!ELEMENT value (#PCDATA)>
+
+<!ELEMENT ajax-enabled (#PCDATA)>
+
+<!ELEMENT renderers (renderer)*>
+<!ELEMENT renderer (name|supported-markup)*>
+<!ELEMENT supported-markup (markup)*>
+<!ELEMENT markup (#PCDATA)>