gpt4 book ai didi

xml - 为什么 "control"字符在 XML 1.0 中是非法的?

转载 作者:数据小太阳 更新时间:2023-10-29 01:37:03 29 4
gpt4 key购买 nike

有许多字符在 XML 1.0 中是不可合法编码的,例如U+0007('bell')和 U+001B('escape')。大多数有趣的是非空白“控制”字符。

很明显(例如)this question和其他人说它是 the XML spec that's the issue -- 但是谁能告诉我 为什么 XML 规范禁止这些字符?

似乎可能需要将它们编码为转义符,例如分别作为 ,但也许有实际原因禁止使用这些字符而不是要求对其进行转义?

回答者建议有一些避免传输控制字符的动机,但 Unicode 包含许多其他控制字符(考虑 U+200C“零宽度非连接符”)。我知道这种行为可能没有充分的理由,但我仍然想更好地理解它。

这特别令人沮丧,因为当这些字符值出现在其他 encodings 数据格式中时,我最终会“双重转义”需要对其进行编码的新 XML 文档。

最佳答案

我的理解是,这个范围是被禁止的,因为标记语言不需要支持传输和流控制字符,包括它们会给二进制转换中的任何编辑器和解析器带来问题。

尽管如此,我正在努力从 Tim Bray 等人那里找到关于这方面的任何 ex cathedra。

编辑:some discussion控制字符和一个模糊的承认,它并没有完全过度设计:

At 09:27 AM 17/06/00 -0500, Mark Volkmann wrote:

I've never seen a discussion of the reason why most ASCII control characters, such as a form feed, are not allowed in XML documents. Can anyone tell me the reason behind that decision or point me to a spec. that explains that?

如果我们再来一次,我不确定我们是否会以同样的方式来做。我 看不到他们造成任何真正的伤害。显然,如果你正在优化 对于高度可互操作的 content 标记语言(XML 也是)它是 怀疑垂直制表符和退格键之类的东西是合理的 依此类推...但是在\n 和 DEL 中留下如何保持一致 等等? -蒂姆

关于xml - 为什么 "control"字符在 XML 1.0 中是非法的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/404107/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com