GWT:gwt.xmlのDOCTYPE

2019年5月16日

以前に作成したgwt.xml(これはEclipseのGWTプラグインが自動作成したものだが)をそのまま使い続けていると、警告が発生する。例えば、

<?xml version="1.0" encoding="UTF-8"?>
<!--
  When updating your version of GWT, you should also update this DTD reference,
  so that your app can take advantage of the latest GWT module capabilities.
-->
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.5.1//EN"
  "http://google-web-toolkit.googlecode.com/svn/tags/2.5.1/distro-source/core/src/gwt-module.dtd">
<module>
  <source path='client'/>
  <source path='shared'/>
</module>

に対して以下の警告だ。

The file cannot be validated as the XML definition "http://google-web-toolkit.googlecode.com/svn/tags/2.5.1/distro-source/core/src/gwt-module.dtd" that is specified as describing the syntax of the file cannot be located.    ..........  line 7  XML Problem

実際に、http://google-web-toolkit.googlecode.com/svn/tags/2.5.1/distro-source/core/src/gwt-module.dtd(リンク切れ)には何も存在していない。

  When updating your version of GWT, you should also update this DTD reference,
  so that your app can take advantage of the latest GWT module capabilities.

というコメントにもあるように、GWTバージョンを変更したら、それに伴いDTD参照も変えろという。

実際に、GWT2.8.2を使い、EclipseのGWTプラグインでサンプルを作成してみると、以下のようなgwt.xmlになる。

<?xml version="1.0" encoding="UTF-8"?>
<!--
  When updating your version of GWT, you should also update this DTD reference,
  so that your app can take advantage of the latest GWT module capabilities.
-->
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.8.2//EN"
  "http://gwtproject.org/doctype/2.8.2/gwt-module.dtd">
<module rename-to='sample'>
  <!-- Inherit the core Web Toolkit stuff.                        -->
  <inherits name='com.google.gwt.user.User'/>

  <!-- Inherit the default GWT style sheet.  You can change       -->
  <!-- the theme of your GWT application by uncommenting          -->
  <!-- any one of the following lines.                            -->
  <inherits name='com.google.gwt.user.theme.clean.Clean'/>
  <!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> -->
  <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
  <!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/>     -->

  <!-- Other module inherits                                      -->

  <!-- Specify the app entry point class.                         -->
  <entry-point class='sample.client.Sample'/>

  <!-- Specify the paths for translatable code                    -->
  <source path='client'/>
  <source path='shared'/>

  <!-- allow Super Dev Mode -->
  <add-linker name="xsiframe"/>
</module>

http://gwtproject.org/doctype/2.8.2/gwt-module.dtdとあるが、しかしこれも間違いのようだ。gwtprojectのトップページhttp://www.gwtproject.org/に移動してしまう。

正しい記述は以下と思われる。

http://www.gwtproject.org/doctype/2.8.2/gwt-module.dtd

つまり2.8.2の場合には以下になる。

<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.8.2//EN"
  "http://www.gwtproject.org/doctype/2.8.2/gwt-module.dtd">