]> matita.cs.unibo.it Git - helm.git/commitdiff
escape exception name and arguments embedded in root element attributes
authorStefano Zacchiroli <zack@upsilon.cc>
Fri, 4 Feb 2005 15:04:53 +0000 (15:04 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Fri, 4 Feb 2005 15:04:53 +0000 (15:04 +0000)
to avoid non well formed xml documents to be generated

helm/http_getter/Makefile
helm/http_getter/main.ml

index 94668953e0f2a0391884ffc7ccacf371c6f39b09..f5d4355646d911275e0767d28565f7a52543ce5a 100644 (file)
@@ -1,7 +1,7 @@
 VERSION = 0.3.0
 NAME = http_getter
 
-REQUIRES = helm-getter helm-logger helm-registry
+REQUIRES = helm-getter helm-logger helm-registry netstring
 COMMONOPTS = -package "$(REQUIRES)" -pp camlp4o -thread
 OCAMLFIND = ocamlfind
 OCAMLC = $(OCAMLFIND) ocamlc -g $(COMMONOPTS)
index 1763836158eb1afd6c851bc0bea1789f1743361b..640584e63a9729e2d03941162c5633039ac2c7a5 100644 (file)
@@ -90,13 +90,16 @@ let parse_rdf_class (req: Http_types.request) =
   | "backward" -> `Backward
   | c -> raise (Bad_request ("Invalid RDF class: " ^ c))
 
+let xml_escape = Netencoding.Html.encode ~in_enc:`Enc_utf8 ()
+
 let html_tag ?exn () =
   let xml_decl = "<?xml version=\"1.0\"?>\n" in
   match exn with
-  | Some (exn, value) ->
+  | Some (exn, arg) ->
+      let (exn, arg) = (xml_escape exn, xml_escape arg) in
       sprintf
         "%s<html xmlns=\"%s\"\nxmlns:helm=\"%s\"\nhelm:exception=\"%s\"\nhelm:exception_arg=\"%s\">\n"
-        xml_decl xhtml_ns helm_ns exn value
+        xml_decl xhtml_ns helm_ns exn arg
   | None ->
       sprintf "%s<html xmlns=\"%s\"\nxmlns:helm=\"%s\">\n"
         xml_decl xhtml_ns helm_ns