blob: bc1d4effce90659d468b14f8b346f1acdbf2b80a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<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"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="4.0">
<xsd:include schemaLocation="jakartaee_10.xsd"/>
<xsd:annotation>
<xsd:documentation>
Copyright (c) 2009, 2021 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0, which is available at
http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary
Licenses when the conditions for such availability set forth in the
Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
version 2 with the GNU Classpath Exception, which is available at
https://www.gnu.org/software/classpath/license.html.
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
</xsd:documentation>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation>
<![CDATA[
[
<p>The XML Schema for the Tag Libraries in the Jakarta Faces
Standard Facelets View Declaration Language (Facelets VDL)
(Version 4.0).</p>
<p>Jakarta Faces 4.0 Facelet Tag Libraries that wish to conform to
this schema must declare it in the following manner.</p>
&lt;facelet-taglib xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-facelettaglibrary_4_0.xsd"
version="4.0"&gt;
...
&lt;/facelet-taglib&gt;</pre>
<p>The instance documents may indicate the published
version of the schema using xsi:schemaLocation attribute
for jakartaee namespace with the following location:</p>
<p>https://jakarta.ee/xml/ns/jakartaee/web-facelettaglibrary_4_0.xsd</p>
]]>
</xsd:documentation>
</xsd:annotation>
<!-- **************************************************** -->
<xsd:element name="facelet-taglib"
type="jakartaee:facelet-taglibType">
<xsd:unique name="facelet-taglib-tagname-uniqueness">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
tag-names must be unique within a document.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="jakartaee:tag"/>
<xsd:field xpath="jakartaee:tag-name"/>
</xsd:unique>
<xsd:unique name="faces-config-behavior-ID-uniqueness">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Behavior IDs must be unique within a document.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="jakartaee:behavior"/>
<xsd:field xpath="jakartaee:behavior-id"/>
</xsd:unique>
<xsd:unique name="faces-config-converter-ID-uniqueness">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Converter IDs must be unique within a document.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="jakartaee:converter"/>
<xsd:field xpath="jakartaee:converter-id"/>
</xsd:unique>
<xsd:unique name="faces-config-validator-ID-uniqueness">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Validator IDs must be unique within a document.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="jakartaee:validator"/>
<xsd:field xpath="jakartaee:validator-id"/>
</xsd:unique>
</xsd:element>
<!-- **************************************************** -->
<xsd:complexType name="facelet-taglibType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
The top level XML element in a facelet tag library XML file.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="jakartaee:descriptionGroup"/>
<xsd:choice>
<xsd:element name="library-class"
type="jakartaee:fully-qualified-classType"/>
<xsd:sequence>
<xsd:element name="namespace"
type="jakartaee:string"/>
<xsd:element minOccurs="0"
maxOccurs="1"
name="short-name"
type="jakartaee:string">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
An advisory short name for usages of tags from this tag library.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0"
maxOccurs="1"
name="composite-library-name"
type="jakartaee:string"/>
<xsd:choice minOccurs="0"
maxOccurs="unbounded">
<xsd:element name="tag"
type="jakartaee:facelet-taglib-tagType"/>
<xsd:element name="function"
type="jakartaee:facelet-taglib-functionType"/>
</xsd:choice>
</xsd:sequence>
</xsd:choice>
<xsd:element name="taglib-extension"
type="jakartaee:facelet-taglib-extensionType"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id"
type="xsd:ID"/>
<xsd:attribute name="version"
type="jakartaee:facelet-taglib-versionType"
use="required"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="facelet-taglib-extensionType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Extension element for facelet-taglib. It may contain
implementation specific content.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<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="facelet-taglib-tagType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>If the tag library XML
file contains individual tag declarations rather than pointing
to a library-class or a declaring a composite-library name, the
individual tags are enclosed in tag elements.</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="jakartaee:descriptionGroup"/>
<xsd:element name="tag-name"
type="jakartaee:facelet-taglib-canonical-nameType"/>
<xsd:choice>
<xsd:element name="handler-class"
type="jakartaee:fully-qualified-classType"/>
<xsd:element name="behavior"
type="jakartaee:facelet-taglib-tag-behaviorType"/>
<xsd:element name="component"
type="jakartaee:facelet-taglib-tag-componentType"/>
<xsd:element name="converter"
type="jakartaee:facelet-taglib-tag-converterType"/>
<xsd:element name="validator"
type="jakartaee:facelet-taglib-tag-validatorType"/>
<xsd:element name="source"
type="jakartaee:string"/>
</xsd:choice>
<xsd:element name="attribute"
type="jakartaee:facelet-taglib-tag-attributeType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="tag-extension"
type="jakartaee:facelet-taglib-tag-extensionType"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="facelet-taglib-tag-attributeType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
<p>The attribute element defines an attribute for the nesting
tag. The attribute element may have several subelements
defining:</p>
<dl>
<dt>description</dt><dd><p> a description of the attribute
</p></dd>
<dt>name</dt><dd><p> the name of the attribute
</p></dd>
<dt>required</dt><dd><p> whether the attribute is required or
optional
</p></dd>
<dt>type</dt><dd><p> the type of the attribute
</p></dd>
</dl>
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="jakartaee:descriptionGroup"/>
<xsd:element name="name"
type="jakartaee:xsdNMTOKENType"/>
<xsd:element name="required"
type="jakartaee:generic-booleanType"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>Defines if the nesting attribute is required or
optional.</p>
<p>If not present then the default is "false", i.e
the attribute is optional.</p>
]]>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:choice>
<xsd:element name="type"
type="jakartaee:fully-qualified-classType"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Defines the Java type of the attributes
value. If this element is omitted, the
expected type is assumed to be
"java.lang.Object".</p>
]]>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="method-signature"
type="jakartaee:string"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Defines the method signature for a MethodExpression-
enabled attribute. The syntax of the method-signature
element is as follows (taken from the function-signature
EBNF in web-jsptaglibrary_2_1.xsd):</p>
<code>
<p>MethodSignature ::= ReturnType S MethodName S? '(' S? Parameters? S? ')'</p>
<p>ReturnType ::= Type</p>
<p>MethodName ::= Identifier</p>
<p>Parameters ::= Parameter | ( Parameter S? ',' S? Parameters )</p>
<p>Parameter ::= Type</p>
</code>
<p>Where:</p>
<ul>
<li><p><code>Type</code> is a basic type or a fully qualified
Java class name (including package name), as per the 'Type'
production in the Java Language Specification, Second Edition,
Chapter 18.</p></li>
<li><p><code>Identifier</code> is a Java identifier, as per the
'Identifier' production in the Java Language Specification,
Second Edition, Chapter 18.</p></li>
</ul>
<p>Example:</p>
<p><code>java.lang.String nickName( java.lang.String, int )</code></p>
]]>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="id"
type="xsd:ID"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="facelet-taglib-tag-extensionType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Extension element for tag It may contain
implementation specific content.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<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="facelet-taglib-functionType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
If the tag library XML file contains individual function
declarations rather than pointing to a library-class or a
declaring a composite-library name, the individual functions are
enclosed in function elements.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="jakartaee:descriptionGroup"/>
<xsd:element name="function-name"
type="jakartaee:string"/>
<xsd:element name="function-class"
type="jakartaee:fully-qualified-classType"/>
<xsd:element name="function-signature"
type="jakartaee:string"/>
</xsd:sequence>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="facelet-taglib-tag-behaviorType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Within a tag element, the behavior element encapsulates
information specific to a Faces Behavior.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="jakartaee:descriptionGroup"/>
<xsd:element minOccurs="1"
maxOccurs="1"
name="behavior-id"
type="jakartaee:string"/>
<xsd:element minOccurs="0"
maxOccurs="1"
name="handler-class"
type="jakartaee:fully-qualified-classType"/>
<xsd:element name="behavior-extension"
type="jakartaee:facelet-taglib-tag-behavior-extensionType"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="facelet-taglib-tag-behavior-extensionType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Extension element for behavior. It may contain
implementation specific content.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<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="facelet-taglib-tag-componentType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p><span class="changed_modified_2_2
changed_modified_2_3">Within</span> a tag element, the component
element encapsulates information specific to a Faces UIComponent.</p>
<div class="changed_added_2_2 changed_deleted_2_3">
<p>As of 3.0 of the specification, this requirement is no longer
present: This element must have exactly one of
<code>&lt;component-type&gt;</code>, <code>&lt;resource-id&gt;</code>,
or <code>&lt;handler-class&gt;</code> among its child elements.</p>
</div>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="jakartaee:descriptionGroup"/>
<xsd:element name="component-type"
type="jakartaee:string"/>
<xsd:element minOccurs="0"
maxOccurs="1"
name="renderer-type"
type="jakartaee:string"/>
<xsd:element minOccurs="0"
maxOccurs="1"
name="handler-class"
type="jakartaee:fully-qualified-classType"/>
<xsd:element minOccurs="0"
maxOccurs="1"
name="resource-id"
type="jakartaee:string">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p class="changed_added_2_2">A valid resource identifier
as specified in the Jakarta Faces Specification Document section 2.6.1.3 "Resource Identifiers".
For example:</p>
<p><code>&lt;resource-id&gt;myCC/ccName.xhtml&lt;/resource-id&gt;</code></p>
]]>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="component-extension"
type="jakartaee:facelet-taglib-tag-component-extensionType"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="facelet-taglib-tag-component-extensionType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Extension element for component It may contain
implementation specific content.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<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="facelet-taglib-tag-converterType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Within a tag element, the converter element encapsulates
information specific to a Faces Converter.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="jakartaee:descriptionGroup"/>
<xsd:element minOccurs="1"
maxOccurs="1"
name="converter-id"
type="jakartaee:string"/>
<xsd:element minOccurs="0"
maxOccurs="1"
name="handler-class"
type="jakartaee:fully-qualified-classType"/>
<xsd:element name="converter-extension"
type="jakartaee:facelet-taglib-tag-converter-extensionType"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="facelet-taglib-tag-converter-extensionType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Extension element for converter It may contain
implementation specific content.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<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="facelet-taglib-tag-validatorType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Within a tag element, the validator element encapsulates
information specific to a Faces Validator.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="jakartaee:descriptionGroup"/>
<xsd:element minOccurs="1"
maxOccurs="1"
name="validator-id"
type="jakartaee:string"/>
<xsd:element minOccurs="0"
maxOccurs="1"
name="handler-class"
type="jakartaee:fully-qualified-classType"/>
<xsd:element name="validator-extension"
type="jakartaee:facelet-taglib-tag-validator-extensionType"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="facelet-taglib-tag-validator-extensionType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
Extension element for validator It may contain
implementation specific content.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:any namespace="##any"
processContents="lax"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id"
type="xsd:ID"/>
</xsd:complexType>
<xsd:simpleType name="facelet-taglib-versionType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
This type contains the recognized versions of
facelet-taglib supported.
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:token">
<xsd:enumeration value="4.0"/>
</xsd:restriction>
</xsd:simpleType>
<!-- **************************************************** -->
<xsd:complexType name="facelet-taglib-canonical-nameType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
<p>
<p>Defines the canonical name of a tag or attribute being
defined.</p>
<p>The name must conform to the lexical rules for an NCName</p>
</p>
]]>
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="xsd:NCName">
<xsd:attribute name="id"
type="xsd:ID"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>