The ics-config.dtd is located in the BASEDIR/smarts/conf/ics directory:

<?xml encoding="ISO-8859-1"?>
<!ELEMENT ics_config (nlconfig | actionconfig | userprofileconfig | userconfig | policyconfig | consoleoperationconfig | consoleoperationgroupconfig | map_gifconfig)*>
<!ELEMENT  nlconfig  (filterconfig | columnheading | userprofile)*>
<!ATTLIST nlconfig
 name   CDATA    #REQUIRED 
    enable  (TRUE | FALSE | true | false | True | False) "TRUE" 
    timestamp   CDATA          "0"
>
<!ELEMENT columnheading (#PCDATA)>
<!ATTLIST columnheading
 column  CDATA   #REQUIRED
 column  (String | Boolean | Time | Integer | Float | Percentage )      "String"
>
<!ELEMENT userprofile (#PCDATA)>
<!ELEMENT  userprofileconfig (nl | console | user | action | consoleoperation)*>
<!ATTLIST userprofileconfig
 name   CDATA    #REQUIRED 
    enable  (TRUE | FALSE | true | false | True | False) "TRUE"
    timestamp   CDATA          "0"
>
<!ELEMENT nl (#PCDATA)>
<!ELEMENT user (#PCDATA)>
<!ELEMENT action (#PCDATA)>
<!ATTLIST action
    type  (SERVER | CLIENT | AUTO | server | client | auto | Server | Client | Auto)  #REQUIRED
>
<!ELEMENT console (#PCDATA)>
<!ELEMENT  userconfig (userprofile)*>
<!ATTLIST userconfig
 name   CDATA    #REQUIRED 
    enable  (TRUE | FALSE | true | false | True | False) "TRUE"
    timestamp   CDATA          "0"
>
<!ELEMENT  actionconfig (program_name | timeout? | trace | display | status_criteria? | context_criteria | user_prompts? | userprofile)*>
<!ATTLIST actionconfig
 name   CDATA     #REQUIRED 
    enable  (TRUE | FALSE | true | false | True | False) "TRUE" 
    type  (SERVER | CLIENT | AUTO | server | client | auto | Server | Client | Auto) #REQUIRED
    timestamp   CDATA          "0"
>
<!ELEMENT trace EMPTY>
<!ATTLIST trace
    trace_value  (FALSE | TRUE | true | false | True | False) "FALSE"
>
<!ELEMENT display EMPTY>
<!ATTLIST display
    display_value  (FALSE | TRUE | true | false | True | False) "TRUE"
>
<!ELEMENT program_name (#PCDATA)>
<!ELEMENT timeout (#PCDATA)>
<!-- Note: user prompts are only allowed on server-side actions -->
<!ELEMENT user_prompts (one_prompt*)>
<!ELEMENT one_prompt (#PCDATA)>
<!ATTLIST one_prompt name CDATA #REQUIRED>
<!ELEMENT status_criteria  (filterconfig?)>
<!ELEMENT context_criteria  (filterconfig?)>
<!ELEMENT  filterconfig (isa?, (criterion* | filename))>
<!ATTLIST filterconfig
 type  (ASL | EXPRESSION | asl | expression | Expression)  #REQUIRED  
    enable  (TRUE | FALSE | true | false | True | False)      "TRUE"
>
<!ELEMENT isa  (#PCDATA)>
<!ELEMENT filename (#PCDATA)>
<!ELEMENT criterion (#PCDATA)>
<!ATTLIST criterion
 attribute  CDATA   #REQUIRED
>
<!ELEMENT  policyconfig  (filterconfig | pathconfig)*>
<!ATTLIST policyconfig
 name   CDATA    #REQUIRED 
    timestamp   CDATA          "0"
>
<!ELEMENT  pathconfig  (filterconfig | retireTime | enableTime | escalationlevel)*>
<!ATTLIST pathconfig
 name   CDATA    #REQUIRED 
    enable  (TRUE | FALSE | true | false | True | False) "False" 
    retire     (TRUE | FALSE | true | false | True | False) "False" 
>
<!ELEMENT retireTime (#PCDATA)>
<!ELEMENT enableTime (#PCDATA)>
<!ELEMENT  escalationlevel (action)*>
<!ATTLIST escalationlevel
 level      CDATA    #REQUIRED  
    interval   CDATA    #REQUIRED 
>
<!ENTITY % consoleoper-config SYSTEM "consoleoper-config.dtd">
&consoleoper-config;
<!ENTITY % map-config SYSTEM "../maps/map-config.dtd">
%map-config;