Skip to content

Commit d54b0a2

Browse files
dchelimskyfogus
authored andcommitted
only add namespace to tags when namespace-aware is true
1 parent b6f0015 commit d54b0a2

File tree

4 files changed

+14
-8
lines changed

4 files changed

+14
-8
lines changed

src/main/clojure/clojure/data/xml.clj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ for documentation on xml options. These are the defaults:
7676
(let [props* (merge {:include-node? #{:element :characters}
7777
:coalescing true
7878
:supporting-external-entities false
79-
:location-info true}
79+
:location-info true
80+
:namespace-aware true}
8081
opts)]
8182
(pull-seq (make-stream-reader props* source)
8283
props*

src/main/clojure/clojure/data/xml/jvm/parse.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
XMLStreamConstants/START_ELEMENT
8080
(if (include-node? :element)
8181
(let [ns-env (nss-hash sreader (or (first ns-envs) pu/EMPTY))
82-
tag (qname (when-not namespace-aware (.getNamespaceURI sreader))
82+
tag (qname (when namespace-aware (.getNamespaceURI sreader))
8383
(.getLocalName sreader)
8484
(.getPrefix sreader))
8585
attrs (attr-hash sreader)

src/main/clojure/clojure/data/xml/name.cljc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
([uri local] (keyword (when-not (str/blank? uri)
5252
(encode-uri (str "xmlns." uri)))
5353
local))
54-
([uri local prefix] (qname uri local)))
54+
([uri local _prefix] (qname uri local)))
5555

5656
;; The empty string shall be equal to nil for xml names
5757
(defn namespaced? [qn]

src/test/clojure/clojure/data/xml/test_names.clj

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
["uri-u:" "name"] [::U/name "{uri-u:}name" (parse-qname "{uri-u:}name") (as-qname "{uri-u:}name")]
1717
["uri-v:" "vname"] [::V/vname "{uri-v:}vname" (parse-qname "{uri-v:}vname")]
1818
["uri-w:" "wname"] [::W/wname "{uri-w:}wname" (parse-qname "{uri-w:}wname")]
19-
;; ["http://www.w3.org/XML/1998/namespace" "name"] [:xml/name]
19+
["http://www.w3.org/XML/1998/namespace" "name"] [:xml/name]
2020
["http://www.w3.org/2000/xmlns/" "name"] [:xmlns/name]))
2121

2222

@@ -27,10 +27,15 @@
2727
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><D:limit xmlns:D=\"DAV:\"><D:nresults>100</D:nresults></D:limit>"))
2828

2929
(deftest test-parse-raw
30-
(are [xml result] (= (parse-str xml) result)
31-
"<D:limit xmlns:D=\"DAV:\"><D:nresults>100</D:nresults></D:limit>"
32-
(element ::D/limit {}
33-
(element ::D/nresults nil "100"))))
30+
(testing "includes namespace in tags when namespace-aware is true"
31+
(is (= (element ::D/limit {}
32+
(element ::D/nresults nil "100"))
33+
(parse-str "<D:limit xmlns:D=\"DAV:\"><D:nresults>100</D:nresults></D:limit>"))))
34+
(testing "leaves namespace off tags when namespace-aware is false"
35+
(is (= (element :limit {:xmlns.http%3A%2F%2Fwww.w3.org%2F2000%2Fxmlns%2F/D "DAV:"}
36+
(element :nresults nil "100"))
37+
(parse-str "<limit xmlns:D=\"DAV:\"><nresults>100</nresults></limit>"
38+
:namespace-aware false)))))
3439

3540
(deftest qnames
3641
(is (= (qname "foo") (as-qname :foo))))

0 commit comments

Comments
 (0)