<!ELEMENT appengine-web-app (application, version?, source-language?, server?,
                             server-settings?, 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?)>
<!ATTLIST appengine-web-app
          xmlns CDATA #REQUIRED>
<!ELEMENT application (#PCDATA)>
<!ELEMENT version (#PCDATA)>
<!ELEMENT source-language (#PCDATA)>
<!ELEMENT server (#PCDATA)>
<!ELEMENT server-settings (instances?, class?,
                           min-pending-latency?, max-pending-latency?,
                           min-idle-instances?, max-idle-instances?)>
<!ELEMENT instances (#PCDATA)>
<!ELEMENT class (#PCDATA)>
<!ELEMENT min-pending-latency (#PCDATA)>
<!ELEMENT max-pending-latency (#PCDATA)>
<!ELEMENT min-idle-instances (#PCDATA)>
<!ELEMENT max-idle-instances (#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)>
