src/Pure/General/xml.ML
changeset 21628 7ab9ad8d6757
parent 19482 9f11af8f7ef9
child 21629 c762bdc2b504
equal deleted inserted replaced
21627:b822c7e61701 21628:7ab9ad8d6757
     5 Basic support for XML.
     5 Basic support for XML.
     6 *)
     6 *)
     7 
     7 
     8 signature XML =
     8 signature XML =
     9 sig
     9 sig
       
    10   type attributes = (string * string) list
       
    11   datatype tree =
       
    12       Elem of string * attributes * tree list
       
    13     | Text of string
       
    14   type element = string * attributes * tree list
    10   val header: string
    15   val header: string
    11   val text: string -> string
    16   val text: string -> string
    12   val text_charref: string -> string
    17   val text_charref: string -> string
    13   val cdata: string -> string
    18   val cdata: string -> string
    14   val element: string -> (string * string) list -> string list -> string
    19   val element: string -> attributes -> string list -> string
    15   datatype tree =
       
    16       Elem of string * (string * string) list * tree list
       
    17     | Text of string
       
    18   val string_of_tree: tree -> string
    20   val string_of_tree: tree -> string
    19   val parse_content: string list -> tree list * string list
    21   val parse_content: string list -> tree list * string list
    20   val parse_elem: string list -> tree * string list
    22   val parse_elem: string list -> tree * string list
    21   val parse_document: string list -> (string option * tree) * string list
    23   val parse_document: string list -> (string option * tree) * string list
    22   val scan_comment_whspc : string list -> unit * string list
    24   val scan_comment_whspc : string list -> unit * string list
    69 
    71 
    70 
    72 
    71 
    73 
    72 (** explicit XML trees **)
    74 (** explicit XML trees **)
    73 
    75 
       
    76 type attributes = (string * string) list
       
    77 
    74 datatype tree =
    78 datatype tree =
    75     Elem of string * (string * string) list * tree list
    79     Elem of string * attributes * tree list
    76   | Text of string;
    80   | Text of string;
       
    81 
       
    82 type element = string * attributes * tree list
    77 
    83 
    78 fun string_of_tree tree =
    84 fun string_of_tree tree =
    79   let
    85   let
    80     fun string_of (Elem (name, atts, ts)) buf =
    86     fun string_of (Elem (name, atts, ts)) buf =
    81         let val buf' =
    87         let val buf' =