blob: 6a99f641fbdfe3cee3dfea5d32856862d62c9805 [file] [log] [blame]
Cheng Tang697ce242014-04-27 16:18:17 +08001<?xml version="1.0" encoding="UTF-8"?>
2<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
3 targetNamespace="http://java.sun.com/xml/ns/j2ee"
4 xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
5 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
6 elementFormDefault="qualified"
7 attributeFormDefault="unqualified"
8 version="2.4">
9 <xsd:annotation>
10 <xsd:documentation>
11 @(#)web-app_2_4.xsds 1.60 03/08/26
12 </xsd:documentation>
13 </xsd:annotation>
14
15 <xsd:annotation>
16 <xsd:documentation>
17
18 Copyright 2003 Sun Microsystems, Inc., 901 San Antonio
19 Road, Palo Alto, California 94303, U.S.A. All rights
20 reserved.
21
22 Sun Microsystems, Inc. has intellectual property rights
23 relating to technology described in this document. In
24 particular, and without limitation, these intellectual
25 property rights may include one or more of the U.S. patents
26 listed at http://www.sun.com/patents and one or more
27 additional patents or pending patent applications in the
28 U.S. and other countries.
29
30 This document and the technology which it describes are
31 distributed under licenses restricting their use, copying,
32 distribution, and decompilation. No part of this document
33 may be reproduced in any form by any means without prior
34 written authorization of Sun and its licensors, if any.
35
36 Third-party software, including font technology, is
37 copyrighted and licensed from Sun suppliers.
38
39 Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
40 JavaServer Pages, Enterprise JavaBeans and the Java Coffee
41 Cup logo are trademarks or registered trademarks of Sun
42 Microsystems, Inc. in the U.S. and other countries.
43
44 Federal Acquisitions: Commercial Software - Government Users
45 Subject to Standard License Terms and Conditions.
46
47 </xsd:documentation>
48 </xsd:annotation>
49
50 <xsd:annotation>
51 <xsd:documentation>
52 <![CDATA[
53
54 This is the XML Schema for the Servlet 2.4 deployment descriptor.
55 The deployment descriptor must be named "WEB-INF/web.xml" in the
56 web application's war file. All Servlet deployment descriptors
57 must indicate the web application schema by using the J2EE
58 namespace:
59
60 http://java.sun.com/xml/ns/j2ee
61
62 and by indicating the version of the schema by
63 using the version element as shown below:
64
65 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
66 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
67 xsi:schemaLocation="..."
68 version="2.4">
69 ...
70 </web-app>
71
72 The instance documents may indicate the published version of
73 the schema using the xsi:schemaLocation attribute for J2EE
74 namespace with the following location:
75
76 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
77
78 ]]>
79 </xsd:documentation>
80 </xsd:annotation>
81
82 <xsd:annotation>
83 <xsd:documentation>
84
85 The following conventions apply to all J2EE
86 deployment descriptor elements unless indicated otherwise.
87
88 - In elements that specify a pathname to a file within the
89 same JAR file, relative filenames (i.e., those not
90 starting with "/") are considered relative to the root of
91 the JAR file's namespace. Absolute filenames (i.e., those
92 starting with "/") also specify names in the root of the
93 JAR file's namespace. In general, relative names are
94 preferred. The exception is .war files where absolute
95 names are preferred for consistency with the Servlet API.
96
97 </xsd:documentation>
98 </xsd:annotation>
99
100 <xsd:include schemaLocation="http://java.sun.com/xml/ns/j2ee/j2ee_1_4.xsd"/>
101 <xsd:include schemaLocation="http://java.sun.com/xml/ns/j2ee/jsp_2_0.xsd"/>
102
103
104<!-- **************************************************** -->
105
106
107 <xsd:element name="web-app" type="j2ee:web-appType">
108 <xsd:annotation>
109 <xsd:documentation>
110
111 The web-app element is the root of the deployment
112 descriptor for a web application. Note that the sub-elements
113 of this element can be in the arbitrary order. Because of
114 that, the multiplicity of the elements of distributable,
115 session-config, welcome-file-list, jsp-config, login-config,
116 and locale-encoding-mapping-list was changed from "?" to "*"
117 in this schema. However, the deployment descriptor instance
118 file must not contain multiple elements of session-config,
119 jsp-config, and login-config. When there are multiple elements of
120 welcome-file-list or locale-encoding-mapping-list, the container
121 must concatinate the element contents. The multiple occurance
122 of the element distributable is redundant and the container
123 treats that case exactly in the same way when there is only
124 one distributable.
125
126 </xsd:documentation>
127 </xsd:annotation>
128
129 <xsd:unique name="web-app-servlet-name-uniqueness">
130 <xsd:annotation>
131 <xsd:documentation>
132
133 The servlet element contains the name of a servlet.
134 The name must be unique within the web application.
135
136 </xsd:documentation>
137 </xsd:annotation>
138 <xsd:selector xpath="j2ee:servlet"/>
139 <xsd:field xpath="j2ee:servlet-name"/>
140 </xsd:unique>
141
142 <xsd:unique name="web-app-filter-name-uniqueness">
143 <xsd:annotation>
144 <xsd:documentation>
145
146 The filter element contains the name of a filter.
147 The name must be unique within the web application.
148
149 </xsd:documentation>
150 </xsd:annotation>
151 <xsd:selector xpath="j2ee:filter"/>
152 <xsd:field xpath="j2ee:filter-name"/>
153 </xsd:unique>
154
155 <xsd:unique name="web-app-ejb-local-ref-name-uniqueness">
156 <xsd:annotation>
157 <xsd:documentation>
158
159 The ejb-local-ref-name element contains the name of an EJB
160 reference. The EJB reference is an entry in the web
161 application's environment and is relative to the
162 java:comp/env context. The name must be unique within
163 the web application.
164
165 It is recommended that name is prefixed with "ejb/".
166
167 </xsd:documentation>
168 </xsd:annotation>
169 <xsd:selector xpath="j2ee:ejb-local-ref"/>
170 <xsd:field xpath="j2ee:ejb-ref-name"/>
171 </xsd:unique>
172
173 <xsd:unique name="web-app-ejb-ref-name-uniqueness">
174 <xsd:annotation>
175 <xsd:documentation>
176
177 The ejb-ref-name element contains the name of an EJB
178 reference. The EJB reference is an entry in the web
179 application's environment and is relative to the
180 java:comp/env context. The name must be unique within
181 the web application.
182
183 It is recommended that name is prefixed with "ejb/".
184
185 </xsd:documentation>
186 </xsd:annotation>
187 <xsd:selector xpath="j2ee:ejb-ref"/>
188 <xsd:field xpath="j2ee:ejb-ref-name"/>
189 </xsd:unique>
190
191 <xsd:unique name="web-app-resource-env-ref-uniqueness">
192 <xsd:annotation>
193 <xsd:documentation>
194
195 The resource-env-ref-name element specifies the name of
196 a resource environment reference; its value is the
197 environment entry name used in the web application code.
198 The name is a JNDI name relative to the java:comp/env
199 context and must be unique within a web application.
200
201 </xsd:documentation>
202 </xsd:annotation>
203 <xsd:selector xpath="j2ee:resource-env-ref"/>
204 <xsd:field xpath="j2ee:resource-env-ref-name"/>
205 </xsd:unique>
206
207 <xsd:unique name="web-app-message-destination-ref-uniqueness">
208 <xsd:annotation>
209 <xsd:documentation>
210
211 The message-destination-ref-name element specifies the name of
212 a message destination reference; its value is the
213 environment entry name used in the web application code.
214 The name is a JNDI name relative to the java:comp/env
215 context and must be unique within a web application.
216
217 </xsd:documentation>
218 </xsd:annotation>
219 <xsd:selector xpath="j2ee:message-destination-ref"/>
220 <xsd:field xpath="j2ee:message-destination-ref-name"/>
221 </xsd:unique>
222
223 <xsd:unique name="web-app-res-ref-name-uniqueness">
224 <xsd:annotation>
225 <xsd:documentation>
226
227 The res-ref-name element specifies the name of a
228 resource manager connection factory reference. The name
229 is a JNDI name relative to the java:comp/env context.
230 The name must be unique within a web application.
231
232 </xsd:documentation>
233 </xsd:annotation>
234 <xsd:selector xpath="j2ee:resource-ref"/>
235 <xsd:field xpath="j2ee:res-ref-name"/>
236 </xsd:unique>
237
238 <xsd:unique name="web-app-env-entry-name-uniqueness">
239 <xsd:annotation>
240 <xsd:documentation>
241
242 The env-entry-name element contains the name of a web
243 application's environment entry. The name is a JNDI
244 name relative to the java:comp/env context. The name
245 must be unique within a web application.
246
247 </xsd:documentation>
248 </xsd:annotation>
249
250 <xsd:selector xpath="j2ee:env-entry"/>
251 <xsd:field xpath="j2ee:env-entry-name"/>
252 </xsd:unique>
253
254 <xsd:key name="web-app-role-name-key">
255 <xsd:annotation>
256 <xsd:documentation>
257
258 A role-name-key is specified to allow the references
259 from the security-role-refs.
260
261 </xsd:documentation>
262 </xsd:annotation>
263 <xsd:selector xpath="j2ee:security-role"/>
264 <xsd:field xpath="j2ee:role-name"/>
265 </xsd:key>
266
267 <xsd:keyref name="web-app-role-name-references"
268 refer="j2ee:web-app-role-name-key">
269 <xsd:annotation>
270 <xsd:documentation>
271
272 The keyref indicates the references from
273 security-role-ref to a specified role-name.
274
275 </xsd:documentation>
276 </xsd:annotation>
277 <xsd:selector xpath="j2ee:servlet/j2ee:security-role-ref"/>
278 <xsd:field xpath="j2ee:role-link"/>
279 </xsd:keyref>
280 </xsd:element>
281
282
283<!-- **************************************************** -->
284
285 <xsd:complexType name="auth-constraintType">
286 <xsd:annotation>
287 <xsd:documentation>
288
289 The auth-constraintType indicates the user roles that
290 should be permitted access to this resource
291 collection. The role-name used here must either correspond
292 to the role-name of one of the security-role elements
293 defined for this web application, or be the specially
294 reserved role-name "*" that is a compact syntax for
295 indicating all roles in the web application. If both "*"
296 and rolenames appear, the container interprets this as all
297 roles. If no roles are defined, no user is allowed access
298 to the portion of the web application described by the
299 containing security-constraint. The container matches
300 role names case sensitively when determining access.
301
302 </xsd:documentation>
303 </xsd:annotation>
304
305 <xsd:sequence>
306 <xsd:element name="description"
307 type="j2ee:descriptionType"
308 minOccurs="0" maxOccurs="unbounded"/>
309 <xsd:element name="role-name"
310 type="j2ee:role-nameType"
311 minOccurs="0" maxOccurs="unbounded"/>
312 </xsd:sequence>
313 <xsd:attribute name="id" type="xsd:ID"/>
314 </xsd:complexType>
315
316<!-- **************************************************** -->
317
318 <xsd:complexType name="auth-methodType">
319 <xsd:annotation>
320 <xsd:documentation>
321
322 The auth-methodType is used to configure the authentication
323 mechanism for the web application. As a prerequisite to
324 gaining access to any web resources which are protected by
325 an authorization constraint, a user must have authenticated
326 using the configured mechanism. Legal values are "BASIC",
327 "DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific
328 authentication scheme.
329
330 Used in: login-config
331
332 </xsd:documentation>
333 </xsd:annotation>
334
335 <xsd:simpleContent>
336 <xsd:restriction base="j2ee:string"/>
337 </xsd:simpleContent>
338 </xsd:complexType>
339
340<!-- **************************************************** -->
341
342 <xsd:complexType name="dispatcherType">
343 <xsd:annotation>
344 <xsd:documentation>
345
346 The dispatcher has four legal values: FORWARD, REQUEST, INCLUDE,
347 and ERROR. A value of FORWARD means the Filter will be applied
348 under RequestDispatcher.forward() calls. A value of REQUEST
349 means the Filter will be applied under ordinary client calls to
350 the path or servlet. A value of INCLUDE means the Filter will be
351 applied under RequestDispatcher.include() calls. A value of
352 ERROR means the Filter will be applied under the error page
353 mechanism. The absence of any dispatcher elements in a
354 filter-mapping indicates a default of applying filters only under
355 ordinary client calls to the path or servlet.
356
357 </xsd:documentation>
358 </xsd:annotation>
359
360 <xsd:simpleContent>
361 <xsd:restriction base="j2ee:string">
362 <xsd:enumeration value="FORWARD"/>
363 <xsd:enumeration value="INCLUDE"/>
364 <xsd:enumeration value="REQUEST"/>
365 <xsd:enumeration value="ERROR"/>
366 </xsd:restriction>
367 </xsd:simpleContent>
368 </xsd:complexType>
369
370<!-- **************************************************** -->
371
372 <xsd:simpleType name="encodingType">
373 <xsd:annotation>
374 <xsd:documentation>
375
376 The encodingType defines IANA character sets.
377
378 </xsd:documentation>
379 </xsd:annotation>
380
381 <xsd:restriction base="xsd:string">
382 <xsd:pattern value="[^\s]+"/>
383 </xsd:restriction>
384 </xsd:simpleType>
385
386<!-- **************************************************** -->
387
388 <xsd:complexType name="error-codeType">
389 <xsd:annotation>
390 <xsd:documentation>
391
392 The error-code contains an HTTP error code, ex: 404
393
394 Used in: error-page
395
396 </xsd:documentation>
397 </xsd:annotation>
398
399 <xsd:simpleContent>
400 <xsd:restriction base="j2ee:xsdPositiveIntegerType">
401 <xsd:pattern value="\d{3}"/>
402 <xsd:attribute name="id" type="xsd:ID"/>
403 </xsd:restriction>
404 </xsd:simpleContent>
405 </xsd:complexType>
406
407<!-- **************************************************** -->
408
409 <xsd:complexType name="error-pageType">
410 <xsd:annotation>
411 <xsd:documentation>
412
413 The error-pageType contains a mapping between an error code
414 or exception type to the path of a resource in the web
415 application.
416
417 Used in: web-app
418
419 </xsd:documentation>
420 </xsd:annotation>
421
422 <xsd:sequence>
423 <xsd:choice>
424 <xsd:element name="error-code"
425 type="j2ee:error-codeType"/>
426
427 <xsd:element name="exception-type"
428 type="j2ee:fully-qualified-classType">
429 <xsd:annotation>
430 <xsd:documentation>
431
432 The exception-type contains a fully qualified class
433 name of a Java exception type.
434
435 </xsd:documentation>
436 </xsd:annotation>
437 </xsd:element>
438 </xsd:choice>
439
440 <xsd:element name="location"
441 type="j2ee:war-pathType">
442 <xsd:annotation>
443 <xsd:documentation>
444
445 The location element contains the location of the
446 resource in the web application relative to the root of
447 the web application. The value of the location must have
448 a leading `/'.
449
450 </xsd:documentation>
451 </xsd:annotation>
452 </xsd:element>
453 </xsd:sequence>
454 <xsd:attribute name="id" type="xsd:ID"/>
455 </xsd:complexType>
456
457<!-- **************************************************** -->
458
459 <xsd:complexType name="filter-mappingType">
460 <xsd:annotation>
461 <xsd:documentation>
462
463 Declaration of the filter mappings in this web
464 application is done by using filter-mappingType.
465 The container uses the filter-mapping
466 declarations to decide which filters to apply to a request,
467 and in what order. The container matches the request URI to
468 a Servlet in the normal way. To determine which filters to
469 apply it matches filter-mapping declarations either on
470 servlet-name, or on url-pattern for each filter-mapping
471 element, depending on which style is used. The order in
472 which filters are invoked is the order in which
473 filter-mapping declarations that match a request URI for a
474 servlet appear in the list of filter-mapping elements.The
475 filter-name value must be the value of the filter-name
476 sub-elements of one of the filter declarations in the
477 deployment descriptor.
478
479 </xsd:documentation>
480 </xsd:annotation>
481
482 <xsd:sequence>
483 <xsd:element name="filter-name"
484 type="j2ee:filter-nameType"/>
485 <xsd:choice>
486 <xsd:element name="url-pattern"
487 type="j2ee:url-patternType"/>
488 <xsd:element name="servlet-name"
489 type="j2ee:servlet-nameType"/>
490 </xsd:choice>
491 <xsd:element name="dispatcher"
492 type="j2ee:dispatcherType"
493 minOccurs="0" maxOccurs="4"/>
494 </xsd:sequence>
495 <xsd:attribute name="id" type="xsd:ID"/>
496 </xsd:complexType>
497
498<!-- **************************************************** -->
499
500 <xsd:complexType name="filter-nameType">
501 <xsd:annotation>
502 <xsd:documentation>
503
504 The logical name of the filter is declare
505 by using filter-nameType. This name is used to map the
506 filter. Each filter name is unique within the web
507 application.
508
509 Used in: filter, filter-mapping
510
511 </xsd:documentation>
512 </xsd:annotation>
513
514 <xsd:simpleContent>
515 <xsd:extension base="j2ee:nonEmptyStringType"/>
516 </xsd:simpleContent>
517 </xsd:complexType>
518
519<!-- **************************************************** -->
520
521 <xsd:complexType name="filterType">
522 <xsd:annotation>
523 <xsd:documentation>
524
525 The filterType is used to declare a filter in the web
526 application. The filter is mapped to either a servlet or a
527 URL pattern in the filter-mapping element, using the
528 filter-name value to reference. Filters can access the
529 initialization parameters declared in the deployment
530 descriptor at runtime via the FilterConfig interface.
531
532 Used in: web-app
533
534 </xsd:documentation>
535 </xsd:annotation>
536
537 <xsd:sequence>
538 <xsd:group ref="j2ee:descriptionGroup"/>
539 <xsd:element name="filter-name"
540 type="j2ee:filter-nameType"/>
541 <xsd:element name="filter-class"
542 type="j2ee:fully-qualified-classType">
543 <xsd:annotation>
544 <xsd:documentation>
545
546 The fully qualified classname of the filter.
547
548 </xsd:documentation>
549 </xsd:annotation>
550 </xsd:element>
551
552 <xsd:element name="init-param"
553 type="j2ee:param-valueType"
554 minOccurs="0" maxOccurs="unbounded">
555 <xsd:annotation>
556 <xsd:documentation>
557
558 The init-param element contains a name/value pair as
559 an initialization param of a servlet filter
560
561 </xsd:documentation>
562 </xsd:annotation>
563 </xsd:element>
564 </xsd:sequence>
565 <xsd:attribute name="id" type="xsd:ID"/>
566 </xsd:complexType>
567
568<!-- **************************************************** -->
569
570 <xsd:complexType name="form-login-configType">
571 <xsd:annotation>
572 <xsd:documentation>
573
574 The form-login-configType specifies the login and error
575 pages that should be used in form based login. If form based
576 authentication is not used, these elements are ignored.
577
578 Used in: login-config
579
580 </xsd:documentation>
581 </xsd:annotation>
582
583 <xsd:sequence>
584
585 <xsd:element name="form-login-page"
586 type="j2ee:war-pathType">
587 <xsd:annotation>
588 <xsd:documentation>
589
590 The form-login-page element defines the location in the web
591 app where the page that can be used for login can be
592 found. The path begins with a leading / and is interpreted
593 relative to the root of the WAR.
594
595 </xsd:documentation>
596 </xsd:annotation>
597 </xsd:element>
598
599 <xsd:element name="form-error-page"
600 type="j2ee:war-pathType">
601 <xsd:annotation>
602 <xsd:documentation>
603
604 The form-error-page element defines the location in
605 the web app where the error page that is displayed
606 when login is not successful can be found.
607 The path begins with a leading / and is interpreted
608 relative to the root of the WAR.
609
610 </xsd:documentation>
611 </xsd:annotation>
612 </xsd:element>
613
614 </xsd:sequence>
615 <xsd:attribute name="id" type="xsd:ID"/>
616 </xsd:complexType>
617
618<!-- **************************************************** -->
619
620 <xsd:complexType name="http-methodType">
621 <xsd:annotation>
622
623 <xsd:documentation>
624
625 The http-method contains an HTTP method recognized by the
626 web-app, for example GET, POST, ...
627
628 </xsd:documentation>
629 </xsd:annotation>
630
631 <xsd:simpleContent>
632 <xsd:restriction base="j2ee:string">
633 <xsd:enumeration value="GET"/>
634 <xsd:enumeration value="POST"/>
635 <xsd:enumeration value="PUT"/>
636 <xsd:enumeration value="DELETE"/>
637 <xsd:enumeration value="HEAD"/>
638 <xsd:enumeration value="OPTIONS"/>
639 <xsd:enumeration value="TRACE"/>
640 </xsd:restriction>
641 </xsd:simpleContent>
642 </xsd:complexType>
643
644<!-- **************************************************** -->
645
646 <xsd:complexType name="locale-encoding-mapping-listType">
647 <xsd:annotation>
648 <xsd:documentation>
649
650 The locale-encoding-mapping-list contains one or more
651 locale-encoding-mapping(s).
652
653 </xsd:documentation>
654 </xsd:annotation>
655
656 <xsd:sequence>
657 <xsd:element name="locale-encoding-mapping"
658 type="j2ee:locale-encoding-mappingType"
659 maxOccurs="unbounded"/>
660 </xsd:sequence>
661 <xsd:attribute name="id" type="xsd:ID"/>
662 </xsd:complexType>
663
664<!-- **************************************************** -->
665
666 <xsd:complexType name="locale-encoding-mappingType">
667 <xsd:annotation>
668 <xsd:documentation>
669
670 The locale-encoding-mapping contains locale name and
671 encoding name. The locale name must be either "Language-code",
672 such as "ja", defined by ISO-639 or "Language-code_Country-code",
673 such as "ja_JP". "Country code" is defined by ISO-3166.
674
675 </xsd:documentation>
676 </xsd:annotation>
677
678 <xsd:sequence>
679 <xsd:element name="locale"
680 type="j2ee:localeType"/>
681 <xsd:element name="encoding"
682 type="j2ee:encodingType"/>
683 </xsd:sequence>
684 <xsd:attribute name="id" type="xsd:ID"/>
685 </xsd:complexType>
686
687<!-- **************************************************** -->
688
689 <xsd:simpleType name="localeType">
690 <xsd:annotation>
691 <xsd:documentation>
692
693 The localeType defines valid locale defined by ISO-639-1
694 and ISO-3166.
695
696 </xsd:documentation>
697 </xsd:annotation>
698
699 <xsd:restriction base="xsd:string">
700 <xsd:pattern value="[a-z]{2}(_|-)?([\p{L}\-\p{Nd}]{2})?"/>
701 </xsd:restriction>
702 </xsd:simpleType>
703
704<!-- **************************************************** -->
705
706 <xsd:complexType name="login-configType">
707 <xsd:annotation>
708 <xsd:documentation>
709
710 The login-configType is used to configure the authentication
711 method that should be used, the realm name that should be
712 used for this application, and the attributes that are
713 needed by the form login mechanism.
714
715 Used in: web-app
716
717 </xsd:documentation>
718 </xsd:annotation>
719
720 <xsd:sequence>
721 <xsd:element name="auth-method"
722 type="j2ee:auth-methodType"
723 minOccurs="0"/>
724 <xsd:element name="realm-name"
725 type="j2ee:string" minOccurs="0">
726 <xsd:annotation>
727 <xsd:documentation>
728
729 The realm name element specifies the realm name to
730 use in HTTP Basic authorization.
731
732 </xsd:documentation>
733 </xsd:annotation>
734 </xsd:element>
735 <xsd:element name="form-login-config"
736 type="j2ee:form-login-configType"
737 minOccurs="0"/>
738 </xsd:sequence>
739 <xsd:attribute name="id" type="xsd:ID"/>
740 </xsd:complexType>
741
742<!-- **************************************************** -->
743
744 <xsd:complexType name="mime-mappingType">
745 <xsd:annotation>
746 <xsd:documentation>
747
748 The mime-mappingType defines a mapping between an extension
749 and a mime type.
750
751 Used in: web-app
752
753 </xsd:documentation>
754 </xsd:annotation>
755
756 <xsd:sequence>
757 <xsd:annotation>
758 <xsd:documentation>
759
760 The extension element contains a string describing an
761 extension. example: "txt"
762
763 </xsd:documentation>
764 </xsd:annotation>
765
766 <xsd:element name="extension"
767 type="j2ee:string"/>
768 <xsd:element name="mime-type"
769 type="j2ee:mime-typeType"/>
770 </xsd:sequence>
771 <xsd:attribute name="id" type="xsd:ID"/>
772 </xsd:complexType>
773
774<!-- **************************************************** -->
775
776 <xsd:complexType name="mime-typeType">
777 <xsd:annotation>
778 <xsd:documentation>
779
780 The mime-typeType is used to indicate a defined mime type.
781
782 Example:
783 "text/plain"
784
785 Used in: mime-mapping
786
787 </xsd:documentation>
788 </xsd:annotation>
789
790 <xsd:simpleContent>
791 <xsd:restriction base="j2ee:string">
792 <xsd:pattern value="[\p{L}\-\p{Nd}]+/[\p{L}\-\p{Nd}\.]+"/>
793 </xsd:restriction>
794 </xsd:simpleContent>
795 </xsd:complexType>
796
797<!-- **************************************************** -->
798
799 <xsd:complexType name="nonEmptyStringType">
800 <xsd:annotation>
801 <xsd:documentation>
802 This type defines a string which contains at least one
803 character.
804 </xsd:documentation>
805 </xsd:annotation>
806 <xsd:simpleContent>
807 <xsd:restriction base="j2ee:string">
808 <xsd:minLength value="1"/>
809 </xsd:restriction>
810 </xsd:simpleContent>
811 </xsd:complexType>
812
813<!-- **************************************************** -->
814
815 <xsd:complexType name="security-constraintType">
816 <xsd:annotation>
817 <xsd:documentation>
818
819 The security-constraintType is used to associate
820 security constraints with one or more web resource
821 collections
822
823 Used in: web-app
824
825 </xsd:documentation>
826 </xsd:annotation>
827
828 <xsd:sequence>
829 <xsd:element name="display-name"
830 type="j2ee:display-nameType"
831 minOccurs="0"
832 maxOccurs="unbounded"/>
833 <xsd:element name="web-resource-collection"
834 type="j2ee:web-resource-collectionType"
835 maxOccurs="unbounded"/>
836 <xsd:element name="auth-constraint"
837 type="j2ee:auth-constraintType"
838 minOccurs="0"/>
839 <xsd:element name="user-data-constraint"
840 type="j2ee:user-data-constraintType"
841 minOccurs="0"/>
842 </xsd:sequence>
843 <xsd:attribute name="id" type="xsd:ID"/>
844 </xsd:complexType>
845
846<!-- **************************************************** -->
847
848 <xsd:complexType name="servlet-mappingType">
849 <xsd:annotation>
850 <xsd:documentation>
851
852 The servlet-mappingType defines a mapping between a
853 servlet and a url pattern.
854
855 Used in: web-app
856
857 </xsd:documentation>
858 </xsd:annotation>
859
860 <xsd:sequence>
861 <xsd:element name="servlet-name"
862 type="j2ee:servlet-nameType"/>
863 <xsd:element name="url-pattern"
864 type="j2ee:url-patternType"/>
865 </xsd:sequence>
866 <xsd:attribute name="id" type="xsd:ID"/>
867 </xsd:complexType>
868
869<!-- **************************************************** -->
870
871 <xsd:complexType name="servlet-nameType">
872 <xsd:annotation>
873 <xsd:documentation>
874
875 The servlet-name element contains the canonical name of the
876 servlet. Each servlet name is unique within the web
877 application.
878
879 </xsd:documentation>
880 </xsd:annotation>
881
882 <xsd:simpleContent>
883 <xsd:extension base="j2ee:nonEmptyStringType"/>
884 </xsd:simpleContent>
885 </xsd:complexType>
886
887<!-- **************************************************** -->
888
889 <xsd:complexType name="servletType">
890 <xsd:annotation>
891 <xsd:documentation>
892
893 The servletType is used to declare a servlet.
894 It contains the declarative data of a
895 servlet. If a jsp-file is specified and the load-on-startup
896 element is present, then the JSP should be precompiled and
897 loaded.
898
899 Used in: web-app
900
901 </xsd:documentation>
902 </xsd:annotation>
903
904 <xsd:sequence>
905 <xsd:group ref="j2ee:descriptionGroup"/>
906 <xsd:element name="servlet-name"
907 type="j2ee:servlet-nameType"/>
908 <xsd:choice>
909 <xsd:element name="servlet-class"
910 type="j2ee:fully-qualified-classType">
911 <xsd:annotation>
912 <xsd:documentation>
913
914 The servlet-class element contains the fully
915 qualified class name of the servlet.
916
917 </xsd:documentation>
918 </xsd:annotation>
919 </xsd:element>
920
921 <xsd:element name="jsp-file"
922 type="j2ee:jsp-fileType"/>
923
924 </xsd:choice>
925
926 <xsd:element name="init-param"
927 type="j2ee:param-valueType"
928 minOccurs="0" maxOccurs="unbounded"/>
929 <xsd:element name="load-on-startup"
930 type="j2ee:xsdIntegerType"
931 minOccurs="0">
932 <xsd:annotation>
933 <xsd:documentation>
934
935 The load-on-startup element indicates that this
936 servlet should be loaded (instantiated and have
937 its init() called) on the startup of the web
938 application. The optional contents of these
939 element must be an integer indicating the order in
940 which the servlet should be loaded. If the value
941 is a negative integer, or the element is not
942 present, the container is free to load the servlet
943 whenever it chooses. If the value is a positive
944 integer or 0, the container must load and
945 initialize the servlet as the application is
946 deployed. The container must guarantee that
947 servlets marked with lower integers are loaded
948 before servlets marked with higher integers. The
949 container may choose the order of loading of
950 servlets with the same load-on-start-up value.
951
952 </xsd:documentation>
953 </xsd:annotation>
954 </xsd:element>
955 <xsd:element name="run-as"
956 type="j2ee:run-asType"
957 minOccurs="0"/>
958 <xsd:element name="security-role-ref"
959 type="j2ee:security-role-refType"
960 minOccurs="0" maxOccurs="unbounded"/>
961 </xsd:sequence>
962 <xsd:attribute name="id" type="xsd:ID"/>
963 </xsd:complexType>
964
965<!-- **************************************************** -->
966
967 <xsd:complexType name="session-configType">
968 <xsd:annotation>
969 <xsd:documentation>
970
971 The session-configType defines the session parameters
972 for this web application.
973
974 Used in: web-app
975
976 </xsd:documentation>
977 </xsd:annotation>
978
979 <xsd:sequence>
980 <xsd:element name="session-timeout"
981 type="j2ee:xsdIntegerType"
982 minOccurs="0">
983 <xsd:annotation>
984 <xsd:documentation>
985
986 The session-timeout element defines the default
987 session timeout interval for all sessions created
988 in this web application. The specified timeout
989 must be expressed in a whole number of minutes.
990 If the timeout is 0 or less, the container ensures
991 the default behaviour of sessions is never to time
992 out. If this element is not specified, the container
993 must set its default timeout period.
994
995 </xsd:documentation>
996 </xsd:annotation>
997 </xsd:element>
998 </xsd:sequence>
999 <xsd:attribute name="id" type="xsd:ID"/>
1000 </xsd:complexType>
1001
1002<!-- **************************************************** -->
1003
1004 <xsd:complexType name="transport-guaranteeType">
1005 <xsd:annotation>
1006 <xsd:documentation>
1007
1008 The transport-guaranteeType specifies that the communication
1009 between client and server should be NONE, INTEGRAL, or
1010 CONFIDENTIAL. NONE means that the application does not
1011 require any transport guarantees. A value of INTEGRAL means
1012 that the application requires that the data sent between the
1013 client and server be sent in such a way that it can't be
1014 changed in transit. CONFIDENTIAL means that the application
1015 requires that the data be transmitted in a fashion that
1016 prevents other entities from observing the contents of the
1017 transmission. In most cases, the presence of the INTEGRAL or
1018 CONFIDENTIAL flag will indicate that the use of SSL is
1019 required.
1020
1021 Used in: user-data-constraint
1022
1023 </xsd:documentation>
1024 </xsd:annotation>
1025
1026 <xsd:simpleContent>
1027 <xsd:restriction base="j2ee:string">
1028 <xsd:enumeration value="NONE"/>
1029 <xsd:enumeration value="INTEGRAL"/>
1030 <xsd:enumeration value="CONFIDENTIAL"/>
1031 </xsd:restriction>
1032 </xsd:simpleContent>
1033 </xsd:complexType>
1034
1035<!-- **************************************************** -->
1036
1037 <xsd:complexType name="user-data-constraintType">
1038 <xsd:annotation>
1039 <xsd:documentation>
1040
1041 The user-data-constraintType is used to indicate how
1042 data communicated between the client and container should be
1043 protected.
1044
1045 Used in: security-constraint
1046
1047 </xsd:documentation>
1048 </xsd:annotation>
1049
1050 <xsd:sequence>
1051 <xsd:element name="description"
1052 type="j2ee:descriptionType"
1053 minOccurs="0"
1054 maxOccurs="unbounded"/>
1055 <xsd:element name="transport-guarantee"
1056 type="j2ee:transport-guaranteeType"/>
1057 </xsd:sequence>
1058 <xsd:attribute name="id" type="xsd:ID"/>
1059 </xsd:complexType>
1060
1061<!-- **************************************************** -->
1062
1063 <xsd:complexType name="war-pathType">
1064 <xsd:annotation>
1065 <xsd:documentation>
1066
1067 The elements that use this type designate a path starting
1068 with a "/" and interpreted relative to the root of a WAR
1069 file.
1070
1071 </xsd:documentation>
1072 </xsd:annotation>
1073 <xsd:simpleContent>
1074 <xsd:restriction base="j2ee:string">
1075 <xsd:pattern value="/.*"/>
1076 </xsd:restriction>
1077 </xsd:simpleContent>
1078 </xsd:complexType>
1079
1080<!-- **************************************************** -->
1081
1082 <xsd:simpleType name="web-app-versionType">
1083 <xsd:annotation>
1084 <xsd:documentation>
1085
1086 This type contains the recognized versions of
1087 web-application supported. It is used to designate the
1088 version of the web application.
1089
1090 </xsd:documentation>
1091 </xsd:annotation>
1092 <xsd:restriction base="xsd:token">
1093 <xsd:enumeration value="2.4"/>
1094 </xsd:restriction>
1095 </xsd:simpleType>
1096
1097<!-- **************************************************** -->
1098
1099 <xsd:complexType name="web-appType">
1100
1101 <xsd:choice minOccurs="0" maxOccurs="unbounded">
1102 <xsd:group ref="j2ee:descriptionGroup"/>
1103 <xsd:element name="distributable"
1104 type="j2ee:emptyType"/>
1105 <xsd:element name="context-param"
1106 type="j2ee:param-valueType">
1107
1108 <xsd:annotation>
1109 <xsd:documentation>
1110
1111 The context-param element contains the declaration
1112 of a web application's servlet context
1113 initialization parameters.
1114
1115 </xsd:documentation>
1116 </xsd:annotation>
1117 </xsd:element>
1118
1119 <xsd:element name="filter"
1120 type="j2ee:filterType"/>
1121 <xsd:element name="filter-mapping"
1122 type="j2ee:filter-mappingType"/>
1123 <xsd:element name="listener"
1124 type="j2ee:listenerType"/>
1125 <xsd:element name="servlet"
1126 type="j2ee:servletType"/>
1127 <xsd:element name="servlet-mapping"
1128 type="j2ee:servlet-mappingType"/>
1129 <xsd:element name="session-config"
1130 type="j2ee:session-configType"/>
1131 <xsd:element name="mime-mapping"
1132 type="j2ee:mime-mappingType"/>
1133 <xsd:element name="welcome-file-list"
1134 type="j2ee:welcome-file-listType"/>
1135 <xsd:element name="error-page"
1136 type="j2ee:error-pageType"/>
1137 <xsd:element name="jsp-config"
1138 type="j2ee:jsp-configType"/>
1139 <xsd:element name="security-constraint"
1140 type="j2ee:security-constraintType"/>
1141 <xsd:element name="login-config"
1142 type="j2ee:login-configType"/>
1143 <xsd:element name="security-role"
1144 type="j2ee:security-roleType"/>
1145 <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/>
1146 <xsd:element name="message-destination"
1147 type="j2ee:message-destinationType"/>
1148 <xsd:element name="locale-encoding-mapping-list"
1149 type="j2ee:locale-encoding-mapping-listType"/>
1150 </xsd:choice>
1151
1152 <xsd:attribute name="version"
1153 type="j2ee:web-app-versionType"
1154 use="required"/>
1155 <xsd:attribute name="id" type="xsd:ID"/>
1156 </xsd:complexType>
1157
1158<!-- **************************************************** -->
1159
1160 <xsd:complexType name="web-resource-collectionType">
1161 <xsd:annotation>
1162 <xsd:documentation>
1163
1164 The web-resource-collectionType is used to identify a subset
1165 of the resources and HTTP methods on those resources within
1166 a web application to which a security constraint applies. If
1167 no HTTP methods are specified, then the security constraint
1168 applies to all HTTP methods.
1169
1170 Used in: security-constraint
1171
1172 </xsd:documentation>
1173 </xsd:annotation>
1174
1175 <xsd:sequence>
1176 <xsd:element name="web-resource-name"
1177 type="j2ee:string">
1178 <xsd:annotation>
1179 <xsd:documentation>
1180
1181 The web-resource-name contains the name of this web
1182 resource collection.
1183
1184 </xsd:documentation>
1185 </xsd:annotation>
1186 </xsd:element>
1187 <xsd:element name="description"
1188 type="j2ee:descriptionType"
1189 minOccurs="0"
1190 maxOccurs="unbounded"/>
1191 <xsd:element name="url-pattern"
1192 type="j2ee:url-patternType"
1193 maxOccurs="unbounded"/>
1194 <xsd:element name="http-method"
1195 type="j2ee:http-methodType"
1196 minOccurs="0" maxOccurs="unbounded"/>
1197 </xsd:sequence>
1198 <xsd:attribute name="id" type="xsd:ID"/>
1199 </xsd:complexType>
1200
1201<!-- **************************************************** -->
1202
1203 <xsd:complexType name="welcome-file-listType">
1204 <xsd:annotation>
1205 <xsd:documentation>
1206
1207 The welcome-file-list contains an ordered list of welcome
1208 files elements.
1209
1210 Used in: web-app
1211
1212 </xsd:documentation>
1213 </xsd:annotation>
1214
1215 <xsd:sequence>
1216 <xsd:element name="welcome-file"
1217 type="xsd:string"
1218 maxOccurs="unbounded">
1219 <xsd:annotation>
1220 <xsd:documentation>
1221
1222 The welcome-file element contains file name to use
1223 as a default welcome file, such as index.html
1224
1225 </xsd:documentation>
1226 </xsd:annotation>
1227 </xsd:element>
1228 </xsd:sequence>
1229 <xsd:attribute name="id" type="xsd:ID"/>
1230 </xsd:complexType>
1231
1232</xsd:schema>
1233