sig
  type dtd_child =
    Xml_light_types.dtd_child =
      DTDTag of string
    | DTDPCData
    | DTDOptional of Dtd.dtd_child
    | DTDZeroOrMore of Dtd.dtd_child
    | DTDOneOrMore of Dtd.dtd_child
    | DTDChoice of Dtd.dtd_child list
    | DTDChildren of Dtd.dtd_child list
  type dtd_element_type =
    Xml_light_types.dtd_element_type =
      DTDEmpty
    | DTDAny
    | DTDChild of Dtd.dtd_child
  type dtd_attr_default =
    Xml_light_types.dtd_attr_default =
      DTDDefault of string
    | DTDRequired
    | DTDImplied
    | DTDFixed of string
  type dtd_attr_type =
    Xml_light_types.dtd_attr_type =
      DTDCData
    | DTDNMToken
    | DTDEnum of string list
    | DTDID
    | DTDIDRef
  type dtd_item =
    Xml_light_types.dtd_item =
      DTDAttribute of string * string * Dtd.dtd_attr_type *
        Dtd.dtd_attr_default
    | DTDElement of string * Dtd.dtd_element_type
  type dtd = Dtd.dtd_item list
  type checked = Xml_light_dtd_check.checked
  val parse_file : string -> Dtd.dtd
  val parse_in : Stdlib.in_channel -> Dtd.dtd
  val parse_string : string -> Dtd.dtd
  val check : Dtd.dtd -> Dtd.checked
  val prove :
    Dtd.checked -> string -> Xml_light_types.xml -> Xml_light_types.xml
  val to_string : Dtd.dtd_item -> string
  type parse_error_msg =
    Xml_light_errors.dtd_parse_error_msg =
      InvalidDTDDecl
    | InvalidDTDElement
    | InvalidDTDAttribute
    | InvalidDTDTag
    | DTDItemExpected
  type check_error =
    Xml_light_errors.dtd_check_error =
      ElementDefinedTwice of string
    | AttributeDefinedTwice of string * string
    | ElementEmptyContructor of string
    | ElementReferenced of string * string
    | ElementNotDeclared of string
    | WrongImplicitValueForID of string * string
  type prove_error =
    Xml_light_errors.dtd_prove_error =
      UnexpectedPCData
    | UnexpectedTag of string
    | UnexpectedAttribute of string
    | InvalidAttributeValue of string
    | RequiredAttribute of string
    | ChildExpected of string
    | EmptyExpected
    | DuplicateID of string
    | MissingID of string
  type parse_error = Dtd.parse_error_msg * Xml_light_errors.error_pos
  exception Parse_error of Dtd.parse_error
  exception Check_error of Dtd.check_error
  exception Prove_error of Dtd.prove_error
  val parse_error : Dtd.parse_error -> string
  val check_error : Dtd.check_error -> string
  val prove_error : Dtd.prove_error -> string
end