Caucho maker of Resin Server | Application Server (Java EE Certified) and Web Server


 

Resin Documentation

home company docs 
app server 
 Resin Server | Application Server (Java EE Certified) and Web Server
 

resin web.xml relax-ng schema


The formal definition for the Resin web.xml configuration.

Relax-NG Schema

com/caucho/server/webapp/resin-web-xml.rnc
include "resin-web-xml-content.rnc"

start = m_web-app

m_web-app = r_web-app | j2ee_web-app | l_web-app
com/caucho/server/webapp/resin-web-xml-content.rnc
default namespace r = "http://caucho.com/ns/resin"
namespace l = ""

namespace rcore = "http://caucho.com/ns/resin/core"

namespace xsi = "http://www.w3.org/2001/XMLSchema-instance"

include "../resin/env.rnc"
include "web-xml-content.rnc"

## l_web-app should probably be handled in web-xml.rnc as Servlet 2.3
l_web-app = element l:web-app { r_any-Group }

## r_boolean-Type = string
## r_int = string
## r_period = string
## r_jndi = string
## r_class-Type = string
## r_kbytes = string

r_access-log = element access-log {
  r_resin-type?

  & r_log-Content

  & (attribute format { string }
     | element format { string })?

  & (attribute archive-format { string }
     | element archive-format { string })?

  & r_init?
}

r_allow-servlet-el =
  attribute allow-servlet-el { r_boolean-Type }
  | element allow-servlet-el { r_boolean-Type }

r_auth-constraint = element auth-constraint {
  r_description*,

  r_role-name*
}

r_cache-mapping = element cache-mapping {
  r_url-pattern

  & (attribute expires { r_period }
     | element expires { r_period })
}

r_constraint = element constraint {
  r_resin-type,

  r_any-Group
}

r_config-file =
  attribute config-file { string }
  | element config-file { string }

r_context-param = element context-param {
  r_init-param-Content
}

r_context-path =
  attribute context-path { string }
  | element context-path { string }

## marks the web-app as distributable
r_distributable =
  attribute distributable { string }
  | element distributable { string }

r_document-directory =
  attribute document-directory { r_path-Type }
  | element document-directory { r_path-Type }

r_ear-Content =
  r_class-loader?,

  (r_env-Content

   & r_config-file*)

r_ear-default = element ear-default {
  r_ear-Content
}

r_ear-deploy = element ear-deploy {
  (attribute url-prefix { string }
   | element url-prefix { string })?

  & r_path

  & (attribute expand-directory { r_path-Type }
     | element expand-directory { r_path-Type })?

  & (attribute archive-directory { r_path-Type }
     | element archive-directory { r_path-Type })?

  & (attribute expand-path { r_path-Type }
     | element expand-path { r_path-Type })?

  & r_lazy-init?

  & r_ear-default?
}

r_error-page = element error-page {
  (attribute error-code { string }
   | element error-code { string }
   | attribute exception-type { string }
   | element exception-type { string })?,

  (attribute location { string }
   | element location { string })
}

r_filter = element filter {
   r_description-Group,

   (attribute filter-name { string }
    | element filter-name { string }),

   (attribute filter-class { r_class-Type }
    | element filter-class { r_class-Type }),

   (r_init | r_init-param*)
}

r_filter-mapping = element filter-mapping {
  (r_url-pattern

   | attribute url-regexp { string }
   | element url-regexp { string }
   | attribute servlet-name { string }
   | element servlet-name { string }),

  (attribute filter-name { string }
   | element filter-name { string }),

  (attribute dispatcher { string }
   | element dispatcher { string }*)
}

r_form-login-config = element form-login-config {
  (attribute form-login-page { string }
   | element form-login-page { string }),

  (attribute form-error-page { string }
   | element form-error-page { string }),

  (attribute internal-forward { r_boolean-Type }
   | element internal-forward { r_boolean-Type })?,

  (attribute form-uri-priority { r_boolean-Type }
   | element form-uri-priority { r_boolean-Type })?
}

r_jdbc-store = element jdbc-store {
  (attribute data-source { r_jndi }
   | element data-source { r_jndi })

  & (attribute table-name { string }
     | element table-name { string })?

  & (attribute blob-type { string }
     | element blob-type { string })?

  & (attribute max-idle-time { r_period }
     | element max-idle-time { r_period })?
}

r_jsp = element jsp {
 (attribute auto-compile { r_boolean-Type }
  | element auto-compile { r_boolean-Type })?

 & (attribute el-ignored { r_boolean-Type }
    | element el-ignored { r_boolean-Type })?

 & (attribute fast-jstl { r_boolean-Type }
    | element fast-jstl { r_boolean-Type })?

 & (attribute ide-hack { r_boolean-Type }
    | element ide-hack { r_boolean-Type })?

 & (attribute ignore-el-exception { r_boolean-Type }
    | element ignore-el-exception { r_boolean-Type })?

 & (attribute is-xml { r_boolean-Type }
    | element is-xml { r_boolean-Type })?

 & (attribute jsp-max { r_int }
    | element jsp-max { r_int })?

 & (attribute page-encoding { string }
    | element page-encoding { string })?

 & (attribute precompile { r_boolean-Type }
    | element precompile { r_boolean-Type })?

 & (attribute recompile-on-error { r_boolean-Type }
    | element recompile-on-error { r_boolean-Type })?

 & (attribute recycle-tags { r_boolean-Type }
    | element recycle-tags { r_boolean-Type })?

 & (attribute require-source { r_boolean-Type }
    | element require-source { r_boolean-Type })?

 & (attribute scripting-invalid { r_boolean-Type }
    | element scripting-invalid { r_boolean-Type })?

 & (attribute session { r_boolean-Type }
    | element session { r_boolean-Type })?

 & (attribute tld-dir { r_boolean-Type }
    | element tld-dir { r_boolean-Type })?

 & (attribute velocity-enabled { r_boolean-Type }
    | element velocity-enabled { r_boolean-Type })?
}

r_jsp-config = element jsp-config {
  attribute id { string }?,

  r_taglib*,

  r_jsp-property-group*
}

r_jsp-property-group = element jsp-property-group {
  attribute id { string }?,

  r_description-Group,

  r_url-pattern*,

  element el-ignored { j2ee_boolean }?,

  element page-encoding { j2ee_string }?,

  element scripting-invalid { j2ee_boolean }?,

  element is-xml { j2ee_boolean }?,

  element include-prelude { j2ee_path }*,

  element include-coda { j2ee_path }*
}

r_lazy-init =
  attribute lazy-init { r_boolean-Type }
  | element lazy-init { r_boolean-Type }

r_listener = element listener {
  r_description-Group,

  (attribute listener-class { string }
   | element listener-class { string }),

  r_init?
}

r_login-config = element login-config {
  r_type?,

  (attribute auth-method { string }
   | element auth-method { string })?,

  (attribute realm-name { string }
   | element realm-name { string })?,

  r_form-login-config?,

  (attribute authenticator { r_jndi }
   | element authenticator { r_jndi })?,

  r_init?
}

r_http-method-Values =
    "GET"
  | "POST"
  | "PUT"
  | "DELETE"
  | "HEAD"
  | "OPTIONS"
  | "TRACE"

r_http-method =
  attribute http-method { r_http-method-Values }
  | element http-method { r_http-method-Values }

r_ip-constraint =
  (attribute ip-constraint { string }
   | element ip-constraint { string })*

  | element ip-constraint { 
      ((element allow { string })*
       & (element deny { string })*)*
  }

r_mime-mapping = element mime-mapping {
  (attribute extension { string }
   | element extension { string }),

  (attribute mime-type { string }
   | element mime-type { string })
}

r_multipart-form = element multipart-form {
  (attribute enable { r_boolean-Type }
   | element upload-max { r_boolean-Type })?

  & (attribute upload-max { r_kbytes }
     | element upload-max { r_kbytes })?
}

## this doesn't exist in servlet spec?
r_path-mapping = element path-mapping {
  (r_url-pattern

   | attribute url-regexp { string }
   | element url-regexp { string })

  & (attribute real-path { r_path-Type }
     | element real-path { r_path-Type })
}

r_persistent_store =
  attribute persistent-store { string }
  | element persistent-store { string }

r_redeploy-mode =
  attribute redeploy-mode { string }
  | element redeploy-mode { string }

r_run-at =
   attribute run-at { string }
   | element run-at {
      string
      | (attribute period { string }
         | element period { string })
   }

r_secure =
  attribute secure { r_boolean-Type }
  | element secure { r_boolean-Type }

r_security-constraint =
  element security-constraint {
    (r_display-name?,

     r_web-resource-collection*,

     (r_auth-constraint*

      & r_user-data-constraint*

      & r_ip-constraint*

      & r_constraint*))

    | (r_url-pattern, r_role-name*)
  }

r_servlet = element servlet {
  r_description-Group,

  r_servlet-name,

  (attribute servlet-class { string }
   | element servlet-class { string }
   | attribute jsp-file { string }
   | element jsp-file { string }),

  r_servlet-Content
}

r_servlet-Content =
  ((r_init | r_init-param*)?,

   (attribute load-on-startup { string }
    | element load-on-startup { string })?,

   element run-as { string }?,

   r_security-role-ref*,

   r_run-at?)

r_servlet-mapping = element servlet-mapping {
  (r_url-pattern | r_url-regexp),

  (r_servlet-name 

  | (r_servlet-name?,

     (attribute servlet-class { string }
      | element servlet-class { string }
      | attribute jsp-file { string }
      | element jsp-file { string }),

      r_servlet-Content))

}

r_servlet-regexp = element servlet-regexp {
  r_url-regexp,

  r_servlet-name?,

  ((attribute servlet-class { string }
    | element servlet-class { string }
    | attribute jsp-file { string }
    | element jsp-file { string }),

   r_servlet-Content)?
}

r_servlet-name =
  attribute servlet-name { string }
  | element servlet-name { string }

r_session-config = element session-config {
  (attribute always-load-session { r_boolean-Type }
   | element always-load-session { r_boolean-Type })?

  & (attribute always-save-session { r_boolean-Type }
     | element always-save-session { r_boolean-Type })?

  & (attribute cookie-domain { string }
     | element cookie-domain { string })?

  & (attribute cookie-length { r_int }
     | element cookie-length { r_int })?

  & (attribute cookie-max-age { r_period }
     | element cookie-max-age { r_period })?

  & (attribute cookie-secure { r_boolean-Type }
     | element cookie-secure { r_boolean-Type })?

  & (attribute cookie-version { r_int }
     | element cookie-version { r_int })?

  & (attribute cookie-port { string }
     | element cookie-port { string })?

  & (attribute enable-cookies { r_boolean-Type }
     | element enable-cookies { r_boolean-Type })?

  & (attribute enable-url-rewriting { r_boolean-Type }
     | element enable-url-rewriting { r_boolean-Type })?

  & (attribute ignore-serialization-errors { r_boolean-Type }
     | element ignore-serialization-errors { r_boolean-Type })?

  & (attribute invalidate-after-listener { r_boolean-Type }
     | element invalidate-after-listener { r_boolean-Type })?

  & (attribute persistent-path { r_path-Type }
     | element persistent-path { r_path-Type })?

  & (attribute reuse-session-id { r_boolean-Type }
     | element reuse-session-id { r_boolean-Type })?

  & (attribute save-on-shutdown { r_boolean-Type }
     | element save-on-shutdown { r_boolean-Type })?

  & (attribute save-only-on-shutdown { r_boolean-Type }
     | element save-only-on-shutdown { r_boolean-Type })?

  & (attribute session-max { r_int }
     | element session-max { r_int })?

  & (attribute session-timeout { r_int }
     | element session-timeout { r_int })?

  & (attribute use-persistent-store { r_boolean-Type }
     | element use-persistent-store { r_boolean-Type })?

  & (attribute cluster-store { r_boolean-Type }
     | element cluster-store { empty })?

  & (attribute file-store { string }
     | element file-store { string })?
}

r_shutdown-wait-max =
  attribute shutdown-wait-max { r_period }
  | element shutdown-wait-max { r_period }

r_startup-mode =
  attribute startup-mode { string }
  | element startup-mode { string }

r_strict-mapping =
  attribute strict-mapping { r_boolean-Type }
  | element strict-mapping { r_boolean-Type }

r_taglib = element taglib {
  (attribute taglib-uri { string }
   | element taglib-uri { string }),

  (attribute taglib-location { string }
   | element taglib-location { string })
}

r_transport-guarantee =
  attribute transport-guarantee { r_transport-guarantee-Values }
  | element transport-guarantee { r_transport-guarantee-Values }

r_transport-guarantee-Values =
  "NONE"
  | "INTEGRAL"
  | "CONFIDENTIAL"

r_url-pattern =
  attribute url-pattern { string }
  | element url-pattern { string }

r_url-regexp = 
  attribute url-regexp { string }
  | element url-regexp { string }

r_user-data-constraint = element user-data-constraint {
  r_description*,

  r_transport-guarantee
}

r_web-app-default = element web-app-default {
  r_web-app-Content
}

r_web-app-deploy = element web-app-deploy {
  (attribute url-prefix { string }
   | element url-prefix { string })?

  & r_path

  & (attribute archive-directory { r_path-Type }
     | element archive-directory { r_path-Type })?

  & (attribute expand-directory { r_path-Type }
     | element expand-directory { r_path-Type })?

  & (attribute expand-path { r_path-Type }
     | element expand-path { r_path-Type })?

  & r_lazy-init?

  & r_web-app-default*

  & element web-app {
      r_context-path?,

      r_document-directory,

      r_web-app-Content
    }*
}

## basic allowed values for the web-app
r_web-app-Basis =
  r_env-Basis

  & r_class-loader-Group

  & r_access-log*

  & r_allow-servlet-el*

  & r_cache-mapping*

  & r_context-param*

  & r_display-name*

  & r_distributable?

  & r_ear-deploy*

  & r_ejb-local-ref*

  & r_ejb-ref*

  & r_error-page*

  & r_filter*

  & r_filter-mapping*

  & (attribute inherit-session { r_boolean-Type }
     | element inherit-session { r_boolean-Type })?

  & r_jsp?

  & r_jsp-config*

  & r_lazy-init*

  & r_listener*

  & r_login-config?

  & r_message-destination*

  & r_mime-mapping*

  & r_multipart-form*

  & r_resource-env-ref*

  & r_secure?

  & r_security-constraint*

  & r_security-role*

  & r_servlet*

  & r_servlet-mapping*

  & r_servlet-regexp*

  & r_session-config*

  & r_shutdown-wait-max?

  & r_strict-mapping?

  & r_taglib*

  & r_path-mapping*

  & rc_web-app*

  & r_web-app-deploy*

  & r_welcome-file-list?

## web-app allowed tags, including flow control
r_web-app-Flow =
  r_web-app-Basis

  & element rcore:env { r_class-loader-Group, r_web-app-Flow }*

  & element rcore:if { rcore_if-Args, r_web-app-Flow }*

  & element rcore:choose {
      element rcore:when { rcore_when-Args, r_web-app-Flow }+,
      element rcore:otherwise { r_web-app-Flow }?
    }*

r_web-app-Content =
  (r_web-app-Flow

   & r_config-file*)

r_web-app = element web-app {
  attribute version { string }?,
  attribute xsi:schemaLocation { string }?,

  r_web-app-Content
}

rc_web-app = element web-app {
  (attribute id { string }
  | attribute url-prefix { string } | element url-prefix { string }
  | attribute url-regexp { string } | element url-regexp { string }),

  (r_context-path?

  & r_document-directory?

  & r_startup-mode?

  & r_redeploy-mode?),

  r_web-app-Content
}

r_web-resource-collection = element web-resource-collection {
  (attribute web-resource-name { string }
   | element web-resource-name { string })?,

  r_description*,

  r_url-pattern*,

  r_http-method*
}


r_welcome-file-list = element welcome-file-list {
  string |

  element welcome-file { string }*
}

Copyright © 1998-2015 Caucho Technology, Inc. All rights reserved. Resin ® is a registered trademark. Quercustm, and Hessiantm are trademarks of Caucho Technology.

Cloud-optimized Resin Server is a Java EE certified Java Application Server, and Web Server, and Distributed Cache Server (Memcached).
Leading companies worldwide with demand for reliability and high performance web applications including SalesForce.com, CNET, DZone and many more are powered by Resin.

home company docs 
app server