2016-07-11 78 views
1

我有以下XSLTXSLT文件中需要XML聲明嗎?

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

它不與XML聲明開始。

通過標準:

因爲每個XML實體不伴隨外編碼信息,而不是在UTF-8或UTF-16編碼必須以XML 編碼聲明,其中,所述第一字符必須是開始'<?xml', 任何符合要求的處理器都可以在輸入兩到四個八位位組後檢測以下哪種情況。

...在section 2.8我們得到的生產prolog

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

因此,我們可以省略 XML聲明,但我們不能與任何前綴它。

所以我可以省略它,轉換做得很好,但這是一個很好的做法嗎?例如,如果有西里爾文或中文符號,我會遇到不可預測的情況嗎?

回答

3

從詞彙的角度講,XML聲明對於所有XML文件(包括XSLT)是可選的。

從語義上講,它是XML 1.1(及更高版本)和除UTF-8或UTF-16以外的編碼所必需的。 (從技術上講,對於除UTF-8或UTF-16以外的其他XML聲明,如果是an encoding is determined by a higher-level protocol,仍然是可選的,但爲了清晰起見,如果可能,在這種情況下應該儘可能使用XML聲明。)