簡體   English   中英

在REXML XPATH匹配函數中,多個名稱空間在名稱空間映射中做什么?

[英]In REXML XPATH match function, what do multiple namespaces do in the namespace mapping?

我試圖確切地了解第785行在這里的作用:

https://github.com/onelogin/ruby-saml/blob/15fb4789f8cd119fdbd722d58c659129d23a256d/lib/onelogin/ruby-saml/response.rb#L777

但是我在文檔中找不到對此的明確解釋,例如:

https://contest-server.cs.uchicago.edu/ref/ruby_1_9_3_stdlib/libdoc/rexml/rdoc/REXML/XPath.html#method-c-match

即,我可以理解以單個命名空間(“ ps”)為目標的功能,但是添加第二個命名空間(“ d”)可以做什么?

編輯:后續澄清:考慮到“協議”名稱空間在文檔中為小寫但在代碼中為大寫,因此以此文檔開頭的文檔是否可以成功解析?

<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Version="2.0" >

通過XPath查詢的響應使用兩個不同的名稱空間,

  • 綁定到p名稱空間前綴的名稱空間用於SAML Coreurn:oasis:names:tc:SAML:2.0:protocol )。
  • 綁定到ds的名稱空間用於XML簽名http://www.w3.org/2000/09/xmldsig# )。

兩者都通過代碼中引用行上的REXML::XPath.match的參數聲明給XPath處理器:

      { "p" => PROTOCOL, "ds" => DSIG },

每個問題的更新更新

名稱空間前綴p )是任意的,不需要與文檔中使用的名稱匹配。 重要的名稱空間urn:oasis:names:tc:SAML:2.0:protocol )必須與文檔中使用的名稱空間匹配。 兩者都區分大小寫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM