Linux

在 xml conf 文件中使用 nxml 標記是否被認為是一種好習慣?

  • January 30, 2017

我一直在瀏覽一些 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 文件的預設值(可能只是配置文件),或者它是否有另一個我無法想像的隱藏目的?

XML 註釋<!--*-nxml-*-->將被任何 XML 解析器忽略,因此從該角度來看,就 XML 的實際含義或功能而言,它沒有任何功能。

它只允許emacs進行正確的突出顯示等。

vim中,這稱為模式,看起來像

<!-- vim: set filetype=nxml.xml : -->

在 Emacs 中,這稱為指定文件局部變數,格式稍長(與文件中的內容相比)是

<!-- -*- mode: modename; var: value; … -*- -->

如果編輯器無法以任何其他方式(從文件名或通過使用內容的啟發式匹配)找出文件的正確類型,這將很有用。除此之外,它沒有任何用途。

沒有標準,沒有最佳實踐,也沒有建議說需要添加這種類型的編輯器特定評論。

引用自:https://unix.stackexchange.com/questions/340750