2015-01-08 67 views
0

我正在將XML從一個系統轉移到另一個系統,並修改了一些值。在屬性內跳轉<到<

但是,當比較輸入和輸出時,我可以看到屬性的值也自動改變。

我收到下面的元素與屬性:

<element coding_line="5508&gt;000000000000102608903458255+ 010851630&gt;"/> 

但是,當我再檢查我的輸出,它已經自動被更改爲這個:

<element coding_line="5508>000000000000102608903458255+ 010851630>"/> 

看來,我的系統(WSO2)沒有逃脫&gt;>

我現在的問題是 - 這個屬性的內容語義上還是一樣嗎?

因爲我沒有權限更改此值。當我在oXygen中打開文件時,它似乎仍然是一個有效的XML。

XML比較: enter image description here

+0

*「比較輸入和輸出...」*完全*如何比較輸入和輸出?用純文本差異工具?工作錯誤的工具。(是的,'''不允許在屬性值中轉義,與'<'不同。) – Tomalak

回答

1

我的問題是現在 - 是這個屬性的內容語義上還是一樣的?

是的,XML屬性值中字符>的存在符合規範。

因此,在分析,這兩個XML樣本表示相等文件:

<xml attr="&gt;" /> 

<xml attr=">" /> 

這個事實,和其他人也不少,像

  • 事實屬性的源代碼順序沒有語義含義
  • 個關於換行和空白正常化
  • 不同形式的字符表示(數值字符實體與實際字符)
  • 命名空間的(不同的前綴,默認名稱空間,不同的聲明的點等)
  • 的「概念的規則無關緊要的空白「

導致正常(即純文本導向)DIFF工具在比較XML文件時無效。

有一些特別針對XML的diff工具。例如,Microsoft有XML Diff and Patch GUI Tool,有diffxmlxmldiff Python packageXMLunit Java package

相關問題