我一直在浏览 avahi 服务文件(XML 格式)的一些示例,其中一些<!--*-nxml-*-->
在文档类型定义之后有注释。
例如:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=RackMac</txt-record>
</service>
</service-group>
经过搜索,我认为这个标签的目的是由 emacs 解释其 nXML 模式。但由于我自己不是 emacs 用户,这个标签似乎完全没用,因为它是。
是否有任何约定表明这应该是 XML 文件的默认值(可能只是配置文件),或者它是否还有另一个我无法理解的隐藏目的?
答案1
XML 注释<!--*-nxml-*-->
将被任何 XML 解析器忽略,因此从这个角度来看,就 XML 的实际含义或功能而言,它没有任何功能。
它只是允许emacs
进行正确的突出显示等。
在 中vim
,这称为模型行,看起来像
<!-- vim: set filetype=nxml.xml : -->
在 Emacs 中,这称为指定文件局部变量,稍长的(与文件中的内容相比)格式是
<!-- -*- mode: modename; var: value; … -*- -->
如果编辑器无法以任何其他方式(从文件名或通过使用内容的某些启发式匹配)找出文件的正确类型,这非常有用。除此之外,它没有任何作用。
没有标准、最佳实践和建议表明需要添加此类特定于编辑器的评论。