为什么 XML 评论不应该包含隐藏命令?
Why shouldn't XML comments contain hidden commands?
我正在阅读 核心 Java 第一卷。 2 由 Cay Horstmann 撰写,在关于 XML 的章节中,他谈到 XML 评论时说:
Comments should only be information for human readers. They should
never contain hidden commands; use processing instructions for
commands.
他所说的隐藏命令是什么意思,为什么我不能在XML评论中使用它们,以及如何使用它们的处理指令?
XML 评论不应包含带外(隐藏)数据或命令,因为 XML 的目的是在内部交流信息一个共同商定的框架。
定义 XML 本身基础的结构良好规则和定义 XML 文档词汇和语法进一步约束的通用 XML 模式语言都没有意思是在基本文本之外定义注释的内容。这是设计使然,反映了许多编程语言中关于注释的类似设计决策。
不是在 XML 注释中添加标志,或者更糟,而是在 XML 注释中添加微语言,表面数据作为 XML 元素和属性,表面命令作为处理指令,这样整个现有的生态系统解析器、模式、验证器和既定标准可用于读取和写入数据。
有些字符在 XML 中有不同的含义。
如果在 XML 元素中放置“<”之类的字符,则会产生错误,因为解析器会将其解释为新元素的开始。
这将产生一个 XML 错误,因为解析器将寻找匹配的结束标签:
工资 < 1000
(一旦应用程序上线,这可能会导致重大问题)
当您在评论中使用命令时,有时不可避免地会导致上述解析错误。作为注释中的隐藏命令,由于我们可能不查看注释内部,因此很难找到解析问题的根本原因。因此最好避免在注释中添加隐藏命令。
因为这两个原因:
- 为了减少误解或可能的错误,即使是注释也不应包含可能被视为可执行语句的命令。 XML 脚本用于传输数据,其中的模式应该定义得非常清楚。
- 用于安全编程。为完全防止有人 运行 安装文件,XML 文件不应包含隐藏命令。这样可以防止滥用代码。通过隐藏命令,有人可以将文件复制到其他地方运行,甚至使用命令。
我正在阅读 核心 Java 第一卷。 2 由 Cay Horstmann 撰写,在关于 XML 的章节中,他谈到 XML 评论时说:
Comments should only be information for human readers. They should never contain hidden commands; use processing instructions for commands.
他所说的隐藏命令是什么意思,为什么我不能在XML评论中使用它们,以及如何使用它们的处理指令?
XML 评论不应包含带外(隐藏)数据或命令,因为 XML 的目的是在内部交流信息一个共同商定的框架。
定义 XML 本身基础的结构良好规则和定义 XML 文档词汇和语法进一步约束的通用 XML 模式语言都没有意思是在基本文本之外定义注释的内容。这是设计使然,反映了许多编程语言中关于注释的类似设计决策。
不是在 XML 注释中添加标志,或者更糟,而是在 XML 注释中添加微语言,表面数据作为 XML 元素和属性,表面命令作为处理指令,这样整个现有的生态系统解析器、模式、验证器和既定标准可用于读取和写入数据。
有些字符在 XML 中有不同的含义。
如果在 XML 元素中放置“<”之类的字符,则会产生错误,因为解析器会将其解释为新元素的开始。
这将产生一个 XML 错误,因为解析器将寻找匹配的结束标签: 工资 < 1000 (一旦应用程序上线,这可能会导致重大问题)
当您在评论中使用命令时,有时不可避免地会导致上述解析错误。作为注释中的隐藏命令,由于我们可能不查看注释内部,因此很难找到解析问题的根本原因。因此最好避免在注释中添加隐藏命令。
因为这两个原因:
- 为了减少误解或可能的错误,即使是注释也不应包含可能被视为可执行语句的命令。 XML 脚本用于传输数据,其中的模式应该定义得非常清楚。
- 用于安全编程。为完全防止有人 运行 安装文件,XML 文件不应包含隐藏命令。这样可以防止滥用代码。通过隐藏命令,有人可以将文件复制到其他地方运行,甚至使用命令。