Revision created by MOE tool push_codebase.
[gae.git] / java / src / main / com / google / appengine / tools / development / appengine-web.xsd
blob6778508e14d65f2b48795bd6340f57dabe5c1502
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://appengine.google.com/ns/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
3 <xs:element name="appengine-web-app" type="ns:appengine-web-appType" xmlns:ns="http://appengine.google.com/ns/1.0"/>
4 <xs:complexType name="env-varType">
5 <xs:simpleContent>
6 <xs:extension base="xs:string">
7 <xs:attribute type="xs:string" name="name" use="required"/>
8 <xs:attribute type="xs:string" name="value" use="required"/>
9 </xs:extension>
10 </xs:simpleContent>
11 </xs:complexType>
12 <xs:complexType name="system-propertiesType">
13 <xs:sequence>
14 <xs:element type="ns:propertyType" name="property" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
15 </xs:sequence>
16 </xs:complexType>
17 <xs:complexType name="propertyType">
18 <xs:simpleContent>
19 <xs:extension base="xs:string">
20 <xs:attribute type="xs:string" name="name" use="required"/>
21 <xs:attribute type="xs:string" name="value" use="required"/>
22 </xs:extension>
23 </xs:simpleContent>
24 </xs:complexType>
25 <xs:complexType name="asyncSessionPersistenceType">
26 <xs:simpleContent>
27 <xs:extension base="xs:string">
28 <xs:attribute type="xs:boolean" name="enabled" use="required"/>
29 <xs:attribute type="xs:string" name="queue-name" use="optional"/>
30 </xs:extension>
31 </xs:simpleContent>
32 </xs:complexType>
33 <xs:complexType name="appengine-web-appType">
34 <xs:all>
35 <xs:element type="xs:string" name="application"/>
36 <xs:element type="xs:string" name="version" minOccurs="0"/>
37 <xs:element type="xs:string" name="source-language" minOccurs="0"/>
38 <xs:element type="xs:string" name="server" minOccurs="0"/>
39 <xs:element type="xs:string" name="instance-class" minOccurs="0"/>
40 <xs:element type="ns:automatic-scaling-type" name="automatic-scaling" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
41 <xs:element type="ns:manual-scaling-type" name="manual-scaling" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
42 <xs:element type="ns:basic-scaling-type" name="basic-scaling" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
43 <xs:element type="ns:static-filesType" name="static-files" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
44 <xs:element type="ns:resource-filesType" name="resource-files" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
45 <xs:element type="ns:system-propertiesType" name="system-properties" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
46 <xs:element type="ns:env-variablesType" name="env-variables" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
47 <xs:element type="xs:boolean" name="ssl-enabled" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
48 <xs:element type="xs:boolean" name="sessions-enabled" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
49 <xs:element type="ns:asyncSessionPersistenceType" name="async-session-persistence" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
50 <xs:element type="ns:userPermissionsType" name="user-permissions" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
51 <xs:element type="xs:string" name="public-root" minOccurs="0"/>
52 <xs:element type="ns:inboundServicesType" name="inbound-services" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
53 <xs:element type="xs:boolean" name="precompilation-enabled" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
54 <xs:element type="ns:admin-console" name="admin-console" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
55 <xs:element type="ns:static-error-handlers" name="static-error-handlers" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
56 <xs:element type="xs:boolean" name="warmup-requests-enabled" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
57 <xs:element type="xs:boolean" name="threadsafe" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
58 <xs:element type="xs:boolean" name="code-lock" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
59 <xs:element type="xs:string" name="runtime" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
60 <xs:element type="ns:pagespeedType" name="pagespeed" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
61 <xs:element type="ns:classLoaderConfigType" name="class-loader-config" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
62 </xs:all>
63 </xs:complexType>
64 <xs:complexType name="env-variablesType">
65 <xs:sequence>
66 <xs:element type="ns:env-varType" name="env-var" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
67 </xs:sequence>
68 </xs:complexType>
69 <xs:complexType name="includeType">
70 <xs:attribute type="xs:string" name="path" use="required"/>
71 </xs:complexType>
72 <!-- Adds two things to includeType: expiration attribute, and http-header children -->
73 <xs:complexType name="staticIncludeType">
74 <xs:complexContent>
75 <xs:extension base="ns:includeType" xmlns:ns="http://appengine.google.com/ns/1.0">
76 <xs:sequence>
77 <xs:element type="ns:http-headerType" name="http-header" minOccurs="0" maxOccurs="unbounded" xmlns:ns="http://appengine.google.com/ns/1.0"/>
78 </xs:sequence>
79 <xs:attribute type="ns:expirationType" name="expiration" use="optional" xmlns:ns="http://appengine.google.com/ns/1.0"/>
80 </xs:extension>
81 </xs:complexContent>
82 </xs:complexType>
83 <!-- See RFC 2616 for what constitutes valid HTTP header names and values. -->
84 <xs:complexType name="http-headerType">
85 <xs:attribute type="xs:string" name="name" use="required"/>
86 <xs:attribute type="xs:string" name="value" use="required"/>
87 </xs:complexType>
88 <xs:complexType name="resource-filesType">
89 <xs:sequence>
90 <xs:element type="ns:includeType" name="include" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
91 <xs:element type="ns:excludeType" name="exclude" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
92 </xs:sequence>
93 </xs:complexType>
94 <xs:complexType name="automatic-scaling-type">
95 <xs:all>
96 <xs:element type="xs:string" name="min-pending-latency" minOccurs="0"/>
97 <xs:element type="xs:string" name="max-pending-latency" minOccurs="0"/>
98 <xs:element type="xs:string" name="min-idle-instances" minOccurs="0"/>
99 <xs:element type="xs:string" name="max-idle-instances" minOccurs="0"/>
100 </xs:all>
101 </xs:complexType>
102 <xs:complexType name="manual-scaling-type">
103 <xs:all>
104 <xs:element type="xs:string" name="instances"/>
105 </xs:all>
106 </xs:complexType>
107 <xs:complexType name="basic-scaling-type">
108 <xs:all>
109 <xs:element type="xs:string" name="max-instances"/>
110 <xs:element type="xs:string" name="idle-timeout" minOccurs="0"/>
111 </xs:all>
112 </xs:complexType>
113 <xs:complexType name="static-filesType">
114 <xs:sequence>
115 <xs:element type="ns:staticIncludeType" name="include" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
116 <xs:element type="ns:excludeType" name="exclude" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
117 </xs:sequence>
118 </xs:complexType>
119 <xs:complexType name="excludeType">
120 <xs:attribute type="xs:string" name="path" use="required"/>
121 </xs:complexType>
122 <xs:complexType name="userPermissionsType">
123 <xs:sequence>
124 <xs:element type="ns:permissionType" name="permission" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
125 </xs:sequence>
126 </xs:complexType>
127 <xs:complexType name="permissionType">
128 <xs:simpleContent>
129 <xs:extension base="xs:string">
130 <xs:attribute type="xs:string" name="class" use="required"/>
131 <xs:attribute type="xs:string" name="name" use="required"/>
132 <xs:attribute type="xs:string" name="actions" use="optional"/>
133 </xs:extension>
134 </xs:simpleContent>
135 </xs:complexType>
136 <xs:complexType name="inboundServicesType">
137 <xs:sequence>
138 <xs:element type="xs:string" name="service" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
139 </xs:sequence>
140 </xs:complexType>
141 <xs:simpleType name="expirationType">
142 <xs:restriction base="xs:string">
143 <xs:pattern value="\s*(([0-9]+)([DdHhMm]|[sS]?))(\s+([0-9]+)([DdHhMm]|[sS]?))*\s*"/>
144 </xs:restriction>
145 </xs:simpleType>
146 <xs:complexType name="admin-console">
147 <xs:sequence>
148 <xs:element type="ns:admin-console-pageType" name="page" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
149 </xs:sequence>
150 </xs:complexType>
151 <xs:complexType name="admin-console-pageType">
152 <xs:simpleContent>
153 <xs:extension base="xs:string">
154 <xs:attribute type="xs:string" name="name" use="required"/>
155 <xs:attribute type="xs:string" name="url" use="required"/>
156 </xs:extension>
157 </xs:simpleContent>
158 </xs:complexType>
159 <xs:complexType name="static-error-handlers">
160 <xs:sequence>
161 <xs:element type="ns:static-error-handlers-handler" name="handler" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
162 </xs:sequence>
163 </xs:complexType>
164 <xs:complexType name="static-error-handlers-handler">
165 <xs:simpleContent>
166 <xs:extension base="xs:string">
167 <xs:attribute type="xs:string" name="file" use="required"/>
168 <xs:attribute type="xs:string" name="error-code" use="optional"/>
169 </xs:extension>
170 </xs:simpleContent>
171 </xs:complexType>
172 <xs:complexType name="pagespeedType">
173 <xs:choice maxOccurs="unbounded" minOccurs="0">
174 <xs:element type="xs:string" name="url-blacklist"/>
175 <xs:element type="xs:string" name="domain-to-rewrite"/>
176 <xs:element type="xs:string" name="enabled-rewriter"/>
177 <xs:element type="xs:string" name="disabled-rewriter"/>
178 </xs:choice>
179 </xs:complexType>
180 <xs:complexType name="classLoaderConfigType">
181 <xs:sequence>
182 <xs:element type="ns:prioritySpecifierType" name="priority-specifier" maxOccurs="unbounded" minOccurs="1"/>
183 </xs:sequence>
184 </xs:complexType>
185 <xs:complexType name="prioritySpecifierType">
186 <xs:simpleContent>
187 <xs:extension base="xs:string">
188 <xs:attribute type="xs:string" name="filename" use="required"/>
189 <xs:attribute type="xs:double" name="priority" use="optional"/>
190 </xs:extension>
191 </xs:simpleContent>
192 </xs:complexType>
193 </xs:schema>