<?xml version="1.0" encoding="UTF-8"?>

<!-- Add the following to any file that is to be validated against this DTD:

<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
    "http://checkstyle.sourceforge.net/dtds/configuration_1_3.dtd">
-->

<!ELEMENT module (module|property|metadata|message)*>
<!ATTLIST module name NMTOKEN #REQUIRED>

<!ELEMENT property EMPTY>
<!ATTLIST property
    name NMTOKEN #REQUIRED
    value CDATA #REQUIRED
    default CDATA #IMPLIED
>

<!--

   Used to store metadata in the Checkstyle configuration file. This
   information is ignored by Checkstyle. This may be useful if you want to
   store plug-in specific information.

   To avoid name clashes between different tools/plug-ins you are *strongly*
   encouraged to prefix all names with your domain name. For example, use the
   name "com.mycompany.parameter" instead of "parameter".

   The prefix "com.puppycrawl." is reserved for Checkstyle.

-->

<!ELEMENT metadata EMPTY>
<!ATTLIST metadata
    name NMTOKEN #REQUIRED
    value CDATA #REQUIRED
>

<!--
   Can be used to replaced some generic Checkstyle messages with a custom
   messages.

   The 'key' attribute specifies for which actual Checkstyle message the
   replacing should occur, look into Checkstyle's message.properties for
   the according message keys.

   The 'value' attribute defines the custom message patterns including
   message parameter placeholders as defined in the original Checkstyle
   messages (again see message.properties for reference).
-->
<!ELEMENT message EMPTY>
<!ATTLIST message
    key NMTOKEN #REQUIRED
    value CDATA #REQUIRED
>
