J2EE Deployment Descriptor

J2EEのDD(Deployment Descriptor)の版は知らないうちに2.4に上がって、さらにスキーマ対応していたのね。私は2.3の環境しか使っていないので全然知らなかった。
2.3

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

2.4

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

実際に2.4のスキーマを見てみたが、語彙が拡張されているのを抜きにしたとしても見難い。好みもあるのだろうが、私にとってXMLスキーマはどうしても可読性に劣る。慣れの問題だろうが現状はDTDのほうが良いと思う。

追記:
スキーマにすることで文書の構造が明確に定義できるため、DTDのように要素の出現順を記述する必要が無くなるという利点も出るらしいのだが、"sequence"定義されている場合には意味無いような。