web.xmlのXMLスキーマ検証でエラー
web.xmlを編集していると、eclipseでエラーだとうるさい。amaretas html editor と web toolプラグインを入れていると、どっちかがスキーマ検証してくれるようだけど、エラーの意味が分からなかった。schemaLocationを指定しているのに、「cvc-elt.1: Cannot find the declaration of element 'web-app'.」と、「SchemaLocation: schemaLocation value = 'http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd' must have even number of URI's.」といったように怒られてしまう。
<?xml version="1.0"?> <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/web-app_2_4.xsd" version="2.4"> : </web-app>
偶数個必要ってなんだ??と思いながら調べたところ、ようやく分かりました。ネームスペース 対 XSDファイル という書き方をしなくちゃなんですね。スペースで区切って記述することで解決しました。
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" ↓ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
ちゃんとした書き方してないとこを参照しちゃってたため…。@ITでさえね。http://www.atmarkit.co.jp/fjava/javatips/037container004.html とか。eclipseのWSTのウィザード使えば自動的に書いてくれるんですけどね。Netbeansもできるようです。