jboss-as-web_1_0.xsd 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. ~ JBoss, Home of Professional Open Source.
  4. ~ Copyright 2011, Red Hat, Inc., and individual contributors
  5. ~ as indicated by the @author tags. See the copyright.txt file in the
  6. ~ distribution for a full listing of individual contributors.
  7. ~
  8. ~ This is free software; you can redistribute it and/or modify it
  9. ~ under the terms of the GNU Lesser General Public License as
  10. ~ published by the Free Software Foundation; either version 2.1 of
  11. ~ the License, or (at your option) any later version.
  12. ~
  13. ~ This software is distributed in the hope that it will be useful,
  14. ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. ~ Lesser General Public License for more details.
  17. ~
  18. ~ You should have received a copy of the GNU Lesser General Public
  19. ~ License along with this software; if not, write to the Free
  20. ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  21. ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  22. -->
  23. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  24. targetNamespace="urn:jboss:domain:web:1.0"
  25. xmlns="urn:jboss:domain:web:1.0"
  26. elementFormDefault="qualified"
  27. attributeFormDefault="unqualified"
  28. version="1.0">
  29. <!-- The web subsystem root element -->
  30. <xs:element name="subsystem" type="web-containerType" />
  31. <!-- The web container configuration -->
  32. <xs:complexType name="web-containerType">
  33. <xs:annotation>
  34. <xs:documentation>
  35. <![CDATA[
  36. The web subsystem, used to configure jboss.web
  37. ]]>
  38. </xs:documentation>
  39. </xs:annotation>
  40. <!-- FIXME classloading delegation and package filtering ? -->
  41. <xs:sequence>
  42. <xs:element minOccurs="0" maxOccurs="1" name="configuration" type="webConfigType" />
  43. <xs:element maxOccurs="unbounded" ref="connector" />
  44. <xs:element maxOccurs="unbounded" ref="virtual-server" />
  45. </xs:sequence>
  46. <xs:attribute name="default-virtual-server"/>
  47. <xs:attribute name="native" default="true" type="xs:boolean"/>
  48. </xs:complexType>
  49. <xs:complexType name="webConfigType">
  50. <xs:sequence>
  51. <xs:element name="static-resources" minOccurs="0" maxOccurs="1" type="static-resourcesType">
  52. <xs:annotation>
  53. <xs:documentation>
  54. <![CDATA[
  55. A default service for all web applications, that serves static resources.
  56. It processes all requests that are not mapped to other servlets with servlet mappings.
  57. ]]>
  58. </xs:documentation>
  59. </xs:annotation>
  60. </xs:element>
  61. <xs:element name="jsp-configuration" minOccurs="0" maxOccurs="1" type="jsp-configurationType" />
  62. <!--
  63. <xs:element minOccurs="0" maxOccurs="1" name="csrf"/>
  64. <xs:element minOccurs="0" maxOccurs="1" name="webdav-fix"/>
  65. -->
  66. <xs:element name="mime-mapping" minOccurs="0" maxOccurs="unbounded" type="mime-mappingType" />
  67. <xs:element name="welcome-file" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
  68. </xs:sequence>
  69. </xs:complexType>
  70. <xs:complexType name="static-resourcesType">
  71. <xs:attribute name="listings" default="false" type="xs:boolean" />
  72. <xs:attribute name="sendfile" default="49152" />
  73. <xs:attribute name="file-encoding" />
  74. <xs:attribute name="read-only" default="true" type="xs:boolean" />
  75. <xs:attribute name="webdav" default="false" type="xs:boolean" />
  76. <xs:attribute name="secret" />
  77. <xs:attribute name="max-depth" default="3" />
  78. <xs:attribute name="disabled" default="false" type="xs:boolean" />
  79. </xs:complexType>
  80. <xs:complexType name="jsp-configurationType">
  81. <xs:attribute name="development" default="false" type="xs:boolean" />
  82. <xs:attribute name="disabled" default="false" type="xs:boolean" />
  83. <xs:attribute name="keep-generated" default="true" type="xs:boolean" />
  84. <xs:attribute name="trim-spaces" default="false" type="xs:boolean" />
  85. <xs:attribute name="tag-pooling" default="true" type="xs:boolean" />
  86. <xs:attribute name="mapped-file" default="true" type="xs:boolean" />
  87. <xs:attribute name="check-interval" default="0" />
  88. <xs:attribute name="modification-test-interval" default="4" />
  89. <xs:attribute name="recompile-on-fail" default="false" type="xs:boolean" />
  90. <xs:attribute name="smap" default="true" type="xs:boolean" />
  91. <xs:attribute name="dump-smap" default="false" type="xs:boolean" />
  92. <xs:attribute name="generate-strings-as-char-arrays" default="false" type="xs:boolean" />
  93. <xs:attribute name="error-on-use-bean-invalid-class-attribute" default="false" type="xs:boolean" />
  94. <xs:attribute name="scratch-dir" />
  95. <xs:attribute name="source-vm" default="1.5" />
  96. <xs:attribute name="target-vm" default="1.5" />
  97. <xs:attribute name="java-encoding" default="UTF8" />
  98. <xs:attribute name="x-powered-by" default="true" type="xs:boolean" />
  99. <xs:attribute name="display-source-fragment" default="true" type="xs:boolean" />
  100. </xs:complexType>
  101. <!--
  102. <xs:complexType name="cgi-servletType">
  103. <xs:attribute name="debug" default="0"/>
  104. <xs:attribute name="cgi-path-prefix"/>
  105. <xs:attribute name="pass-shell-environment" default="false" type="xs:boolean"/>
  106. <xs:attribute name="cgi-executable" default="perl"/>
  107. <xs:attribute name="parameter-encoding"/>
  108. </xs:complexType>
  109. <xs:complexType name="ssi-servletType">
  110. <xs:attribute name="debug" default="0"/>
  111. <xs:attribute name="webapp-relative" default="false" type="xs:boolean"/>
  112. <xs:attribute name="expires"/>
  113. <xs:attribute name="buffered" default="false" type="xs:boolean"/>
  114. <xs:attribute name="input-encoding"/>
  115. <xs:attribute name="output-encoding" default="UTF-8"/>
  116. </xs:complexType>
  117. <xs:complexType name="ssi-filterType">
  118. <xs:attribute name="debug" default="0"/>
  119. <xs:attribute name="webapp-relative" default="false" type="xs:boolean"/>
  120. <xs:attribute name="expires"/>
  121. <xs:attribute name="content-type-regex"/>
  122. </xs:complexType>
  123. -->
  124. <xs:element name="connector">
  125. <xs:complexType>
  126. <xs:sequence>
  127. <xs:element name="ssl" type="sslType" minOccurs="0" maxOccurs="1"/>
  128. <xs:element name="virtual-server" minOccurs="0" maxOccurs="unbounded">
  129. <xs:complexType>
  130. <xs:attribute name="name" type="xs:string" use="required" />
  131. </xs:complexType>
  132. </xs:element>
  133. </xs:sequence>
  134. <xs:attributeGroup ref="web-connector-attlist" />
  135. </xs:complexType>
  136. </xs:element>
  137. <xs:attributeGroup name="web-connector-attlist">
  138. <xs:attribute name="name" use="required" />
  139. <xs:attribute name="protocol" use="required" />
  140. <xs:attribute name="scheme" />
  141. <xs:attribute name="socket-binding" use="required" />
  142. <xs:attribute name="enable-lookups" default="false" type="xs:boolean" />
  143. <xs:attribute name="proxy-name" />
  144. <xs:attribute name="proxy-port" />
  145. <xs:attribute name="redirect-port" />
  146. <xs:attribute name="secure" default="false" type="xs:boolean" />
  147. <xs:attribute name="max-post-size" />
  148. <xs:attribute name="max-save-post-size" />
  149. <xs:attribute name="enabled" default="true" type="xs:boolean" />
  150. <xs:attribute name="executor" type="xs:string" />
  151. <xs:attribute name="max-connections" />
  152. </xs:attributeGroup>
  153. <xs:element name="virtual-server">
  154. <xs:complexType>
  155. <xs:sequence>
  156. <xs:element name="alias" minOccurs="0" maxOccurs="unbounded">
  157. <xs:annotation>
  158. <xs:documentation>Vhost aliases</xs:documentation>
  159. </xs:annotation>
  160. <xs:complexType>
  161. <xs:attribute name="name" type="xs:string" use="required" />
  162. </xs:complexType>
  163. </xs:element>
  164. <xs:element name="access-log" minOccurs="0" type="http-access-logType" />
  165. <xs:element name="rewrite" minOccurs="0" type="http-rewriteType" />
  166. </xs:sequence>
  167. <xs:attributeGroup ref="virtual-server-attlist" />
  168. </xs:complexType>
  169. </xs:element>
  170. <xs:attributeGroup name="virtual-server-attlist">
  171. <xs:attribute name="enable-welcome-root" type="xs:boolean">
  172. <xs:annotation>
  173. <xs:documentation>Whether or not the bundled welcome directory is used as the root web context</xs:documentation>
  174. </xs:annotation>
  175. </xs:attribute>
  176. <xs:attribute name="default-web-module" default="ROOT.war" />
  177. <xs:attribute name="name" use="required">
  178. <xs:annotation>
  179. <xs:documentation>Main vhost name</xs:documentation>
  180. </xs:annotation>
  181. </xs:attribute>
  182. </xs:attributeGroup>
  183. <xs:complexType name="http-access-logType">
  184. <xs:sequence>
  185. <xs:element name="directory" type="directoryType" />
  186. </xs:sequence>
  187. <xs:attribute name="pattern" default="common" />
  188. <xs:attribute name="resolve-hosts" default="false" type="xs:boolean" />
  189. <xs:attribute name="extended" default="false" type="xs:boolean" />
  190. <xs:attribute name="prefix" default="access_log." />
  191. <xs:attribute name="rotate" default="true" type="xs:boolean" />
  192. </xs:complexType>
  193. <xs:complexType name="http-rewriteType">
  194. <xs:sequence>
  195. <xs:element name="condition" type="rewrite-conditionType" />
  196. </xs:sequence>
  197. <xs:attribute name="pattern" use="required">
  198. <xs:annotation>
  199. <xs:documentation>
  200. <![CDATA[
  201. Pattern is a perl compatible regular expression, which is applied to the current URL
  202. ]]>
  203. </xs:documentation>
  204. </xs:annotation>
  205. </xs:attribute>
  206. <xs:attribute name="substitution" use="required">
  207. <xs:annotation>
  208. <xs:documentation>
  209. <![CDATA[
  210. The substitution of a rewrite rule is the string which is substituted for (or replaces)
  211. the original URL which Pattern matched
  212. ]]>
  213. </xs:documentation>
  214. </xs:annotation>
  215. </xs:attribute>
  216. <xs:attribute name="flags" use="required">
  217. <xs:annotation>
  218. <xs:documentation>Substitution options</xs:documentation>
  219. </xs:annotation>
  220. </xs:attribute>
  221. </xs:complexType>
  222. <xs:complexType name="rewrite-conditionType">
  223. <xs:attribute name="test" use="required">
  224. <xs:annotation>
  225. <xs:documentation>
  226. <![CDATA[
  227. The test string is first evaluated, before being matched against the specified pattern
  228. ]]>
  229. </xs:documentation>
  230. </xs:annotation>
  231. </xs:attribute>
  232. <xs:attribute name="pattern" use="required">
  233. <xs:annotation>
  234. <xs:documentation>
  235. <![CDATA[
  236. CondPattern is the condition pattern, a regular expression which is applied to the
  237. current instance of the test string
  238. ]]>
  239. </xs:documentation>
  240. </xs:annotation>
  241. </xs:attribute>
  242. <xs:attribute name="flags" use="required">
  243. <xs:annotation>
  244. <xs:documentation>Matching options</xs:documentation>
  245. </xs:annotation>
  246. </xs:attribute>
  247. </xs:complexType>
  248. <xs:complexType name="directoryType">
  249. <xs:annotation>
  250. <xs:documentation>
  251. <![CDATA[
  252. The "relative-to" references a global path configuration in the domain model, with the default
  253. to the JBoss Application data directory (jboss.server.data.dir).
  254. The "path" the directory based on the referenced path.
  255. ]]>
  256. </xs:documentation>
  257. </xs:annotation>
  258. <xs:attribute name="relative-to" type="xs:string" default="jboss.server.data.dir" />
  259. <xs:attribute name="path" type="xs:string" default="tx-object-store" />
  260. </xs:complexType>
  261. <xs:complexType name="mime-mappingType">
  262. <xs:attribute name="name" use="required"/>
  263. <xs:attribute name="value" use="optional"/>
  264. </xs:complexType>
  265. <!-- general SSL definitions -->
  266. <xs:complexType name="sslType">
  267. <xs:annotation>
  268. <xs:documentation>Configuration information for one SSL configuration.</xs:documentation>
  269. </xs:annotation>
  270. <xs:attribute name="name" type="xs:string" use="required"/>
  271. <xs:attribute name="key-alias" default="jboss"/>
  272. <xs:attribute name="password">
  273. <xs:annotation>
  274. <xs:documentation>Password for both trustore and keystore</xs:documentation>
  275. </xs:annotation>
  276. </xs:attribute>
  277. <xs:attribute name="certificate-key-file" default="${user.home}/.keystore">
  278. <xs:annotation>
  279. <xs:documentation>
  280. When using JSSE that could be the only file, with OpenSSL there several files
  281. Additionally we should have a logic to find the type of the file (PEM, PKCS12 or JKS) before using it.
  282. </xs:documentation>
  283. </xs:annotation>
  284. </xs:attribute>
  285. <xs:attribute name="cipher-suite" default="ALL">
  286. <xs:annotation>
  287. <xs:documentation>
  288. comma separated list of encryption ciphers the configuration is allowed to use, that MUST NOT be
  289. the JVM default in of JSSE as contains weak ciphers.
  290. that is SSLCipherSuite when using OpenSSL (APR).
  291. </xs:documentation>
  292. </xs:annotation>
  293. </xs:attribute>
  294. <xs:attribute name="protocol" default="ALL" type="SSlProtocolType"/>
  295. <xs:attribute name="verify-client" default="none">
  296. <xs:annotation>
  297. <xs:documentation>
  298. that is OpenSSL SSLVerifyClient (optional,require,optionalNoCA,none) and clientAuth (true=require/false=none)
  299. </xs:documentation>
  300. </xs:annotation>
  301. </xs:attribute>
  302. <xs:attribute name="verify-depth" default="10"/>
  303. <xs:attribute name="certificate-file">
  304. <xs:annotation>
  305. <xs:documentation>
  306. Only in the OpenSSL (JSSE keystore contains both key and certificate).
  307. </xs:documentation>
  308. </xs:annotation>
  309. </xs:attribute>
  310. <xs:attribute name="ca-certificate-file">
  311. <xs:annotation>
  312. <xs:documentation>
  313. The file containing the CA certificates, truststoreFile in JSSE, note the password it same as the keystore password.
  314. </xs:documentation>
  315. </xs:annotation>
  316. </xs:attribute>
  317. <xs:attribute name="ca-revocation-url">
  318. <xs:annotation>
  319. <xs:documentation>
  320. A file or URL to get the revocation list. (actually: crlFile is JSSE and SSLCARevocationFile in OpenSSL)
  321. </xs:documentation>
  322. </xs:annotation>
  323. </xs:attribute>
  324. <xs:attribute name="session-cache-size" default="0"/>
  325. <xs:attribute name="session-timeout" default="86400"/>
  326. </xs:complexType>
  327. <xs:simpleType name="SSlProtocolType">
  328. <xs:restriction base="xs:token">
  329. <xs:enumeration value="SSLv2"/>
  330. <xs:enumeration value="SSLv3"/>
  331. <xs:enumeration value="TLSv1"/>
  332. <xs:enumeration value="SSLv2+SSLv3"/>
  333. <xs:enumeration value="ALL"/>
  334. </xs:restriction>
  335. </xs:simpleType>
  336. </xs:schema>