| <?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. |
| --> |
| <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> |
| <xs:element name="site-conf"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="include"/> |
| <xs:element minOccurs="0" ref="description"/> |
| <xs:element minOccurs="0" ref="owner"/> |
| <xs:element minOccurs="0" ref="errorpage"/> |
| <xs:element minOccurs="0" ref="status-code"/> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="handler"/> |
| <xs:element minOccurs="0" ref="protect"/> |
| <xs:element minOccurs="0" ref="firstvisit"/> |
| <xs:element minOccurs="0" ref="preprocessor"/> |
| <xs:element minOccurs="0" ref="postprocessor"/> |
| <xs:element minOccurs="0" ref="after-login"/> |
| <xs:element minOccurs="0" ref="before-logout"/> |
| <xs:element minOccurs="0" ref="default-request"/> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="request-map"/> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="view-map"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="include"> |
| <xs:annotation> |
| <xs:documentation> |
| This includes all elements of the controller.xml file references. |
| |
| Note that if you define any of the event blocks in this file (the including file) they |
| will override (replace) the one in the included file, effectively emptying it. The event |
| blocks are: firstvisit, preprocessor, postprocessor, after-login, and before-logout. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.include"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.include"> |
| <xs:attribute type="xs:string" name="location" use="required"/> |
| </xs:attributeGroup> |
| <xs:element name="description" type="xs:string"/> |
| <xs:element name="owner" type="xs:string"/> |
| <xs:element name="errorpage" type="xs:string"/> |
| <xs:element name="status-code" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| A redirection HTTP status-code |
| If set it will override, for this whole controller, the default status-code sets in requestHandler.properties |
| |
| Most possible redirection status-codes are 301, 303 and 307. |
| 302 (the Java default) is not recommended for SEO reasons, 301 is preferred. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="handler"> |
| <xs:annotation> |
| <xs:documentation> |
| Defines a Java class which handles a specific named type (either request or view). |
| This allows different logics for processing input from requests. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.handler"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.handler"> |
| <xs:attribute type="xs:string" name="name" use="required"/> |
| <xs:attribute name="type" default="request"> |
| <xs:annotation> |
| <xs:documentation> |
| To keep it short, request is for action when view is for rendering |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="request"/> |
| <xs:enumeration value="view"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="class" use="required"/> |
| </xs:attributeGroup> |
| <xs:element name="protect"> |
| <xs:annotation> |
| <xs:documentation> |
| Mechanism used to protect from data leakage (data stolen from a login/password couple compromised). |
| It works like the grey list anti-spam feature (aka tarpitting). |
| Any error will be ignored and will not affect the requests processing flow. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.protect"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.protect"> |
| <xs:attribute type="xs:string" name="view" use="required"/> |
| </xs:attributeGroup> |
| <xs:element name="firstvisit"> |
| <xs:annotation> |
| <xs:documentation> |
| Event runs at the 1st visit and only then. |
| Any error will be ignored and will not affect the requests processing flow. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="event"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="preprocessor"> |
| <xs:annotation> |
| <xs:documentation> |
| Event runs before each request. |
| Any error will be ignored and will not affect the requests processing flow. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="event"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="postprocessor"> |
| <xs:annotation> |
| <xs:documentation> |
| Event runs after each request. |
| Any error will be ignored and will not affect the requests processing flow. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="event"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="after-login"> |
| <xs:annotation> |
| <xs:documentation> |
| Event runs after login and only then. |
| Any error will be ignored and will not affect the requests processing flow. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="event"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="before-logout"> |
| <xs:annotation> |
| <xs:documentation> |
| Event runs before logout and only then. |
| Any error will be ignored and will not affect the requests processing flow. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="event"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="default-request"> |
| <xs:annotation> |
| <xs:documentation> |
| If a request cannot be called, or is not defined, the default-request is used |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.default-request"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.default-request"> |
| <xs:attribute type="xs:string" name="request-uri" use="required"/> |
| </xs:attributeGroup> |
| <xs:element name="request-map"> |
| <xs:annotation> |
| <xs:documentation> |
| Place where are defined the elements of a request. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" ref="description"/> |
| <xs:element minOccurs="0" ref="security"/> |
| <xs:element minOccurs="0" ref="metric"/> |
| <xs:element minOccurs="0" ref="event"/> |
| <xs:element maxOccurs="unbounded" ref="response"/> |
| </xs:sequence> |
| <xs:attributeGroup ref="attlist.request-map"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.request-map"> |
| <xs:attribute type="xs:string" name="uri" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| The name of this request. This will be the name used to access the request. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="edit" default="true"> |
| <xs:annotation> |
| <xs:documentation> |
| Reserved for future use (not used yet). |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="track-visit" default="true"> |
| <xs:annotation> |
| <xs:documentation> |
| Allow or not to track first visit (related to firstvisit preprocessor). |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"> |
| <xs:annotation> |
| <xs:documentation> |
| Don't track as first visit (related to firstvisit preprocessor). |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="track-serverhit" default="true"> |
| <xs:annotation> |
| <xs:documentation> |
| Allow or not to track statistics. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"> |
| <xs:annotation> |
| <xs:documentation> |
| Don't track in the statistics. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| </xs:attributeGroup> |
| <xs:element name="security"> |
| <xs:annotation> |
| <xs:documentation> |
| Define the security of the request-map, using https and auth boolean attributes. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.security"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.security"> |
| <xs:attribute name="https" default="false"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"> |
| <xs:annotation> |
| <xs:documentation> |
| Redirects to/uses/generates the secured HTTPS protocol if necessary and possible |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="auth" default="false"> |
| <xs:annotation> |
| <xs:documentation> |
| If auth=true, when you hit the request if you are not logged in you will be forwarded to the login page. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="cert" default="false"> |
| <xs:annotation> |
| <xs:documentation> |
| It true, check for HTTPS client (x.509) security. |
| If the request is not secured throws an exception |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="external-view" default="true"> |
| <xs:annotation> |
| <xs:documentation> |
| If false, prevent to pass a view through the url ("chaining" it after the request, |
| like control/request/view in an FTL file). |
| Default to true. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="direct-request" default="true"> |
| <xs:annotation> |
| <xs:documentation> |
| If false the request can only be accessed in a chained request, default to true. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| </xs:attributeGroup> |
| <xs:element name="metric"> |
| <xs:annotation> |
| <xs:documentation> |
| Calculate and maintain a moving average response time for a Request or Event. Request Metrics can be used |
| for monitoring and reporting, Event Metrics only for reporting. Request Metrics can also be used to trigger an alternate |
| response if the optional threshold attribute is used. |
| |
| The metric works by gathering statistics until a configurable maximum is reached (number of |
| requests or elapsed time), then the average is calculated. A smoothing factor is used to |
| smooth differences between calculations. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:attribute name="name" type="xs:string" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| Each metric must have a unique name. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="estimation-size" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| Positive integer number of requests to include in the metrics calculation. Defaults to "100". |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="estimation-time" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| Positive integer number of milliseconds to include in the metrics calculation. Defaults to "1000". |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="smoothing" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| Positive decimal smoothing factor - used to smooth the differences between calculations. A value of "1" disables smoothing. Defaults to "0.7". |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="threshold" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| The metric threshold in milliseconds. If the average response time exceeds this setting, |
| then a "threshold-exceeded" response code will be generated. That response code can be used |
| in a response element. The threshold check will ignore the first three requests - to give |
| the metric a chance to stablize after startup. A value of "0.0" disables the threshold. |
| Defaults to "0.0". |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="event"> |
| <xs:annotation> |
| <xs:documentation> |
| Defines a piece of code (see handlers) which will handles the request need. |
| Return any string which is then used to route to different responses. |
| Only one event by request-map. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" ref="metric"/> |
| </xs:sequence> |
| <xs:attributeGroup ref="attlist.event"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.event"> |
| <xs:attribute name="type" type="xs:string" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| There are as much as types (of type request) as available defined and accessible event handlers. |
| Most used are java, service, service-multi, simple and bsf (or groovy). |
| A most comprehensive list can be found in the common-controller. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="name" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| Event name, mostly used with special events |
| (firstvisit, |
| preprocessor, |
| postprocessor, |
| after-login, |
| before-logout) |
| where the name allows to differentiate them. |
| Most of the time reques-maps, which have only 1 event, don't use it. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="path" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| The path to the class or XML file containing this event. |
| Leave empty for services, except if you want to run it as a job, then use "async" |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="invoke" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| The name of the method or service to be run. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="global-transaction" default="true"> |
| <xs:annotation> |
| <xs:documentation> |
| For service-multi, defines if the event should be wrapped in a transaction, default to true |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| </xs:attributeGroup> |
| <xs:element name="response"> |
| <xs:annotation> |
| <xs:documentation> |
| You can have one response for each possible return code from the event. |
| An event can return any string, and that string can be used to route to different responses. |
| At least one reponse by request-map. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="redirect-parameter"> |
| <xs:annotation> |
| <xs:documentation> |
| Defines a possible parameter to redirect |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| </xs:sequence> |
| <xs:attributeGroup ref="attlist.response"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.response"> |
| <xs:attribute name="name" type="xs:string" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| The name of the response, wich also matches the string returned by the event |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="type" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| One of the possible types between: |
| none, |
| view, |
| view-last, |
| view-last-noparam, |
| view-home, |
| request, |
| request-redirect, |
| request-redirect-noparam, |
| url, |
| cross-redirect |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="none"> |
| <xs:annotation> |
| <xs:documentation> |
| This is used in situations where the event will actually |
| be generating the response. If you have an event that |
| returns a binary download for example, you would use |
| a response of type=none, so that the control servlet |
| doesn't try to render anything and send it down to the |
| client. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="view"> |
| <xs:annotation> |
| <xs:documentation> |
| Send to a view for final rendering |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="view-last"> |
| <xs:annotation> |
| <xs:documentation> |
| Will use the view from the last request unless there |
| is a saved from some previous request (using the save-last-view |
| attribute). Use the value attribute to specify a default view |
| in case no previous view can be retrieved. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="view-last-noparam"> |
| <xs:annotation> |
| <xs:documentation> |
| Same than view-last but no parameters are redirect |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="view-home"> |
| <xs:annotation> |
| <xs:documentation> |
| Will use the view from the last saved 'home' position |
| (using the save-home-view attribute). |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="request"> |
| <xs:annotation> |
| <xs:documentation> |
| Internally chains to another request |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="request-redirect"> |
| <xs:annotation> |
| <xs:documentation> |
| Send a redirect down to the browser telling it to go to the new request. |
| Automatically redirect all current request parameters to the new request or only redirected parameters if specified. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="request-redirect-noparam"> |
| <xs:annotation> |
| <xs:documentation> |
| Send a redirect down to the browser telling it to go to the new request. |
| No current request parameters are sent to the new request, nor redirected parameters if specified. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="url"> |
| <xs:annotation> |
| <xs:documentation> |
| Any URL, relative or absolute. Redirected parameters are not used, you can put them in the url. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="cross-redirect"> |
| <xs:annotation> |
| <xs:documentation> |
| Works like URL but you can also pass redirected parameters. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="value" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| Depending on the type of response, will either |
| be the view or request name (ie view-map-name or request-map URI). |
| |
| Can be an URL. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="save-last-view" default="false"> |
| <xs:annotation> |
| <xs:documentation> |
| Saves the last (previous) request's view for future use, generally |
| with the view-last type of response. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="save-current-view" default="false"> |
| <xs:annotation> |
| <xs:documentation> |
| Saves the current request's view for future use, generally with |
| the view-last type of response. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="save-home-view" default="false"> |
| <xs:annotation> |
| <xs:documentation> |
| Saves the current request's view for future use, generally with |
| the view-home type of response. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="status-code" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| A redirection HTTP status-code |
| If set it will override, for this request, the default status-code sets in requestHandler.properties |
| and the possible status-code sets at the controller level (included controllers inclusive) |
| |
| Most possible redirection status-codes are 301, 303 and 307. |
| 302 (the Java default) is not recommended for SEO reasons, 301 is preferred. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:attributeGroup> |
| <xs:element name="redirect-parameter"> |
| <xs:annotation> |
| <xs:documentation> |
| Adds a parameter with the given name to the redirect. Finds value in a |
| request attribute if exists, or a request parameter if no attribute is found. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.redirect-parameter"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.redirect-parameter"> |
| <xs:attribute type="xs:string" name="name" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| Name of the parameter to redirect |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="from" use="optional"> |
| <xs:annotation> |
| <xs:documentation> |
| If specified used instead of the value of name for the key to find |
| a request attribute or parameter. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="value" use="optional"> |
| <xs:annotation> |
| <xs:documentation> |
| Set a string value to the parameter. |
| </xs:documentation> |
| </xs:annotation> |
| |
| </xs:attribute> |
| </xs:attributeGroup> |
| <xs:element name="view-map"> |
| <xs:annotation> |
| <xs:documentation> |
| Place where are defined the elements of a view. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" ref="description"/> |
| </xs:sequence> |
| <xs:attributeGroup ref="attlist.view-map"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.view-map"> |
| <xs:attribute type="xs:string" name="name" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| The name of this view. This will be the name used to access the view. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="page"> |
| <xs:annotation> |
| <xs:documentation> |
| The page mapped to this view. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="type" default="default"> |
| <xs:annotation> |
| <xs:documentation> |
| The name of the view handler that will render the output: screen, screenfop, ftl etc... |
| A most comprehensive list can be found in the common-controller. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="info"> |
| <xs:annotation> |
| <xs:documentation> |
| Extended information passed to the view handler. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="content-type"> |
| <xs:annotation> |
| <xs:documentation> |
| Content-type in the HTML sense |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="encoding"> |
| <xs:annotation> |
| <xs:documentation> |
| Charset in the HTML sense. By default "text/html" is used. |
| If the encoding is "none" then no charset will be used. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="no-cache" default="false"> |
| <xs:annotation> |
| <xs:documentation> |
| Send no-cache headers if set to true. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| </xs:attributeGroup> |
| </xs:schema> |