docs: public static void main(String[] pArgs) throws Exception {
      // -- Print DTD
      System.out.println("DTD: \n" + DTD);
      System.out.println("--");
  
      // -- Test load
      System.out.println("Reading properties from \"" + pArgs[0] + "\"...");
      XMLProperties props = new XMLProperties();
  
      props.load(new FileInputStream(new File(pArgs[0])));
      props.list(System.out);
      System.out.println("--");
  
      // -- Test recursion
      String     key = "key";
      Object     old = props.setProperty(key, "AAA");
      Properties p1  = new XMLProperties(new XMLProperties(props));
      Properties p2  = new Properties(new Properties(props));
  
      System.out.println("XMLProperties: " + p1.getProperty(key) + " ==" + " Properties: " + p2.getProperty(key));
      if (old == null) {
        props.remove("key");
      } else {
        props.put("key", old);  // Put old value back, to avoid confusion...
      }
      System.out.println("--");
  
      // -- Test store
      //props.store(System.out, "XML Properties file written by XMLProperties.");
      File out = new File("copy_of_" + pArgs[0]);
  
      System.out.println("Writing properties to \"" + out.getName() + "\"");
      if (!out.exists()) {
        props.store(new FileOutputStream(out), "XML Properties file written by XMLProperties.");
      } else {
        System.err.println("File \"" + out.getName() + "\" allready exists, cannot write!");
      }
  
      // -- Test utility methods
      // Write normal properties from XMLProperties
      out = new File("copy_of_" + pArgs[0].substring(0, pArgs[0].lastIndexOf(".")) + ".properties");
      System.out.println("Writing properties to \"" + out.getName() + "\"");
      if (!out.exists()) {
        storeProperties(props, new FileOutputStream(out), "Properties file written by XMLProperties.");
      } else {
        System.err.println("File \"" + out.getName() + "\" allready exists, cannot write!");
      }
      System.out.println("--");
  
      // -- Test type attribute
      System.out.println("getPropertyValue(\"one\"): " + props.getPropertyValue("one") + " class: "
                         + props.getPropertyValue("one").getClass());
      System.out.println("setPropertyValue(\"now\", " + new Date() + "): " + props.setPropertyValue("now", new Date()) + " class: "
                         + props.getPropertyValue("now").getClass());
      System.out.println("getPropertyValue(\"date\"): " + props.getPropertyValue("date") + " class: "
                         + props.getPropertyValue("date").getClass());
      System.out.println("getPropertyValue(\"time\"): " + props.getPropertyValue("time") + " class: "
                         + props.getPropertyValue("time").getClass());
    }