blob: 4a25aedfd94c47c2c4fc18a8777f5ab8cf21a8f1 [file] [log] [blame]
<?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.
-->
<!-- $Rev: 774466 $ $Date: 2009-05-13 11:18:23 -0700 (Wed, 13 May 2009) $ -->
<xs:schema
xmlns:web="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"
targetNamespace="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"
xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2"
xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0"
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"
xmlns:jaspi="http://geronimo.apache.org/xml/ns/geronimo-jaspi"
xmlns:ee="http://java.sun.com/xml/ns/persistence"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="1.0">
<xs:import namespace="http://geronimo.apache.org/xml/ns/naming-1.2" schemaLocation="geronimo-naming-1.2.xsd"/>
<xs:import namespace="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" schemaLocation="geronimo-application-2.0.xsd"/>
<xs:import namespace="http://geronimo.apache.org/xml/ns/deployment-1.2" schemaLocation="geronimo-module-1.2.xsd"/>
<xs:import namespace="http://java.sun.com/xml/ns/persistence" schemaLocation="http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"/>
<xs:import namespace="http://geronimo.apache.org/xml/ns/geronimo-jaspi" schemaLocation="geronimo-jaspi.xsd"/>
<xs:element name="web-app" type="web:web-appType"/>
<xs:annotation>
<xs:documentation>
The web-app element is the root of the deployment descriptor for a Geronimo web
application. Note that the sub-elements of this element should be as in the given order because it is
defined as a sequence.
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
This group keeps the usage of the contained JNDI environment
reference elements consistent across J2EE deployment descriptors.
</xs:documentation>
</xs:annotation>
<xs:complexType name="web-appType">
<xs:sequence>
<xs:element ref="sys:environment" minOccurs="0">
<xs:annotation>
<xs:documentation>
This is the first part of the URL used to access the web application.
For example context-root of "Sample-App" will have URL of
http://host:port/Sample-App" and a context-root of "/" would be make this the default web application to the server.
If the web application is packaged as an EAR that can use application context
in the "application.xml". This element is necessary unless you want context root to default to the WAR
name.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="context-root" type="xs:string" minOccurs="0"/>
<xs:element name="work-dir" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
This is the work directory that will be used by this application.
For Jetty this will be relative to jetty home which is var/jetty
by default.
For Tomcat this will be relative to "catalina.home".
</xs:documentation>
</xs:annotation>
</xs:element>
<!--<xs:element name="context-priority-classloader" type="xs:boolean" minOccurs="0"/>-->
<xs:element ref="naming:web-container" minOccurs="0"/>
<xs:element name="container-config" type="web:container-configType" minOccurs="0">
<xs:annotation>
<xs:documentation>
Geronimo supports both Jetty and Tomcat web containers. This element is
for a web application needs to take container specific settings. It can hold either a Tomcat element or a Jetty element or both.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:group ref="naming:jndiEnvironmentRefsGroup"/>
<xs:element ref="naming:message-destination" minOccurs="0" maxOccurs="unbounded"/>
<xs:sequence minOccurs="0">
<xs:element name="security-realm-name" type="xs:string"/>
<xs:element name="authentication" type="web:authenticationType" minOccurs="0">
<xs:annotation>
<xs:documentation>
The authentication element provides configuration for a specific
jaspi AuthConfigProvider, ServerAuthConfig, ServerAuthContext, or ServerAuthModule
to be used for authentication rather than a standard authentication method configured
in web.xml.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="app:security" minOccurs="0"/>
</xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="sys:service" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Reference to abstract service element defined in imported
"geronimo-module-1.2.xsd"
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ee:persistence"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="authenticationType">
<xs:choice minOccurs="0">
<xs:element ref="jaspi:configProvider"/>
<xs:element ref="jaspi:serverAuthConfig"/>
<xs:element ref="jaspi:serverAuthContext"/>
<xs:element ref="jaspi:serverAuthModule"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="container-configType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>