Посмотрите здесь: https://github.com/clojure/data.xml#namespace-support
Только что попробовал с простым XML.Конфиг в deps.edn
:
org.clojure/data.xml {:mvn/version "0.2.0-alpha6"}
Простой XML работает.Объявите пространство имен:
(ns demo.core
(:require
[clojure.data.xml :as xml] ...))
(let [tags (xml/element :foo {:foo-attr "foo value"}
(xml/element :bar {:bar-attr "bar value"}
(xml/element :baz {} "The baz value")))]
(t/spyx (xml/emit-str tags)) )
с результатом:
(xml/emit-str tags) =>
"<foo foo-attr=\"foo value\">
<bar bar-attr=\"bar value\">
<baz>The baz value</baz></bar></foo>"
Пространства имен по-прежнему находятся в стадии разработки для ClojureScript.Этот метод завершается ошибкой:
(xml/alias-uri 'xh "http://www.w3.org/1999/xhtml")
(xml/emit-str {:tag ::xh/html
:content [{:tag ::xh/head}
{:tag ::xh/body :content ["DOCUMENT"]}]}))
, но этот метод работает:
(xml/emit-str {:tag "{http://www.w3.org/1999/xhtml}html" ; `::xh/html` fails
:content [{:tag "{http://www.w3.org/1999/xhtml}head" }
{:tag "{http://www.w3.org/1999/xhtml}body" :content ["DOCUMENT"]}]}))
с результатом:
"<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head></head>
<body>DOCUMENT</body></html>"
Таким образом, он не объявляет псевдоним как a
и префикс каждого тега, например a:head
.
Возможно, вам следует подать вопрос по проекту: https://github.com/clojure/data.xml