为什么clojure.data.xml在解析RDF文件时不返回xml命名空间?

Lev*_*ell 7 xml rdf clojure

我正在开发一个用于clojure的语义Web库,我想检查data.xml是否为正在解析的文档返回XML命名空间,所以我把一个快速程序放在一起,从W3Schools RDF教程解析这个RDF文档

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
  <cd:artist>Bob Dylan</cd:artist>
  <cd:country>USA</cd:country>
  <cd:company>Columbia</cd:company>
  <cd:price>10.90</cd:price>
  <cd:year>1985</cd:year>
</rdf:Description>

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Hide your heart">
  <cd:artist>Bonnie Tyler</cd:artist>
  <cd:country>UK</cd:country>
  <cd:company>CBS Records</cd:company>
  <cd:price>9.90</cd:price>
  <cd:year>1988</cd:year>
</rdf:Description>
</rdf:RDF>
Run Code Online (Sandbox Code Playgroud)

而我得到了这个.(格式化以便于阅读.)

{:tag :RDF, 
 :attrs {},
 :content ({:tag :Description, 
            :attrs {:rdf/about "http://www.recshop.fake/cd/Empire Burlesque"},
            :content ({:tag :artist,
                       :attrs {},
                       :content ("Bob Dylan")}
                      {:tag :country, 
                       :attrs {},
                       :content ("USA")}
                      {:tag :company,
                       :attrs {},
                       :content ("Columbia")}
                      {:tag :price, 
                       :attrs {},
                       :content ("10.90")}
                      {:tag :year,
                       :attrs {},
                       :content ("1985")})}
           {:tag :Description, 
            :attrs {:rdf/about "http://www.recshop.fake/cd/Hide your heart"},
            :content ({:tag :artist,
                       :attrs {},
                       :content ("Bonnie Tyler")}
                      {:tag :country,
                       :attrs {},
                       :content ("UK")}
                      {:tag :company,
                       :attrs {},
                       :content ("CBS Records")}
                      {:tag :price,
                       :attrs {},
                       :content ("9.90")}
                      {:tag :year,
                      :attrs {},
                      :content ("1988")})})}
Run Code Online (Sandbox Code Playgroud)

因此,如果我想从解析的文档创建三元组,我不能,因为data.xml中的解析器不会从文档的根目录返回名称空间.这是为什么?

Ven*_*ius 1

clojure.data.xml现在支持这一点,但在提出这个问题时并不支持。

对命名空间的支持是在0.1.0-beta1(2016 年 1 月)引入的,正如我们现在所做的那样,0.2.0-beta5可以肯定地说它已经相当成熟并且经过了实际检验。