サーブレット 2.4/JSP 2.0を含むJ2EE 1.4から、アプリケーションサーバのデプロイメント・ディスクリプタ(web.xml)のスキーマ定義が、DTDからXML Schemaに変更になりました。
DTDでは、定義されている順序に従って要素を記述しなくてはなりません。そのため、これまではweb.xml内の各要素(filter、servlet、servlet-mappingなど)は、DTDに定義されている順に従って記述しなくてはなりませんでした。しかし、J2EE 1.4では、web.xml直下の子要素の登場順を指定していません。
注意:ただし、Tomcat 5では、DTDとの後方互換を維持するために、DTDで定義されたものと同じ順序で要素を記述しなくてはならないことになっています。
またDTDと異なり、XML Schemaでは複数のスキーマ定義を組み合わせて、新たなスキーマを定義することが可能です。そのため、元のスキーマ定義に矛盾しない範囲で、web.xmlを独自拡張する、といったことができるようになります。
以前のDTDとの後方互換性が保たれているため、J2EE 1.3をベースに書かれたweb.xmlは、変更せずにそのまま利用することができます。しかし、サーブレット2.4で拡張されたリクエスト・リスナやフィルタ、JSP 2.0で追加されたタグ・ファイルや式言語(Expression Language)などの新機能を利用したいときは、web.xmlのスキーマ定義をXML Schemaに変更する必要があります。
スキーマ定義の変更方法
J2EE 1.3のweb.xmlは以下のようになっています。赤字部分が、DTDによって宣言されているスキーマ定義になります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このweb.xmlを以下のように変更することで、J2EE 1.4へ対応させることができます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
web.xml内の要素
以下に、J2EE 1.4対応のweb.xmlで使用できる主な子要素を、ツリー構造で紹介します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
各要素の右側の記号は、各要素の登場回数を示すもので、それぞれの意味は以下の表のとおりです。また、[2.4]は当該要素がサーブレット2.4以降でのみ利用可能であることを示します。
記号 | 意味 | |
---|---|---|
なし | 1回のみ登場 | |
* | 0回以上登場 | |
+ | 1回以上登場 | |
? | 0、または1回登場 | |
m..n | m回以上、n回以下登場 |
Copyright © ITmedia, Inc. All Rights Reserved.