$Id: web-facesconfig_1_2.xsd,v 1.15 2008/03/26 17:46:42 rlubke Exp $ Copyright 2005 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, California 94303, U.S.A. All rights reserved. Sun Microsystems, Inc. has intellectual property rights relating to technology described in this document. In particular, and without limitation, these intellectual property rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent applications in the U.S. and other countries. This document and the technology which it describes are distributed under licenses restricting their use, copying, distribution, and decompilation. No part of this document may be reproduced in any form by any means without prior written authorization of Sun and its licensors, if any. Third-party software, including font technology, is copyrighted and licensed from Sun suppliers. Sun, Sun Microsystems, the Sun logo, Solaris, Java, Java EE, JavaServer Pages, Enterprise JavaBeans and the Java Coffee Cup logo are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Federal Acquisitions: Commercial Software - Government Users Subject to Standard License Terms and Conditions. ... The instance documents may indicate the published version of the schema using xsi:schemaLocation attribute for javaee namespace with the following location: http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd ]]> The "faces-config" element is the root of the configuration information hierarchy, and contains nested elements for all of the other configuration settings. Converter IDs must be unique within a document. 'converter-for-class' element values must be unique within a document. Validator IDs must be unique within a document. Managed bean names must be unique within a document. The "faces-config" element is the root of the configuration information hierarchy, and contains nested elements for all of the other configuration settings. Extension element for faces-config. It may contain implementation specific content. The "application" element provides a mechanism to define the various per-application-singleton implementation artifacts for a particular web application that is utilizing JavaServer Faces. For nested elements that are not specified, the JSF implementation must provide a suitable default. The "action-listener" element contains the fully qualified class name of the concrete ActionListener implementation class that will be called during the Invoke Application phase of the request processing lifecycle. The "default-render-kit-id" element allows the application to define a renderkit to be used other than the standard one. The base name of a resource bundle representing the message resources for this application. See the JavaDocs for the "java.util.ResourceBundle" class for more information on the syntax of resource bundle names. The "navigation-handler" element contains the fully qualified class name of the concrete NavigationHandler implementation class that will be called during the Invoke Application phase of the request processing lifecycle, if the default ActionListener (provided by the JSF implementation) is used. The "view-handler" element contains the fully qualified class name of the concrete ViewHandler implementation class that will be called during the Restore View and Render Response phases of the request processing lifecycle. The faces implementation must provide a default implementation of this class. The "state-manager" element contains the fully qualified class name of the concrete StateManager implementation class that will be called during the Restore View and Render Response phases of the request processing lifecycle. The faces implementation must provide a default implementation of this class. The "el-resolver" element contains the fully qualified class name of the concrete javax.el.ELResolver implementation class that will be used during the processing of EL expressions. The "property-resolver" element contains the fully qualified class name of the concrete PropertyResolver implementation class that will be used during the processing of value binding expressions. The "variable-resolver" element contains the fully qualified class name of the concrete VariableResolver implementation class that will be used during the processing of value binding expressions. The resource-bundle element inside the application element references a java.util.ResourceBundle instance by name using the var element. ResourceBundles referenced in this manner may be returned by a call to Application.getResourceBundle() passing the current FacesContext for this request and the value of the var element below. The fully qualified class name of the java.util.ResourceBundle instance. The name by which this ResourceBundle instance is retrieved by a call to Application.getResourceBundle(). Extension element for application. It may contain implementation specific content. The "factory" element provides a mechanism to define the various Factories that comprise parts of the implementation of JavaServer Faces. For nested elements that are not specified, the JSF implementation must provide a suitable default. The "application-factory" element contains the fully qualified class name of the concrete ApplicationFactory implementation class that will be called when FactoryFinder.getFactory(APPLICATION_FACTORY) is called. The "faces-context-factory" element contains the fully qualified class name of the concrete FacesContextFactory implementation class that will be called when FactoryFinder.getFactory(FACES_CONTEXT_FACTORY) is called. The "lifecycle-factory" element contains the fully qualified class name of the concrete LifecycleFactory implementation class that will be called when FactoryFinder.getFactory(LIFECYCLE_FACTORY) is called. The "render-kit-factory" element contains the fully qualified class name of the concrete RenderKitFactory implementation class that will be called when FactoryFinder.getFactory(RENDER_KIT_FACTORY) is called. Extension element for factory. It may contain implementation specific content. The "attribute" element represents a named, typed, value associated with the parent UIComponent via the generic attributes mechanism. Attribute names must be unique within the scope of the parent (or related) component. The "attribute-name" element represents the name under which the corresponding value will be stored, in the generic attributes of the UIComponent we are related to. The "attribute-class" element represents the Java type of the value associated with this attribute name. Extension element for attribute. It may contain implementation specific content. The "component" element represents a concrete UIComponent implementation class that should be registered under the specified type identifier, along with its associated properties and attributes. Component types must be unique within the entire web application. Nested "attribute" elements identify generic attributes that are recognized by the implementation logic of this component. Nested "property" elements identify JavaBeans properties of the component class that may be exposed for manipulation via tools. The "component-type" element represents the name under which the corresponding UIComponent class should be registered. The "component-class" element represents the fully qualified class name of a concrete UIComponent implementation class. Extension element for component. It may contain implementation specific content. The "default-locale" element declares the default locale for this application instance. It must be specified as :language:[_:country:[_:variant:]] without the colons, for example "ja_JP_SJIS". The separators between the segments may be '-' or '_'. The "default-value" contains the value for the property or attribute in which this element resides. This value differs from the "suggested-value" in that the property or attribute must take the value, whereas in "suggested-value" taking the value is optional. EL expressions present within a faces config file must start with the character sequence of '#{' and end with '}'. Define the name and other design-time information for a facet that is associated with a renderer or a component. The "facet-name" element represents the facet name under which a UIComponent will be added to its parent. It must be of type "Identifier". Extension element for facet. It may contain implementation specific content. The value of from-view-id must contain one of the following values: - The exact match for a view identifier that is recognized by the the ViewHandler implementation being used (such as "/index.jsp" if you are using the default ViewHandler). - A proper prefix of a view identifier, plus a trailing "*" character. This pattern indicates that all view identifiers that match the portion of the pattern up to the asterisk will match the surrounding rule. When more than one match exists, the match with the longest pattern is selected. - An "*" character, which means that this pattern applies to all view identifiers. The "from-action" element contains an action reference expression that must have been executed (by the default ActionListener for handling application level events) in order to select the navigation rule. If not specified, this rule will be relevant no matter which action reference was executed (or if no action reference was executed). The "converter" element represents a concrete Converter implementation class that should be registered under the specified converter identifier. Converter identifiers must be unique within the entire web application. Nested "attribute" elements identify generic attributes that may be configured on the corresponding UIComponent in order to affect the operation of the Converter. Nested "property" elements identify JavaBeans properties of the Converter implementation class that may be configured to affect the operation of the Converter. "attribute" and "property" elements are intended to allow component developers to more completely describe their components to tools and users. These elements have no required runtime semantics. The "converter-id" element represents the identifier under which the corresponding Converter class should be registered. The "converter-for-class" element represents the fully qualified class name for which a Converter class will be registered. The "converter-class" element represents the fully qualified class name of a concrete Converter implementation class. Nested "attribute" elements identify generic attributes that may be configured on the corresponding UIComponent in order to affect the operation of the Converter. This attribute is primarily for design-time tools and is not specified to have any meaning at runtime. Nested "property" elements identify JavaBeans properties of the Converter implementation class that may be configured to affect the operation of the Converter. This attribute is primarily for design-time tools and is not specified to have any meaning at runtime. Extension element for converter. It may contain implementation specific content. The "lifecycle" element provides a mechanism to specify modifications to the behaviour of the default Lifecycle implementation for this web application. The "phase-listener" element contains the fully qualified class name of the concrete PhaseListener implementation class that will be registered on the Lifecycle. Extension element for lifecycle. It may contain implementation specific content. The localeType defines valid locale defined by ISO-639-1 and ISO-3166. The "locale-config" element allows the app developer to declare theĀ supported locales for this application. The "managed-bean" element represents a JavaBean, of a particular class, that will be dynamically instantiated at runtime (by the default VariableResolver implementation) if it is referenced as the first element of a value binding expression, and no corresponding bean can be identified in any scope. In addition to the creation of the managed bean, and the optional storing of it into the specified scope, the nested managed-property elements can be used to initialize the contents of settable JavaBeans properties of the created instance. The "managed-bean-name" element represents the attribute name under which a managed bean will be searched for, as well as stored (unless the "managed-bean-scope" value is "none"). The "managed-bean-class" element represents the fully qualified class name of the Java class that will be used`to instantiate a new instance if creation of the specified`managed bean is requested. The specified class must conform to standard JavaBeans conventions. In particular, it must have a public zero-arguments constructor, and zero or more public property setters. The "managed-bean-scope" element represents the scope into which a newly created instance of the specified managed bean will be stored (unless the value is "none"). Extension element for managed-bean. It may contain implementation specific content. element's body content, which includes all of the scopes normally used in a web application, plus the "none" value indicating that a created bean should not be stored into any scope. ]]> The "managed-property" element represents an individual property of a managed bean that will be configured to the specified value (or value set) if the corresponding managed bean is automatically created. The "property-name" element represents the JavaBeans property name under which the corresponding value may be stored. The "property-class" element represents the Java type of the value associated with this property name. If not specified, it can be inferred from existing classes; however, this element should be specified if the configuration file is going to be the source for generating the corresponding classes. The "map-entry" element reprsents a single key-entry pair that will be added to the computed value of a managed property of type java.util.Map. The "key" element is the String representation of a map key that will be stored in a managed property of type java.util.Map. The "map-entries' element represents a set of key-entry pairs that will be added to the computed value of a managed property of type java.util.Map. In addition, the Java class types of the key and entry values may be optionally declared. The "key-class" element defines the Java type to which each "key" element in a set of "map-entry" elements will be converted to. If omitted, "java.lang.String" is assumed. The "navigation-case" element describes a particular combination of conditions that must match for this case to be executed, and the view id of the component tree that should be selected next. The "from-outcome" element contains a logical outcome string returned by the execution of an application action method selected via an "actionRef" property (or a literal value specified by an "action" property) of a UICommand component. If specified, this rule will be relevant only if the outcome value matches this element's value. If not specified, this rule will be relevant no matter what the outcome value was. The "to-view-id" element contains the view identifier of the next view that should be displayed if this navigation rule is matched. The "navigation-rule" element represents an individual decision rule that will be utilized by the default NavigationHandler implementation to make decisions on what view should be displayed next, based on the view id being processed. Extension element for navigation-rule. It may contain implementation specific content. The "null-value" element indicates that the managed property in which we are nested will be explicitly set to null if our managed bean is automatically created. This is different from omitting the managed property element entirely, which will cause no property setter to be called for this property. The "null-value" element can only be used when the associated "property-class" identifies a Java class, not a Java primitive. The "property" element represents a JavaBean property of the Java class represented by our parent element. Property names must be unique within the scope of the Java class that is represented by the parent element, and must correspond to property names that will be recognized when performing introspection against that class via java.beans.Introspector. The "property-name" element represents the JavaBeans property name under which the corresponding value may be stored. The "property-class" element represents the Java type of the value associated with this property name. If not specified, it can be inferred from existing classes; however, this element should be specified if the configuration file is going to be the source for generating the corresponding classes. Extension element for property. It may contain implementation specific content. 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. The "referenced-bean" element represents at design time the promise that a Java object of the specified type will exist at runtime in some scope, under the specified key. This can be used by design time tools to construct user interface dialogs based on the properties of the specified class. The presence or absence of a referenced bean element has no impact on the JavaServer Faces runtime environment inside a web application. The "referenced-bean-name" element represents the attribute name under which the corresponding referenced bean may be assumed to be stored, in one of 'request', 'session', or 'application' scopes. The "referenced-bean-class" element represents the fully qualified class name of the Java class (either abstract or concrete) or Java interface implemented by the corresponding referenced bean. The "render-kit" element represents a concrete RenderKit implementation that should be registered under the specified render-kit-id. If no render-kit-id is specified, the identifier of the default RenderKit (RenderKitFactory.DEFAULT_RENDER_KIT) is assumed. The "render-kit-id" element represents an identifier for the RenderKit represented by the parent "render-kit" element. The "render-kit-class" element represents the fully qualified class name of a concrete RenderKit implementation class. The "renderer" element represents a concrete Renderer implementation class that should be registered under the specified component family and renderer type identifiers, in the RenderKit associated with the parent "render-kit" element. Combinations of component family and renderer type must be unique within the RenderKit associated with the parent "render-kit" element. Nested "attribute" elements identify generic component attributes that are recognized by this renderer. The "component-family" element represents the component family for which the Renderer represented by the parent "renderer" element will be used. The "renderer-type" element represents a renderer type identifier for the Renderer represented by the parent "renderer" element. The "renderer-class" element represents the fully qualified class name of a concrete Renderer implementation class. Extension element for renderer. It may contain implementation specific content. Extension element for render-kit. It may contain implementation specific content. The "suggested-value" contains the value for the property or attribute in which this element resides. This value is advisory only and is intended for tools to use when populating pallettes. The "supported-locale" element allows authors to declare which locales are supported in this application instance. It must be specified as :language:[_:country:[_:variant:]] without the colons, for example "ja_JP_SJIS". The separators between the segments may be '-' or '_'. The "validator" element represents a concrete Validator implementation class that should be registered under the specified validator identifier. Validator identifiers must be unique within the entire web application. Nested "attribute" elements identify generic attributes that may be configured on the corresponding UIComponent in order to affect the operation of the Validator. Nested "property" elements identify JavaBeans properties of the Validator implementation class that may be configured to affect the operation of the Validator. "attribute" and "property" elements are intended to allow component developers to more completely describe their components to tools and users. These elements have no required runtime semantics. The "validator-id" element represents the identifier under which the corresponding Validator class should be registered. The "validator-class" element represents the fully qualified class name of a concrete Validator implementation class. Nested "attribute" elements identify generic attributes that may be configured on the corresponding UIComponent in order to affect the operation of the Validator. This attribute is primarily for design-time tools and is not specified to have any meaning at runtime. Nested "property" elements identify JavaBeans properties of the Validator implementation class that may be configured to affect the operation of the Validator. This attribute is primarily for design-time tools and is not specified to have any meaning at runtime. Extension element for validator. It may contain implementation specific content. The "value" element is the String representation of a literal value to which a scalar managed property will be set, or a value binding expression ("#{...}") that will be used to calculate the required value. It will be converted as specified for the actual property type. The "value-class" element defines the Java type to which each "value" element's value will be converted to, prior to adding it to the "list-entries" list for a managed property that is a java.util.List, or a "map-entries" map for a managed property that is a java.util.Map. The "list-entries" element represents a set of initialization elements for a managed property that is a java.util.List or an array. In the former case, the "value-class" element can optionally be used to declare the Java type to which each value should be converted before adding it to the Collection. This type contains the recognized versions of faces-config supported.