You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2020/10/30 14:41:27 UTC

[myfaces] branch master updated (7561aa8 -> e9063e2)

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

tandraschko pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces.git.


    from 7561aa8  Jakarta Faces 3.0
     new 8143683  Jakarta Faces 4.0
     new e9063e2  Jakarta Faces 4.0

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../quarkus/deployment/MyFacesProcessor.java       |   4 +
 .../config/ConfigFilesXmlValidationUtils.java      | 123 ++++++++++++++++-----
 .../resource/{jakartaee_9.xsd => jakartaee_10.xsd} |   0
 ...facesconfig_3_0.xsd => web-facesconfig_4_0.xsd} |   4 +-
 4 files changed, 99 insertions(+), 32 deletions(-)
 copy impl/src/main/resources/org/apache/myfaces/resource/{jakartaee_9.xsd => jakartaee_10.xsd} (100%)
 copy impl/src/main/resources/org/apache/myfaces/resource/{web-facesconfig_3_0.xsd => web-facesconfig_4_0.xsd} (99%)


[myfaces] 01/02: Jakarta Faces 4.0

Posted by ta...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 81436835d47b4c90de92ea03964b90e9481d6d26
Author: Thomas Andraschko <ta...@apache.org>
AuthorDate: Fri Oct 30 15:40:44 2020 +0100

    Jakarta Faces 4.0
---
 .../quarkus/deployment/MyFacesProcessor.java       |   2 +
 .../config/ConfigFilesXmlValidationUtils.java      | 123 ++-
 .../org/apache/myfaces/resource/jakartaee_10.xsd   | 131 ++++
 .../myfaces/resource/web-facesconfig_4_0.xsd       | 848 +++++++++++++++++++++
 4 files changed, 1074 insertions(+), 30 deletions(-)

diff --git a/extensions/quarkus/deployment/src/main/java/org/apache/myfaces/core/extensions/quarkus/deployment/MyFacesProcessor.java b/extensions/quarkus/deployment/src/main/java/org/apache/myfaces/core/extensions/quarkus/deployment/MyFacesProcessor.java
index 0cdb7c2..79c7e43 100644
--- a/extensions/quarkus/deployment/src/main/java/org/apache/myfaces/core/extensions/quarkus/deployment/MyFacesProcessor.java
+++ b/extensions/quarkus/deployment/src/main/java/org/apache/myfaces/core/extensions/quarkus/deployment/MyFacesProcessor.java
@@ -541,6 +541,8 @@ class MyFacesProcessor
                 "org/apache/myfaces/resource/web-facesconfig_2_1.dtd",
                 "org/apache/myfaces/resource/web-facesconfig_2_2.dtd", 
                 "org/apache/myfaces/resource/web-facesconfig_2_3.dtd",
+                "org/apache/myfaces/resource/web-facesconfig_3_0.dtd",
+                "org/apache/myfaces/resource/web-facesconfig_4_0.dtd",
                 "org/apache/myfaces/resource/xml.xsd",
                 "META-INF/rsc/myfaces-dev-error-include.xml",
                 "META-INF/services/javax.servlet.ServletContainerInitializer"));
diff --git a/impl/src/main/java/org/apache/myfaces/config/ConfigFilesXmlValidationUtils.java b/impl/src/main/java/org/apache/myfaces/config/ConfigFilesXmlValidationUtils.java
index 7ec748b..2a42978 100644
--- a/impl/src/main/java/org/apache/myfaces/config/ConfigFilesXmlValidationUtils.java
+++ b/impl/src/main/java/org/apache/myfaces/config/ConfigFilesXmlValidationUtils.java
@@ -56,6 +56,8 @@ public class ConfigFilesXmlValidationUtils
     private final static String FACES_CONFIG_SCHEMA_PATH_21 = "org/apache/myfaces/resource/web-facesconfig_2_1.xsd";
     private final static String FACES_CONFIG_SCHEMA_PATH_22 = "org/apache/myfaces/resource/web-facesconfig_2_2.xsd";
     private final static String FACES_CONFIG_SCHEMA_PATH_23 = "org/apache/myfaces/resource/web-facesconfig_2_3.xsd";
+    private final static String FACES_CONFIG_SCHEMA_PATH_30 = "org/apache/myfaces/resource/web-facesconfig_3_0.xsd";
+    private final static String FACES_CONFIG_SCHEMA_PATH_40 = "org/apache/myfaces/resource/web-facesconfig_4_0.xsd";
     private final static String FACES_TAGLIB_SCHEMA_PATH = "org/apache/myfaces/resource/web-facelettaglibrary_2_0.xsd";
 
     public static class LSInputImpl implements LSInput
@@ -251,7 +253,9 @@ public class ConfigFilesXmlValidationUtils
                             ? FACES_CONFIG_SCHEMA_PATH_12
                             : ("2.0".equals(version) ? FACES_CONFIG_SCHEMA_PATH_20 
                             : ("2.1".equals(version) ? FACES_CONFIG_SCHEMA_PATH_21
-                            : ("2.2".equals(version) ? FACES_CONFIG_SCHEMA_PATH_22 : FACES_CONFIG_SCHEMA_PATH_23)));
+                            : ("2.2".equals(version) ? FACES_CONFIG_SCHEMA_PATH_22
+                            : ("2.3".equals(version) ? FACES_CONFIG_SCHEMA_PATH_23
+                            : ("3.0".equals(version) ? FACES_CONFIG_SCHEMA_PATH_30 : FACES_CONFIG_SCHEMA_PATH_40)))));
         
         InputStream stream = ClassUtils.getResourceAsStream(xmlSchema);
         
@@ -270,7 +274,7 @@ public class ConfigFilesXmlValidationUtils
 
     public static final String getFacesConfigVersion(URL url)
     {
-        String result = "2.0";
+        String result = "4.0";
 
         try
         {
@@ -301,9 +305,38 @@ public class ConfigFilesXmlValidationUtils
                 }
             }
 
-            result = handler.isVersion23OrLater() ? "2.3" : (handler.isVersion22() ? "2.2" : 
-                        (handler.isVersion21() ? "2.1" : (handler.isVersion20() ? "2.0" : 
-                        (handler.isVersion12() ? "1.2" : "1.1"))));
+            if (handler.isVersion11())
+            {
+                return "1.1";
+            }
+            else if (handler.isVersion12())
+            {
+                return "1.2";
+            }
+            else if (handler.isVersion20())
+            {
+                return "2.0";
+            }
+            else if (handler.isVersion21())
+            {
+                return "2.1";
+            }
+            else if (handler.isVersion22())
+            {
+                return "2.2";
+            }
+            else if (handler.isVersion23())
+            {
+                return "2.3";
+            }
+            else if (handler.isVersion30())
+            {
+                return "3.0";
+            }
+            else if (handler.isVersion40OrLater())
+            {
+                return "4.0";
+            }
         }
         catch (Throwable e)
         {
@@ -315,12 +348,20 @@ public class ConfigFilesXmlValidationUtils
 
     private static class FacesConfigVersionCheckHandler extends DefaultHandler
     {
+        private boolean version11;
         private boolean version12;
         private boolean version20;
         private boolean version21;
         private boolean version22;
-        private boolean version23OrLater;
+        private boolean version23;
+        private boolean version30;
+        private boolean version40OrLater;
 
+        public boolean isVersion11()
+        {
+            return this.version11;
+        }
+        
         public boolean isVersion12()
         {
             return this.version12;
@@ -341,9 +382,31 @@ public class ConfigFilesXmlValidationUtils
             return this.version22;
         }
         
-        public boolean isVersion23OrLater()
+        public boolean isVersion23()
         {
-            return this.version23OrLater;
+            return this.version23;
+        }
+
+        public boolean isVersion30()
+        {
+            return this.version30;
+        }
+        
+        public boolean isVersion40OrLater()
+        {
+            return this.version40OrLater;
+        }
+
+        protected void reset()
+        {
+            this.version11 = false;
+            this.version12 = false;
+            this.version20 = false;
+            this.version21 = false;
+            this.version22 = false;
+            this.version23 = false;
+            this.version30 = false;
+            this.version40OrLater = false;
         }
 
         @Override
@@ -362,45 +425,45 @@ public class ConfigFilesXmlValidationUtils
                             : attributes.getQName(i);
                     if (attrName.equals("version"))
                     {
-                        if (attributes.getValue(i).equals("1.2"))
+                        if (attributes.getValue(i).equals("1.1"))
+                        {
+                            reset();
+                            this.version11 = true;
+                        }
+                        else if (attributes.getValue(i).equals("1.2"))
                         {
+                            reset();
                             this.version12 = true;
-                            this.version20 = false;
-                            this.version21 = false;
-                            this.version22 = false;
-                            this.version23OrLater = false;
                         }
                         else if (attributes.getValue(i).equals("2.0"))
                         {
-                            this.version12 = false;
+                            reset();
                             this.version20 = true;
-                            this.version21 = false;
-                            this.version22 = false;
-                            this.version23OrLater = false;
                         }
                         else if (attributes.getValue(i).equals("2.1"))
                         {
-                            this.version12 = false;
-                            this.version20 = false;
+                            reset();
                             this.version21 = true;
-                            this.version22 = false;
-                            this.version23OrLater = false;
                         }
                         else if (attributes.getValue(i).equals("2.2"))
                         {
-                            this.version12 = false;
-                            this.version20 = false;
-                            this.version21 = false;
+                            reset();
                             this.version22 = true;
-                            this.version23OrLater = false;
+                        }
+                        else if (attributes.getValue(i).equals("2.3"))
+                        {
+                            reset();
+                            this.version23 = true;
+                        }
+                        else if (attributes.getValue(i).equals("3.0"))
+                        {
+                            reset();
+                            this.version30 = true;
                         }
                         else
                         {
-                            this.version12 = false;
-                            this.version20 = false;
-                            this.version21 = false;
-                            this.version22 = false;
-                            this.version23OrLater = true;
+                            reset();
+                            this.version40OrLater = true;
                         }
                     }
                 }
diff --git a/impl/src/main/resources/org/apache/myfaces/resource/jakartaee_10.xsd b/impl/src/main/resources/org/apache/myfaces/resource/jakartaee_10.xsd
new file mode 100644
index 0000000..24855bc
--- /dev/null
+++ b/impl/src/main/resources/org/apache/myfaces/resource/jakartaee_10.xsd
@@ -0,0 +1,131 @@
+<?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 XSD contains only the programatic elements required for an implementation.
+  ** For the XSD from Sun that includes documentation and other copyrighted information
+  ** please refer to the latest XSD at :
+  ** https://jakarta.ee/xml/ns/jakartaee/jakartaee_9.xsd
+-->
+
+<xsd:schema targetNamespace="https://jakarta.ee/xml/ns/jakartaee"
+            xmlns:jakartaee="https://jakarta.ee/xml/ns/jakartaee"
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            elementFormDefault="qualified"
+            attributeFormDefault="unqualified"
+            version="5">
+
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
+                schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+    <!--
+    ** TODO: Note we only have here the necessary elements to make
+    ** ConfigFilesXmlValidationUtils to work correctly (elements referenced by
+    ** faces-config.xml or facelets-taglib.xml). It could be good to extend
+    ** this xsd to include all elements.
+    -->
+    <xsd:complexType name="string">
+        <xsd:simpleContent>
+            <xsd:extension base="xsd:token">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+    <xsd:complexType name="fully-qualified-classType">
+        <xsd:simpleContent>
+            <xsd:restriction base="jakartaee:string"/>
+        </xsd:simpleContent>
+    </xsd:complexType>
+    <xsd:complexType name="java-identifierType">
+        <xsd:simpleContent>
+            <xsd:restriction base="jakartaee:string">
+                <xsd:pattern value="($|_|\p{L})(\p{L}|\p{Nd}|_|$)*"/>
+            </xsd:restriction>
+        </xsd:simpleContent>
+    </xsd:complexType>
+    <xsd:group name="descriptionGroup">
+        <xsd:sequence>
+            <xsd:element name="description" type="jakartaee:descriptionType"
+                         minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="display-name" type="jakartaee:display-nameType"
+                         minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="icon" type="jakartaee:iconType"
+                         minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+    </xsd:group>
+    <xsd:complexType name="descriptionType">
+        <xsd:simpleContent>
+            <xsd:extension base="jakartaee:xsdStringType">
+                <xsd:attribute ref="xml:lang"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+    <xsd:complexType name="xsdStringType">
+        <xsd:simpleContent>
+            <xsd:extension base="xsd:string">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+    <xsd:complexType name="display-nameType">
+        <xsd:simpleContent>
+            <xsd:extension base="jakartaee:string">
+                <xsd:attribute ref="xml:lang"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+    <xsd:complexType name="iconType">
+        <xsd:sequence>
+            <xsd:element name="small-icon" type="jakartaee:pathType" minOccurs="0"/>
+            <xsd:element name="large-icon" type="jakartaee:pathType" minOccurs="0"/>
+        </xsd:sequence>
+        <xsd:attribute ref="xml:lang"/>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+    <xsd:complexType name="pathType">
+        <xsd:simpleContent>
+            <xsd:restriction base="jakartaee:string"/>
+        </xsd:simpleContent>
+    </xsd:complexType>
+    <xsd:complexType name="java-typeType">
+        <xsd:simpleContent>
+            <xsd:restriction base="jakartaee:string">
+                <xsd:pattern value="[^\p{Z}]*"/>
+            </xsd:restriction>
+        </xsd:simpleContent>
+    </xsd:complexType>
+    <xsd:complexType name="xsdNMTOKENType">
+        <xsd:simpleContent>
+            <xsd:extension base="xsd:NMTOKEN">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+    <xsd:complexType name="generic-booleanType">
+        <xsd:simpleContent>
+            <xsd:restriction base="jakartaee:string">
+                <xsd:enumeration value="true"/>
+                <xsd:enumeration value="false"/>
+                <xsd:enumeration value="yes"/>
+                <xsd:enumeration value="no"/>
+            </xsd:restriction>
+        </xsd:simpleContent>
+    </xsd:complexType>
+</xsd:schema>
+
diff --git a/impl/src/main/resources/org/apache/myfaces/resource/web-facesconfig_4_0.xsd b/impl/src/main/resources/org/apache/myfaces/resource/web-facesconfig_4_0.xsd
new file mode 100644
index 0000000..f905acd
--- /dev/null
+++ b/impl/src/main/resources/org/apache/myfaces/resource/web-facesconfig_4_0.xsd
@@ -0,0 +1,848 @@
+<?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 XSD contains only the programatic elements required for an implementation.
+  ** For the XSD from Sun that includes documentation and other copyrighted information
+  ** please refer to the latest XSD at :
+  ** https://jakarta.ee/xml/ns/jakartaee/web-facesconfig_4_0.xsd
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:jakartaee="https://jakarta.ee/xml/ns/jakartaee" attributeFormDefault="unqualified"
+    elementFormDefault="qualified" targetNamespace="https://jakarta.ee/xml/ns/jakartaee"
+    version="3.0">
+
+    <xsd:include schemaLocation="jakartaee_10.xsd"/>
+
+    <xsd:element name="faces-config" type="jakartaee:faces-configType">
+        <xsd:unique name="faces-config-behavior-ID-uniqueness">
+            <xsd:selector xpath="jakartaee:behavior"/>
+            <xsd:field xpath="jakartaee:behavior-id"/>
+        </xsd:unique>
+        <xsd:unique name="faces-config-converter-ID-uniqueness">
+            <xsd:selector xpath="jakartaee:converter"/>
+            <xsd:field xpath="jakartaee:converter-id"/>
+        </xsd:unique>
+        <xsd:unique name="faces-config-converter-for-class-uniqueness">
+            <xsd:selector xpath="jakartaee:converter"/>
+            <xsd:field xpath="jakartaee:converter-for-class"/>
+        </xsd:unique>
+        <xsd:unique name="faces-config-validator-ID-uniqueness">
+            <xsd:selector xpath="jakartaee:validator"/>
+            <xsd:field xpath="jakartaee:validator-id"/>
+        </xsd:unique>
+        <xsd:unique name="faces-config-managed-bean-name-uniqueness">
+            <xsd:selector xpath="jakartaee:managed-bean"/>
+            <xsd:field xpath="jakartaee:managed-bean-name"/>
+        </xsd:unique>
+    </xsd:element>
+
+    <xsd:complexType name="faces-configType">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+            <xsd:element name="application" type="jakartaee:faces-config-applicationType"/>
+            <xsd:element name="ordering" type="jakartaee:faces-config-orderingType"/>
+            <xsd:element name="absolute-ordering" type="jakartaee:faces-config-absoluteOrderingType"/>
+            <xsd:element name="factory" type="jakartaee:faces-config-factoryType"/>
+            <xsd:element name="component" type="jakartaee:faces-config-componentType"/>
+            <xsd:element name="converter" type="jakartaee:faces-config-converterType"/>
+            <xsd:element name="managed-bean" type="jakartaee:faces-config-managed-beanType"/>
+            <xsd:element name="flow-definition" type="jakartaee:faces-config-flow-definitionType"/>
+            <xsd:element name="name" type="jakartaee:java-identifierType" minOccurs="0"/>
+            <xsd:element name="navigation-rule" type="jakartaee:faces-config-navigation-ruleType"/>
+            <xsd:element name="protected-views" type="jakartaee:faces-config-protected-viewsType"
+                minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="referenced-bean" type="jakartaee:faces-config-referenced-beanType"/>
+            <xsd:element name="render-kit" type="jakartaee:faces-config-render-kitType"/>
+            <xsd:element name="lifecycle" type="jakartaee:faces-config-lifecycleType"/>
+            <xsd:element name="validator" type="jakartaee:faces-config-validatorType"/>
+            <xsd:element name="behavior" type="jakartaee:faces-config-behaviorType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="faces-config-extension"
+                type="jakartaee:faces-config-extensionType"/>
+        </xsd:choice>
+        <xsd:attribute name="metadata-complete" type="xsd:boolean" use="optional"></xsd:attribute>
+        <xsd:attribute name="id" type="xsd:ID"/>
+        <xsd:attribute name="version" type="jakartaee:faces-config-versionType" use="required"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-applicationType">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+            <xsd:element name="action-listener" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="default-render-kit-id" type="jakartaee:string"/>
+            <xsd:element name="message-bundle" type="jakartaee:string"/>
+            <xsd:element name="navigation-handler" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="view-handler" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="resource-handler" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="state-manager" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="el-resolver" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="property-resolver" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="variable-resolver" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="resource-library-contracts"
+                   type="jakartaee:faces-config-application-resource-library-contractsType"/>
+            <xsd:element name="search-expression-handler" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="search-keyword-resolver" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="locale-config" type="jakartaee:faces-config-locale-configType"/>
+            <xsd:element name="resource-bundle"
+                type="jakartaee:faces-config-application-resource-bundleType"/>
+            <xsd:element name="default-validators" type="jakartaee:faces-config-default-validatorsType"/>
+            <xsd:element name="partial-traversal" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="system-event-listener" type="jakartaee:faces-config-system-event-listenerType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="application-extension"
+                type="jakartaee:faces-config-application-extensionType"/>
+        </xsd:choice>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-orderingType">
+        <xsd:sequence>
+            <xsd:element name="after" type="jakartaee:faces-config-ordering-orderingType" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="before" type="jakartaee:faces-config-ordering-orderingType" minOccurs="0" maxOccurs="1"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-ordering-orderingType">
+        <xsd:sequence>
+            <xsd:element name="name" type="jakartaee:java-identifierType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="others" type="jakartaee:faces-config-ordering-othersType" minOccurs="0" maxOccurs="1" />
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-ordering-othersType">
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-absoluteOrderingType">
+        <xsd:choice minOccurs="0" maxOccurs="unbounded">
+            <xsd:element name="name" type="jakartaee:java-identifierType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="others" type="jakartaee:faces-config-ordering-othersType" minOccurs="0" maxOccurs="1" />
+        </xsd:choice>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-application-resource-bundleType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="base-name" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="var" type="jakartaee:string"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-application-resource-library-contractsType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="contract-mapping"
+                   type="jakartaee:faces-config-application-resource-library-contracts-contract-mappingType"
+                   maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-application-resource-library-contracts-contract-mappingType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="url-pattern" type="jakartaee:url-patternType" maxOccurs="unbounded"/>
+            <xsd:element name="contracts" type="jakartaee:string" maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-application-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-factoryType">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+            <xsd:element name="application-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="exception-handler-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="external-context-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="faces-context-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="facelet-cache-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="partial-view-context-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="lifecycle-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="view-declaration-language-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="tag-handler-delegate-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="render-kit-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="visit-context-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="flash-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="flow-handler-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="client-window-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="search-expression-context-factory" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="factory-extension"
+                type="jakartaee:faces-config-factory-extensionType"/>
+        </xsd:choice>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-factory-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-attributeType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="attribute-name" type="jakartaee:string"/>
+            <xsd:element name="attribute-class" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element minOccurs="0" name="default-value"
+                type="jakartaee:faces-config-default-valueType"/>
+            <xsd:element minOccurs="0" name="suggested-value"
+                type="jakartaee:faces-config-suggested-valueType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="attribute-extension"
+                type="jakartaee:faces-config-attribute-extensionType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-attribute-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-componentType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="component-type" type="jakartaee:string"/>
+            <xsd:element name="component-class" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="facet"
+                type="jakartaee:faces-config-facetType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="attribute"
+                type="jakartaee:faces-config-attributeType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="property"
+                type="jakartaee:faces-config-propertyType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="component-extension"
+                type="jakartaee:faces-config-component-extensionType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-component-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-default-localeType">
+        <xsd:simpleContent>
+            <xsd:extension base="jakartaee:faces-config-localeType">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-default-valueType">
+        <xsd:simpleContent>
+            <xsd:restriction base="jakartaee:string"/>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:simpleType name="faces-config-el-expressionType">
+        <xsd:restriction base="xsd:string">
+            <xsd:pattern value="#\{.*\}"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+
+    <xsd:complexType name="faces-config-facetType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="facet-name" type="jakartaee:java-identifierType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="facet-extension"
+                type="jakartaee:faces-config-facet-extensionType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-facet-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-from-view-idType">
+        <xsd:simpleContent>
+            <xsd:restriction base="jakartaee:string">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:restriction>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-from-actionType">
+        <xsd:simpleContent>
+            <xsd:extension base="jakartaee:faces-config-el-expressionType">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-converterType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:choice>
+                <xsd:element name="converter-id" type="jakartaee:string"/>
+                <xsd:element name="converter-for-class" type="jakartaee:fully-qualified-classType"/>
+            </xsd:choice>
+            <xsd:element name="converter-class" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="attribute"
+                type="jakartaee:faces-config-attributeType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="property"
+                type="jakartaee:faces-config-propertyType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="converter-extension"
+                type="jakartaee:faces-config-converter-extensionType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-converter-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-lifecycleType">
+        <xsd:sequence>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="phase-listener"
+                type="jakartaee:fully-qualified-classType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="lifecycle-extension"
+                type="jakartaee:faces-config-lifecycle-extensionType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-lifecycle-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:simpleType name="faces-config-localeType">
+        <xsd:restriction base="xsd:string">
+            <xsd:pattern value="[a-z]{2}(_|-)?([\p{L}\-\p{Nd}]{2})?"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+
+    <xsd:complexType name="faces-config-locale-configType">
+        <xsd:sequence>
+            <xsd:element minOccurs="0" name="default-locale"
+                type="jakartaee:faces-config-default-localeType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="supported-locale"
+                type="jakartaee:faces-config-supported-localeType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-managed-beanType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="managed-bean-name" type="jakartaee:java-identifierType"/>
+            <xsd:element name="managed-bean-class" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="managed-bean-scope"
+                type="jakartaee:faces-config-managed-bean-scopeOrNoneType"/>
+            <xsd:choice>
+                <xsd:element maxOccurs="unbounded" minOccurs="0" name="managed-property"
+                    type="jakartaee:faces-config-managed-propertyType"/>
+                <xsd:element name="map-entries" type="jakartaee:faces-config-map-entriesType"/>
+                <xsd:element name="list-entries" type="jakartaee:faces-config-list-entriesType"/>
+            </xsd:choice>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="managed-bean-extension"
+                type="jakartaee:faces-config-managed-bean-extensionType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+        <xsd:attribute name="eager" type="xsd:boolean" use="optional"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-managed-bean-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-managed-bean-scopeOrNoneType">
+        <xsd:simpleContent>
+            <xsd:restriction base="jakartaee:string">
+                <xsd:pattern value="view|request|session|application|none|#\{.*\}"/>
+            </xsd:restriction>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-managed-propertyType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="property-name" type="jakartaee:string"/>
+            <xsd:element minOccurs="0" name="property-class" type="jakartaee:java-typeType"/>
+            <xsd:choice>
+                <xsd:element name="map-entries" type="jakartaee:faces-config-map-entriesType"/>
+                <xsd:element name="null-value" type="jakartaee:faces-config-null-valueType"/>
+                <xsd:element name="value" type="jakartaee:faces-config-valueType"/>
+                <xsd:element name="list-entries" type="jakartaee:faces-config-list-entriesType"/>
+            </xsd:choice>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definitionType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="start-node" type="jakartaee:java-identifierType" minOccurs="0"/>
+            <xsd:element name="view" type="jakartaee:faces-config-flow-definition-viewType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="switch" type="jakartaee:faces-config-flow-definition-switchType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="flow-return" type="jakartaee:faces-config-flow-definition-flow-returnType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="navigation-rule" type="jakartaee:faces-config-navigation-ruleType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="flow-call" type="jakartaee:faces-config-flow-definition-flow-callType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="method-call" type="jakartaee:faces-config-flow-definition-faces-method-callType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="initializer" type="jakartaee:faces-config-flow-definition-initializerType" minOccurs="0"/>
+            <xsd:element name="finalizer" type="jakartaee:faces-config-flow-definition-finalizerType" minOccurs="0"/>
+            <xsd:element name="inbound-parameter" type="jakartaee:faces-config-flow-definition-inbound-parameterType" minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID" use="required"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-parameter-valueType">
+        <xsd:simpleContent>
+            <xsd:extension base="jakartaee:faces-config-el-expressionType">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-faces-method-callType">
+        <xsd:sequence>
+            <xsd:element name="method" type="jakartaee:faces-config-flow-definition-faces-method-call-methodType"/>
+            <xsd:element name="default-outcome" type="jakartaee:string"/>
+            <xsd:element name="parameter"
+                   type="jakartaee:faces-config-flow-definition-flow-call-parameterType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-faces-method-call-methodType">
+        <xsd:simpleContent>
+            <xsd:extension base="jakartaee:faces-config-el-expressionType">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-flow-call-parameterType">
+        <xsd:sequence>
+            <xsd:element name="class" type="jakartaee:string" minOccurs="0"/>
+            <xsd:element name="value" type="jakartaee:faces-config-flow-definition-parameter-valueType"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-viewType">
+        <xsd:sequence>
+            <xsd:element name="vdl-document" type="jakartaee:pathType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID" use="required"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-switchType">
+        <xsd:sequence>
+            <xsd:element name="case" type="jakartaee:faces-config-flow-definition-switch-caseType"
+                   minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="default-outcome" type="jakartaee:string" minOccurs="0"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID" use="required"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-switch-caseType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="if" type="jakartaee:faces-config-ifType" minOccurs="0"/>
+            <xsd:element name="from-outcome" type="jakartaee:string" minOccurs="0"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-flow-returnType">
+        <xsd:sequence>
+            <xsd:element name="from-outcome" type="jakartaee:string"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID" use="required"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-flow-callType">
+        <xsd:sequence>
+            <xsd:element name="flow-reference" type="jakartaee:faces-config-flow-definition-flow-call-flow-referenceType"/>
+            <xsd:element name="outbound-parameter" type="jakartaee:faces-config-flow-definition-flow-call-outbound-parameterType"
+                   minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID" use="required"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-flow-call-flow-referenceType">
+        <xsd:sequence>
+            <xsd:element name="flow-document-id" type="jakartaee:java-identifierType" minOccurs="0"/>
+            <xsd:element name="flow-id" type="jakartaee:java-identifierType"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-initializerType">
+        <xsd:simpleContent>
+            <xsd:extension base="jakartaee:faces-config-el-expressionType">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-finalizerType">
+        <xsd:simpleContent>
+            <xsd:extension base="jakartaee:faces-config-el-expressionType">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-inbound-parameterType">
+        <xsd:sequence>
+            <xsd:element name="name" type="jakartaee:java-identifierType"/>
+            <xsd:element name="value" type="jakartaee:faces-config-flow-definition-parameter-valueType"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-flow-definition-flow-call-outbound-parameterType">
+        <xsd:sequence>
+            <xsd:element name="name" type="jakartaee:java-identifierType"/>
+            <xsd:element name="value" type="jakartaee:faces-config-flow-definition-parameter-valueType"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-map-entryType">
+        <xsd:sequence>
+            <xsd:element name="key" type="jakartaee:string"/>
+            <xsd:choice>
+                <xsd:element name="null-value" type="jakartaee:faces-config-null-valueType"/>
+                <xsd:element name="value" type="jakartaee:faces-config-valueType"/>
+            </xsd:choice>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-map-entriesType">
+        <xsd:sequence>
+            <xsd:element minOccurs="0" name="key-class" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element minOccurs="0" name="value-class"
+                type="jakartaee:faces-config-value-classType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="map-entry"
+                type="jakartaee:faces-config-map-entryType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-navigation-caseType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element minOccurs="0" name="from-action"
+                type="jakartaee:faces-config-from-actionType"/>
+            <xsd:element minOccurs="0" name="from-outcome" type="jakartaee:string"/>
+            <xsd:element name="if" type="jakartaee:faces-config-ifType" minOccurs="0" />
+            <xsd:element name="to-view-id" type="jakartaee:faces-config-valueType" />
+            <xsd:element name="to-flow-document-id" type="jakartaee:java-identifierType" minOccurs="0"/>
+            <xsd:element minOccurs="0" name="redirect" type="jakartaee:faces-config-redirectType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+     <xsd:complexType name="faces-config-ifType">
+        <xsd:simpleContent>
+            <xsd:extension base="jakartaee:faces-config-el-expressionType">
+                <xsd:attribute name="id" type="xsd:ID" />
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-navigation-ruleType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element minOccurs="0" name="from-view-id"
+                type="jakartaee:faces-config-from-view-idType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="navigation-case"
+                type="jakartaee:faces-config-navigation-caseType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="navigation-rule-extension"
+                type="jakartaee:faces-config-navigation-rule-extensionType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-navigation-rule-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-null-valueType">
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-propertyType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="property-name" type="jakartaee:string"/>
+            <xsd:element name="property-class" type="jakartaee:java-typeType"/>
+            <xsd:element minOccurs="0" name="default-value"
+                type="jakartaee:faces-config-default-valueType"/>
+            <xsd:element minOccurs="0" name="suggested-value"
+                type="jakartaee:faces-config-suggested-valueType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="property-extension"
+                type="jakartaee:faces-config-property-extensionType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-protected-viewsType">
+        <xsd:sequence>
+            <xsd:element name="url-pattern" type="jakartaee:url-patternType" maxOccurs="unbounded"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-property-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-redirectType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The "redirect" element indicates that navigation to the specified "to-view-id" should be
+                accomplished by performing an HTTP redirect rather than the usual ViewHandler mechanisms.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="view-param" type="jakartaee:faces-config-redirect-viewParamType"
+                minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+        <xsd:attribute name="include-view-params" type="xsd:boolean" use="optional"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-redirect-viewParamType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The "view-param" element, only valid within a "redirect" element, contains child
+                "name" and "value" elements that must be included in the redirect url when the
+                redirect is performed.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="name" type="jakartaee:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="value" type="jakartaee:string" minOccurs="1" maxOccurs="1"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-referenced-beanType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="referenced-bean-name" type="jakartaee:java-identifierType"/>
+            <xsd:element name="referenced-bean-class" type="jakartaee:fully-qualified-classType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-render-kitType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element minOccurs="0" name="render-kit-id" type="jakartaee:string"/>
+            <xsd:element minOccurs="0" name="render-kit-class"
+                type="jakartaee:fully-qualified-classType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="renderer"
+                type="jakartaee:faces-config-rendererType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="client-behavior-renderer"
+                type="jakartaee:faces-config-client-behavior-rendererType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="render-kit-extension"
+                type="jakartaee:faces-config-render-kit-extensionType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-rendererType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="component-family" type="jakartaee:string"/>
+            <xsd:element name="renderer-type" type="jakartaee:string"/>
+            <xsd:element name="renderer-class" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="facet"
+                type="jakartaee:faces-config-facetType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="attribute"
+                type="jakartaee:faces-config-attributeType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="renderer-extension"
+                type="jakartaee:faces-config-renderer-extensionType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-renderer-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-render-kit-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-suggested-valueType">
+        <xsd:simpleContent>
+            <xsd:restriction base="jakartaee:string"/>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-supported-localeType">
+        <xsd:simpleContent>
+            <xsd:extension base="jakartaee:faces-config-localeType">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-validatorType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="validator-id" type="jakartaee:string"/>
+            <xsd:element name="validator-class" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="attribute"
+                type="jakartaee:faces-config-attributeType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="property"
+                type="jakartaee:faces-config-propertyType"/>
+            <xsd:element maxOccurs="unbounded" minOccurs="0" name="validator-extension"
+                type="jakartaee:faces-config-validator-extensionType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-validator-extensionType">
+        <xsd:sequence>
+            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##any" processContents="lax"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:simpleType name="faces-config-valueType">
+        <xsd:union memberTypes="jakartaee:faces-config-el-expressionType xsd:string"/>
+    </xsd:simpleType>
+
+    <xsd:complexType name="faces-config-value-classType">
+        <xsd:simpleContent>
+            <xsd:restriction base="jakartaee:fully-qualified-classType"/>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-list-entriesType">
+        <xsd:sequence>
+            <xsd:element minOccurs="0" name="value-class"
+                type="jakartaee:faces-config-value-classType"/>
+            <xsd:choice maxOccurs="unbounded" minOccurs="0">
+                <xsd:element name="null-value" type="jakartaee:faces-config-null-valueType"/>
+                <xsd:element name="value" type="jakartaee:faces-config-valueType"/>
+            </xsd:choice>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-default-validatorsType">
+        <xsd:sequence>
+            <xsd:element name="validator-id" type="jakartaee:string" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-system-event-listenerType">
+        <xsd:sequence>
+            <xsd:element name="system-event-listener-class"
+                type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="system-event-class"
+                type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="source-class" minOccurs="0"
+                type="jakartaee:fully-qualified-classType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-behaviorType">
+        <xsd:sequence>
+            <xsd:group ref="jakartaee:descriptionGroup"/>
+            <xsd:element name="behavior-id" type="jakartaee:string"/>
+            <xsd:element name="behavior-class" type="jakartaee:fully-qualified-classType"/>
+            <xsd:element name="attribute" type="jakartaee:faces-config-attributeType"
+                minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="property" type="jakartaee:faces-config-propertyType"
+                minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="behavior-extension" type="jakartaee:faces-config-behavior-extensionType"
+                minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-behavior-extensionType">
+        <xsd:sequence>
+            <xsd:any namespace="##any" processContents="lax" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-client-behavior-rendererType">
+        <xsd:sequence>
+            <xsd:element name="client-behavior-renderer-type" type="jakartaee:string"/>
+            <xsd:element name="client-behavior-renderer-class" type="jakartaee:fully-qualified-classType"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:simpleType name="faces-config-versionType">
+        <xsd:restriction base="xsd:token">
+            <xsd:enumeration value="1.2"/>
+            <xsd:enumeration value="2.0"/>
+            <xsd:enumeration value="2.1"/>
+            <xsd:enumeration value="2.2"/>
+            <xsd:enumeration value="2.3"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+
+</xsd:schema>


[myfaces] 02/02: Jakarta Faces 4.0

Posted by ta...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit e9063e26b488d2f7b57f0a9b63a7c6005bf5bf9a
Author: Thomas Andraschko <ta...@apache.org>
AuthorDate: Fri Oct 30 15:41:16 2020 +0100

    Jakarta Faces 4.0
---
 .../myfaces/core/extensions/quarkus/deployment/MyFacesProcessor.java    | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/extensions/quarkus/deployment/src/main/java/org/apache/myfaces/core/extensions/quarkus/deployment/MyFacesProcessor.java b/extensions/quarkus/deployment/src/main/java/org/apache/myfaces/core/extensions/quarkus/deployment/MyFacesProcessor.java
index 79c7e43..f599d1f 100644
--- a/extensions/quarkus/deployment/src/main/java/org/apache/myfaces/core/extensions/quarkus/deployment/MyFacesProcessor.java
+++ b/extensions/quarkus/deployment/src/main/java/org/apache/myfaces/core/extensions/quarkus/deployment/MyFacesProcessor.java
@@ -532,6 +532,8 @@ class MyFacesProcessor
                 "META-INF/resources/org/apache/myfaces/windowId/windowhandler.html",
                 "org/apache/myfaces/resource/facelet-taglib_1_0.dtd", 
                 "org/apache/myfaces/resource/javaee_5.xsd",
+                "org/apache/myfaces/resource/jakartaee_9.xsd",
+                "org/apache/myfaces/resource/jakartaee_10.xsd",
                 "org/apache/myfaces/resource/web-facelettaglibrary_2_0.xsd",
                 "org/apache/myfaces/resource/XMLSchema.dtd", 
                 "org/apache/myfaces/resource/facesconfig_1_0.dtd",