代码之家  ›  专栏  ›  技术社区  ›  sourcenouveau

是否在XML声明之前放置注释?

  •  27
  • sourcenouveau  · 技术社区  · 15 年前

    在XML文件中的XML声明之前放置注释可以吗?

    <!--
    Is this bad to do?
    -->
    <?xml version="1.0" encoding="utf-8"?>
    <someElement />
    
    4 回复  |  直到 15 年前
        1
  •  45
  •   Gary McGill    15 年前

    不,不好。

    Appendix F of the XML spec 说:

    因为每个XML实体 伴随外部编码 信息而不是UTF-8或UTF-16 编码必须以XML开头 编码声明,其中 前几个字符必须是“<?任何一个 合格的处理器可以在 两到四个八位输入,其中 以下情况适用。

    啊,但是,你说,F部分是不规范的。

    好, section 2.1 生成格式良好的XML文档,因此:

    [1]     document       ::=       prolog element Misc*
    

    ……而且在 section 2.8 我们得到“prolog”的产品:

    [22]    prolog     ::=       XMLDecl? Misc* (doctypedecl Misc*)?
    [23]    XMLDecl    ::=      '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
    

    所以,你可以 省略 &?XML声明,但不能在其前面加任何前缀。

    (顺便说一句,“misc”是注释所属的类别)。

        2
  •  8
  •   Atmocreations    15 年前

    根据 this page ,这是非法的。

        3
  •  5
  •   jlew    15 年前

    XML声明指定了文档编码,这对于注释和结构XML同样重要。因此,应该先申报。如果许多XML读者能够处理这个问题,我不会感到惊讶,但这是一个坏主意。

        4
  •  1
  •   Joshua Louden    15 年前

    不,这不符合XML标准,但是注释是好的。