2016-07-11 7 views
1

私はそれは、XML宣言で始まっていない、次のXSLTXSLTファイルにXML宣言が必要ですか?

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

を持っています。規格によって

各XMLエンティティは外部エンコーディング情報を伴わないと、UTF-8やUTF-16符号化で最初の文字がされなければならないXML エンコーディング宣言、で始まる必要がありませんので'<?xml'、 適合するプロセッサは、 入力の2〜4オクテットの後で、次のいずれかのケースが該当します。

...と私たちはprologの生産を取得section 2.8に:だから

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

を、我々はにXML宣言を省略することができますが、我々は何を前に付けすることはできません。

私はそれを省略することができ、変換はうまくいくが、それは良い習慣ですか?たとえば、キリル文字や中国語の記号があると、予期せぬ状況にぶつかることがありますか?

答えて

3

要約すると、XSLTを含むすべてのXMLファイルでは、XML宣言はオプションです。

意味的には、XML 1.1(およびそれ以降)およびUTF-8またはUTF-16以外のエンコーディングには必須です。 (技術的には、an encoding is determined by a higher-level protocolの場合、XML宣言はUTF-8またはUTF-16以外の場合でもオプションですが、意図を明確にするために可能な限りXML宣言を使用する必要があります)

関連する問題