<!ELEMENT appengine-web-app (application, version?, source-language?, server?,
                             instance-class?, automatic-scaling?,
                             manual-scaling?, basic-scaling?, static-files?,
                             resource-files?, system-properties?,
                             env-variables?, ssl-enabled?, sessions-enabled?,
                             async-session-persistence?, user-permissions?,
                             public-root?, inbound-services?,
                             precompilation-enabled?, admin-console?,
                             static-error-handlers?, warmup-requests-enabled?,
                             threadsafe?, servers?, code-lock?, pagespeed?,
                             class-loader-config?)>
<!ATTLIST appengine-web-app
          xmlns CDATA #REQUIRED>
<!ELEMENT application (#PCDATA)>
<!ELEMENT version (#PCDATA)>
<!ELEMENT source-language (#PCDATA)>
<!ELEMENT server (#PCDATA)>
<!ELEMENT instance-class (#PCDATA)>
<!ELEMENT automatic-scaling (min-pending-latency?, max-pending-latency?,
                              min-idle-instances?, max-idle-instances?)>
<!ELEMENT min-pending-latency (#PCDATA)>
<!ELEMENT max-pending-latency (#PCDATA)>
<!ELEMENT min-idle-instances (#PCDATA)>
<!ELEMENT max-idle-instances (#PCDATA)>
<!ELEMENT manual-scaling (instances)>
<!ELEMENT instances (#PCDATA)>
<!ELEMENT basic-scaling (max-instances, idle-timeout?)>
<!ELEMENT max-instances (#PCDATA)>
<!ELEMENT idle-timeout (#PCDATA)>
<!ELEMENT static-files (include|exclude)*>
<!ELEMENT include (http-header)*>
<!ATTLIST include
          path CDATA #REQUIRED
          expiration CDATA #OPTIONAL>
<!ELEMENT http-header (#PCDATA)>
<!ATTLIST http-header
          name CDATA #REQUIRED
          value CDATA #REQUIRED>
<!ELEMENT exclude EMPTY>
<!ATTLIST exclude
          path CDATA #REQUIRED>
<!ELEMENT resource-files (include|exclude)*>
<!ELEMENT system-properties (property)*>
<!ELEMENT property (#PCDATA)>
<!ATTLIST property
          name CDATA #REQUIRED
          value CDATA #REQUIRED>
<!ELEMENT env-variables (env-var)*>
<!ELEMENT env-var (#PCDATA)>
<!ATTLIST env-var
          name CDATA #REQUIRED
          value CDATA #REQUIRED>
<!ELEMENT ssl-enabled (#PCDATA)>
<!ELEMENT sessions-enabled (#PCDATA)>
<!ELEMENT async-session-persistence (#PCDATA)>
<!ATTLIST async-session-persistence
          enabled CDATA #REQUIRED
          queue-name CDATA #OPTIONAL>
<!ELEMENT precompilation-enabled (#PCDATA)>
<!ELEMENT user-permissions (permission)*>
<!ELEMENT permission (#PCDATA)>
<!ATTLIST permission
          class CDATA #REQUIRED
          name CDATA #REQUIRED
          actions CDATA #OPTIONAL>
<!ELEMENT public-root (#PCDATA)>
<!ELEMENT inbound-services (service)*>
<!ELEMENT service (#PCDATA)>
<!ELEMENT admin-console (page)*>
<!ELEMENT page (#PCDATA)>
<!ATTLIST page
          name CDATA #REQUIRED
          url CDATA #REQUIRED>
<!ELEMENT static-error-handlers (handler)*>
<!ELEMENT handler (#PCDATA)>
<!ATTLIST handler
          file CDATA #REQUIRED
          error-code CDATA #OPTIONAL>
<!ELEMENT warmup-requests-enabled (#PCDATA)>
<!ELEMENT threadsafe (#PCDATA)>
<!ELEMENT code-lock (#PCDATA)>
<!ELEMENT servers (server|backend|frontend|job|worker)*>
<!ELEMENT server (instances|memory|resident|access|threads)*>
<!ATTLIST server
          name CDATA #REQUIRED>
<!ELEMENT backend (instances|memory|resident|access|threads)*>
<!ATTLIST backend
          name CDATA #REQUIRED>
<!ELEMENT frontend (instances|memory|resident|access|threads)*>
<!ATTLIST frontend
          name CDATA #REQUIRED>
<!ELEMENT job (instances|memory|resident|access|threads)*>
<!ATTLIST job
          name CDATA #REQUIRED>
<!ELEMENT worker (instances|memory|resident|access|threads)*>
<!ATTLIST worker
          name CDATA #REQUIRED>
<!ELEMENT memory (#PCDATA)>
<!ELEMENT resident (#PCDATA)>
<!ELEMENT access (#PCDATA)>
<!ELEMENT threads (#PCDATA)>
<!ELEMENT pagespeed (url-blacklist|domain-to-rewrite|enabled-rewriter|disabled-rewriter)*>
<!ELEMENT url-blacklist (#PCDATA)>
<!ELEMENT domain-to-rewrite (#PCDATA)>
<!ELEMENT enabled-rewriter (#PCDATA)>
<!ELEMENT disabled-rewriter (#PCDATA)>
<!ELEMENT class-loader-config (priority-specifier)*>
<!ELEMENT priority-specifier (EMPTY)*>
<!ATTLIST priority-specifier
          filename CDATA #REQUIRED
          priority CDATA #OPTIONAL>
