1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3
4    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
5
6    This program and the accompanying materials are made available under the
7    terms of the Eclipse Public License v. 2.0, which is available at
8    http://www.eclipse.org/legal/epl-2.0.
9
10    This Source Code may also be made available under the following Secondary
11    Licenses when the conditions for such availability set forth in the
12    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
13    version 2 with the GNU Classpath Exception, which is available at
14    https://www.gnu.org/software/classpath/license.html.
15
16    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
17
18-->
19
20<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
21	    targetNamespace="http://java.sun.com/xml/ns/j2ee"
22	    xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
23	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
24	    elementFormDefault="qualified"
25	    attributeFormDefault="unqualified"
26	    version="2.0">
27  <xsd:annotation>
28    <xsd:documentation>
29      @(#)jsp_2_0.xsds	1.17 03/18/03
30    </xsd:documentation>
31  </xsd:annotation>
32
33  <xsd:annotation>
34    <xsd:documentation>
35
36      This is the XML Schema for the JSP 2.0 deployment descriptor
37      types.  The JSP 2.0 schema contains all the special
38      structures and datatypes that are necessary to use JSP files
39      from a web application.
40
41      The contents of this schema is used by the web-app_2_4.xsd
42      file to define JSP specific content.
43
44    </xsd:documentation>
45  </xsd:annotation>
46
47  <xsd:annotation>
48    <xsd:documentation>
49
50      The following conventions apply to all J2EE
51      deployment descriptor elements unless indicated otherwise.
52
53      - In elements that specify a pathname to a file within the
54	same JAR file, relative filenames (i.e., those not
55	starting with "/") are considered relative to the root of
56	the JAR file's namespace.  Absolute filenames (i.e., those
57	starting with "/") also specify names in the root of the
58	JAR file's namespace.  In general, relative names are
59	preferred.  The exception is .war files where absolute
60	names are preferred for consistency with the Servlet API.
61
62    </xsd:documentation>
63  </xsd:annotation>
64
65  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
66
67
68<!-- **************************************************** -->
69
70  <xsd:complexType name="jsp-configType">
71    <xsd:annotation>
72      <xsd:documentation>
73
74	The jsp-configType is used to provide global configuration
75	information for the JSP files in a web application. It has
76	two subelements, taglib and jsp-property-group.
77
78      </xsd:documentation>
79    </xsd:annotation>
80
81    <xsd:sequence>
82      <xsd:element name="taglib"
83		   type="j2ee:taglibType"
84		   minOccurs="0"
85		   maxOccurs="unbounded"/>
86      <xsd:element name="jsp-property-group"
87		   type="j2ee:jsp-property-groupType"
88		   minOccurs="0"
89		   maxOccurs="unbounded"/>
90    </xsd:sequence>
91    <xsd:attribute name="id" type="xsd:ID"/>
92  </xsd:complexType>
93
94<!-- **************************************************** -->
95
96  <xsd:complexType name="jsp-fileType">
97    <xsd:annotation>
98      <xsd:documentation>
99
100	The jsp-file element contains the full path to a JSP file
101	within the web application beginning with a `/'.
102
103      </xsd:documentation>
104    </xsd:annotation>
105
106    <xsd:simpleContent>
107      <xsd:restriction base="j2ee:pathType"/>
108    </xsd:simpleContent>
109  </xsd:complexType>
110
111<!-- **************************************************** -->
112
113  <xsd:complexType name="jsp-property-groupType">
114    <xsd:annotation>
115      <xsd:documentation>
116
117	The jsp-property-groupType is used to group a number of
118	files so they can be given global property information.
119	All files so described are deemed to be JSP files.  The
120	following additional properties can be described:
121
122	    - Control whether EL is ignored
123	    - Control whether scripting elements are invalid
124	    - Indicate pageEncoding information.
125	    - Indicate that a resource is a JSP document (XML)
126	    - Prelude and Coda automatic includes.
127
128      </xsd:documentation>
129    </xsd:annotation>
130
131    <xsd:sequence>
132      <xsd:group ref="j2ee:descriptionGroup"/>
133      <xsd:element name="url-pattern"
134		   type="j2ee:url-patternType"
135		   maxOccurs="unbounded"/>
136      <xsd:element name="el-ignored"
137		   type="j2ee:true-falseType"
138		   minOccurs="0">
139	<xsd:annotation>
140	  <xsd:documentation>
141
142	    Can be used to easily set the isELIgnored
143	    property of a group of JSP pages.  By default, the
144	    EL evaluation is enabled for Web Applications using
145	    a Servlet 2.4 or greater web.xml, and disabled
146	    otherwise.
147
148	  </xsd:documentation>
149	</xsd:annotation>
150      </xsd:element>
151      <xsd:element name="page-encoding"
152		   type="j2ee:string"
153		   minOccurs="0">
154	<xsd:annotation>
155	  <xsd:documentation>
156
157	    The valid values of page-encoding are those of the
158	    pageEncoding page directive.  It is a
159	    translation-time error to name different encodings
160	    in the pageEncoding attribute of the page directive
161	    of a JSP page and in a JSP configuration element
162	    matching the page.  It is also a translation-time
163	    error to name different encodings in the prolog
164	    or text declaration of a document in XML syntax and
165	    in a JSP configuration element matching the document.
166	    It is legal to name the same encoding through
167	    mulitple mechanisms.
168
169	  </xsd:documentation>
170	</xsd:annotation>
171      </xsd:element>
172      <xsd:element name="scripting-invalid"
173		   type="j2ee:true-falseType"
174		   minOccurs="0">
175	<xsd:annotation>
176	  <xsd:documentation>
177
178	    Can be used to easily disable scripting in a
179	    group of JSP pages.  By default, scripting is
180	    enabled.
181
182	  </xsd:documentation>
183	</xsd:annotation>
184      </xsd:element>
185      <xsd:element name="is-xml"
186		   type="j2ee:true-falseType"
187		   minOccurs="0">
188	<xsd:annotation>
189	  <xsd:documentation>
190
191	    If true, denotes that the group of resources
192	    that match the URL pattern are JSP documents,
193	    and thus must be interpreted as XML documents.
194	    If false, the resources are assumed to not
195	    be JSP documents, unless there is another
196	    property group that indicates otherwise.
197
198	  </xsd:documentation>
199	</xsd:annotation>
200      </xsd:element>
201      <xsd:element name="include-prelude"
202		   type="j2ee:pathType"
203		   minOccurs="0"
204		   maxOccurs="unbounded">
205	<xsd:annotation>
206	  <xsd:documentation>
207
208	    The include-prelude element is a context-relative
209	    path that must correspond to an element in the
210	    Web Application.  When the element is present,
211	    the given path will be automatically included (as
212	    in an include directive) at the beginning of each
213	    JSP page in this jsp-property-group.
214
215	  </xsd:documentation>
216	</xsd:annotation>
217      </xsd:element>
218      <xsd:element name="include-coda"
219		   type="j2ee:pathType"
220		   minOccurs="0"
221		   maxOccurs="unbounded">
222	<xsd:annotation>
223	  <xsd:documentation>
224
225	    The include-coda element is a context-relative
226	    path that must correspond to an element in the
227	    Web Application.  When the element is present,
228	    the given path will be automatically included (as
229	    in an include directive) at the end of each
230	    JSP page in this jsp-property-group.
231
232	  </xsd:documentation>
233	</xsd:annotation>
234      </xsd:element>
235    </xsd:sequence>
236    <xsd:attribute name="id" type="xsd:ID"/>
237  </xsd:complexType>
238
239<!-- **************************************************** -->
240
241  <xsd:complexType name="taglibType">
242    <xsd:annotation>
243      <xsd:documentation>
244
245	The taglibType defines the syntax for declaring in
246	the deployment descriptor that a tag library is
247	available to the application.  This can be done
248	to override implicit map entries from TLD files and
249	from the container.
250
251      </xsd:documentation>
252    </xsd:annotation>
253
254    <xsd:sequence>
255      <xsd:element name="taglib-uri"
256		   type="j2ee:string">
257	<xsd:annotation>
258	  <xsd:documentation>
259
260	    A taglib-uri element describes a URI identifying a
261	    tag library used in the web application.  The body
262	    of the taglib-uri element may be either an
263	    absolute URI specification, or a relative URI.
264	    There should be no entries in web.xml with the
265	    same taglib-uri value.
266
267	  </xsd:documentation>
268	</xsd:annotation>
269      </xsd:element>
270
271      <xsd:element name="taglib-location"
272		   type="j2ee:pathType">
273	<xsd:annotation>
274	  <xsd:documentation>
275
276	    the taglib-location element contains the location
277	    (as a resource relative to the root of the web
278	    application) where to find the Tag Library
279	    Description file for the tag library.
280
281	  </xsd:documentation>
282	</xsd:annotation>
283      </xsd:element>
284
285    </xsd:sequence>
286    <xsd:attribute name="id" type="xsd:ID"/>
287  </xsd:complexType>
288
289</xsd:schema>
290
291