XML中的二进制内容 - 优点和缺点?

XML中的二进制内容 - 优点和缺点?

问题描述:

您对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

如果二进制数据是大的,那么你几乎肯定会通过用base64嵌入它,而不是引用它会导致性能下降。但它可能是值得付出的便利(也许是安全)的代价。如果没有完全沉浸在项目需求和文化中,就很难就这样的设计决策提出建议。

+0

性能损失的详细原因是什么? – Morten 2012-04-03 10:44:11

+1

XML解析的成本主要由“读下一个字符”循环决定。如果您存储以XML格式嵌入的数据,则对数据的所有操作都会产生这种按字符计算的成本。如果它是一个外部参考文件,那么许多操作将可能没有这个成本。 – 2012-04-06 18:35:25