XSLT文件中是否需要XML声明?

时间:2016-07-11 09:18:07

标签: xml xslt

我有以下XSLT

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"...

它不是以XML声明开头的。

按标准:

  

因为每个不附带外部编码信息而不是UTF-8或UTF-16编码的XML实体必须以XML开头   编码声明,其中第一个字符必须是'&lt; ?XML”,   任何符合标准的处理器可以在两到四个八位字节之后检测到   输入,以下哪种情况适用。

...在section 2.8中,我们获得了prolog的作品:

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

因此,我们可以省略 XML声明,但我们不能在其前面添加任何内容。

所以我可以省略它并且转换做得很好但这是一个好习惯吗?例如,当有西里尔字母或中文符号时,我能遇到不可预测的情况吗?

1 个答案:

答案 0 :(得分:3)

词法上,XML声明对于所有XML文件都是可选的,包括XSLT。

从语义上讲,它是XML 1.1(及更高版本)和UTF-8或UTF-16以外的编码所必需的。 (从技术上讲,如果an encoding is determined by a higher-level protocol,除了UTF-8或UTF-16之外,XML声明仍然是可选的,但为了明确意图,在这种情况下,如果可能的话,你应该使用XML声明。)