Search code examples
javaandroidxmlgwtlibgdx

The markup declarations must be well-formed


I'm using libgdx to build a game and suddenly, I opened eclipse and it says

The markup declarations contained or pointed to by the document type declaration must be well-formed

on this xml: /Tower Conquest-core/src/TowerConquest.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit trunk//EN" "http://google-web-toolkit.googlecode.com/svn/trunk/distro-source/core/src/gwt-module.dtd">
<module>
    <source path="noxer/games/ballons" />
</module>

the project builds anyway and it works but the error keeps there. I tried deleting file and writting it back but it keeps saying there's an error


Solution

  • Eclipse tries to validate the XML using the referenced DTD:

    When you open this DTD you get

    Source code for the GWT project has moved to https://gwt.googlesource.com
    
    The file you're looking for can be now found at
    https://gwt.googlesource.com/gwt/+/master/./distro-source/core/src/gwt-module.dtd
    (if it's not been deleted or renamed since then.)
    

    Obviously this is no valid DTD and therefore Eclipse gives an error.

    The solution seems simple: Use the new URL for the DTD in your XML

    <!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit trunk//EN" "https://gwt.googlesource.com/gwt/+/master/distro-source/core/src/gwt-module.dtd">
    

    Unfortunately this URL returns a HTML representation of the repository file and Eclipse will complain again. Also

    https://gwt.googlesource.com/gwt/+/master/distro-source/core/src/gwt-module.dtd?format=TEXT 
    

    doesn't seem to work correctly.

    You could then create a local version of the DTD and change the doctype declaration in the XML accordingly or simple remove the doctype declaration if validation is not essential.