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

XML中的二进制内容-优缺点?,xml,web-services,data-transfer,Xml,Web Services,Data Transfer,您对XML中的二进制内容与仅仅对数据位置的引用有何看法 我正在从事一个项目,在这个项目中,系统需要交换复杂的数据——通常由许多不同的文件(通常是cad文件)组成。要发送的许多材料都是机密的。我的同事一直在考虑将文件作为二进制内容嵌入到XML中,而不是引用它,但我不确定其后果。我希望你能帮助我 问候,, Morten如果二进制数据很大,那么将其嵌入base64而不是引用它几乎肯定会导致性能损失。但这可能是一个值得为便利(也许还有安全)付出的代价。如果不完全沉浸在项目需求和文化中,就很难对这样的设计

您对XML中的二进制内容与仅仅对数据位置的引用有何看法

我正在从事一个项目,在这个项目中,系统需要交换复杂的数据——通常由许多不同的文件(通常是cad文件)组成。要发送的许多材料都是机密的。我的同事一直在考虑将文件作为二进制内容嵌入到XML中,而不是引用它,但我不确定其后果。我希望你能帮助我

问候,,
Morten

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

因为我对XML有偏见,所以将此作为评论而不是答案发布。XML在80%的情况下都不是正确的解决方案。另外,如果您包含二进制,我不会包含原始二进制,而是包含基64甚至十六进制。我不确定大多数XML解析器对二进制blob的感觉如何。Corbin您不能在XML中包含原始二进制,因此必须对其进行base64编码。我想强调Richard的评论:XML不能包含任意二进制内容。XML 1.0规范在文件中允许的字节数方面非常严格。XML 1.1规范允许除NUL之外的所有内容,但任意二进制数据都将嵌入NUL。@Corbin-查看Nokogiri站点()的“描述”部分:-)XML解析的成本主要由“读取下一个字符”循环控制。如果将数据存储在XML中,那么对数据的所有操作都将产生每个字符的成本。如果它是一个外部引用的文件,那么许多操作都可以在没有此成本的情况下进行。