2012-03-31 38 views
0

您對XML中的二進制內容的想法與僅僅引用數據位置有什麼關係?XML中的二進制內容 - 優點和缺點?

我正在開發一個項目,系統需要交換複雜的數據 - 通常由許多不同的文件組成(通常是cad文件)。許多要發送的資料是保密的。我的同事一直在考慮將文件作爲二進制內容嵌入到XML中而不是引用它,但我不確定後果。我希望你能幫助我。

問候, 莫滕

+0

因爲我對XML有偏見,所以將其作爲評論發佈而不是回答。 XML是80%的時間不是正確的解決方案。另外,如果你包含二進制文件,我不會包含原始二進制文件,而是包含64位甚至十六進制。我不確定大多數XML解析器對二進制blob的感受。 – Corbin 2012-03-31 09:44:52

+0

Corbin你不能在XML中包含原始二進制文件,所以它必須是base64編碼的。 – 2012-03-31 09:58:16

+0

我想強調Richard的評論:** XML不能包含任意的二進制內容**。 XML 1.0規範在文件允許的字節內限制很大。 XML 1.1規範允許除NUL之外的所有內容,但任意二進制數據將嵌入NUL。 – kdgregory 2012-03-31 13:02:04

回答

2

如果二進制數據是大的,那麼你幾乎肯定會通過用base64嵌入它,而不是引用它會導致性能下降。但它可能是值得付出的便利(也許是安全)的代價。如果沒有完全沉浸在項目需求和文化中,就很難就這樣的設計決策提出建議。

+0

性能損失的詳細原因是什麼? – Morten 2012-04-03 10:44:11

+1

XML解析的成本主要由「讀下一個字符」循環決定。如果您存儲以XML格式嵌入的數據,則對數據的所有操作都會產生這種按字符計算的成本。如果它是一個外部參考文件,那麼許多操作將可能沒有這個成本。 – 2012-04-06 18:35:25