为什么XML注释不应包含隐藏命令?

时间:2018-01-30 14:16:23

标签: java xml xsd xml-parsing xml-comments

我正在阅读 核心Java 卷。 2由Cay Horstmann撰写,在关于XML的章节中,他谈到了XML评论,他说:

  

评论应该只是人类读者的信息。他们应该   从不包含隐藏的命令;使用处理说明   命令。

隐藏命令是什么意思,为什么我不能在XML注释中使用它们?我如何使用它们的处理指令?

3 个答案:

答案 0 :(得分:1)

XML注释不应包含带外(隐藏)数据或命令,因为XML的目的是在双方商定的框架内传递信息。

定义XML本身基础的良构规则和定义XML文档词汇和语法的进一步约束的通用XML模式语言都没有一种方法来定义评论的内容,超出基本文本的内容。这是设计并反映了许多编程语言中有关注释的类似设计决策。

不是在XML注释中添加标记,更糟糕的是,添加微语言,将表面数据表示为XML元素和属性,而将表面命令添加为处理指令,以便整个现有的解析器,模式,验证器和已建立的标准生态系统可以用于阅读和编写数据。

答案 1 :(得分:0)

某些字符在XML中具有不同的含义。

如果你放置一个像“<”这样的字符在XML元素中,它会生成错误,因为解析器会将其解释为新元素的开头。

这将生成XML错误,因为解析器将查找匹配的结束选项卡: 工资< 1000 (一旦应用程序上线,这可能会导致重大问题)

当您在注释中使用命令时,它有时可能不可避免地导致解析错误,如上所述。作为注释中的隐藏命令,很难找到解析问题的根本原因,因为我们可能无法查看注释。因此,最好避免在注释中添加隐藏命令。

答案 2 :(得分:0)

由于以下两个原因:

  1. 为了减少误解或可能的错误,即使注释也不应包含可能被视为可执行语句的命令。 XML脚本用于传输数据,其中的模式应该完全清楚地定义。
  2. 用于安全编程。为了完全阻止某人运行文件,XML文件永远不应包含隐藏命令。这样可以防止滥用代码。通过隐藏命令,有人可以将文件复制到其他地方以运行它们,甚至可以使用命令。