Dtd

`sig
type 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 = DTDEmpty | DTDAny | DTDChild of Dtd.dtd_child
type dtd_attr_default =
DTDDefault of string
| DTDRequired
| DTDImplied
| DTDFixed of string
type dtd_attr_type = DTDCData | DTDNMToken | DTDEnum of string list
type 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
val parse_file : string -> Dtd.dtd
val parse_in : Pervasives.in_channel -> Dtd.dtd
val parse_string : string -> Dtd.dtd
val check : Dtd.dtd -> Dtd.checked
val prove : Dtd.checked -> string -> Xml.xml -> Xml.xml
val to_string : Dtd.dtd_item -> string
type parse_error_msg =
InvalidDTDDecl
| InvalidDTDElement
| InvalidDTDAttribute
| InvalidDTDTag
| DTDItemExpected
type check_error =
ElementDefinedTwice of string
| AttributeDefinedTwice of string * string
| ElementEmptyContructor of string
| ElementReferenced of string * string
| ElementNotDeclared of string
type prove_error =
UnexpectedPCData
| UnexpectedTag of string
| UnexpectedAttribute of string
| InvalidAttributeValue of string
| RequiredAttribute of string
| ChildExpected of string
| EmptyExpected
type parse_error = Dtd.parse_error_msg * Xml.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
val _raises : (string -> exn) -> unit
end`