| <?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" maxOccurs="unbounded" ref="handler"/> |
| <xs:element minOccurs="0" maxOccurs="1" 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" maxOccurs="1" 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="handler"> |
| <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:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="view"/> |
| <xs:enumeration value="request"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="class" use="required"/> |
| </xs:attributeGroup> |
| <xs:element name="protect"> |
| <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:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="event"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="preprocessor"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="event"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="postprocessor"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="event"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="after-login"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="event"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="before-logout"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="event"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="default-request"> |
| <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:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" ref="description"/> |
| <xs:element minOccurs="0" ref="security"/> |
| <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:attribute name="edit" default="true"> |
| <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:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| <xs:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="track-serverhit" default="true"> |
| <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="security"> |
| <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:enumeration value="false"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="auth" default="false"> |
| <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: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: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: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="event"> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.event"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.event"> |
| <xs:attribute name="type" type="xs:string" use="required"/> |
| <xs:attribute name="name" type="xs:string"/> |
| <xs:attribute name="path" type="xs:string"/> |
| <xs:attribute name="invoke" type="xs:string"/> |
| <xs:attribute name="global-transaction" default="true"> |
| <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:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="redirect-parameter"/> |
| </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:attribute name="type" use="required"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="none"/> |
| <xs:enumeration value="view"/> |
| <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: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:enumeration value="request-redirect"/> |
| <xs:enumeration value="request-redirect-noparam"/> |
| <xs:enumeration value="url"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="value" type="xs:string"/> |
| <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: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: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:attributeGroup> |
| <xs:element name="view-map"> |
| <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:attribute type="xs:string" name="page"/> |
| <xs:attribute type="xs:string" name="type" default="default"/> |
| <xs:attribute type="xs:string" name="info"/> |
| <xs:attribute type="xs:string" name="content-type"/> |
| <xs:attribute type="xs:string" name="encoding"/> |
| <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> |