HTML5への変換で使用できない文字は? – html html5 xsl

質問:


XMLをXSLTを使用してHTML5に変換しています.使用しているXSLTプロセッサはSaxon 9.1Bです.(古いDITA Open Tooolkitについてくるもの)

<xsl:output method="html"
            encoding="UTF-8"
            indent="no"
            doctype-system="about:legacy-compat"
            omit-xml-declaration="yes"/>

ところがあらぬ文字が混入しているとHTMLへのシリアライズでエラーが出ます.

[xslt]
D:DITA-OTDITA-OT1.7.5-xxxxpluginsco.xxxx.htmlxslxslhtmldita2htm.toc.xsl:194:
Fatal Error! Illegal HTML character: decimal 129

この場合は、<xsl:value-of select="$xxxx"/>の中に文字U+0081が入っていた場合です.

XSLTによるHTML変換で発生するこのようなエラーを事前に検出し、抑制したいのですが、そもそもHTML5で許容されない文字が何であるかがわかりません.

HTML(もしくはHTML5)で許容されない文字はどこでどのように定義されているのでしょうか?いろいろWebを探してみましたがどこで規定されているのかがわかりません.

参考URL
XSLT throwing Illegal HTML character exception
http://saxon-xslt-and-xquery-processor.13853.n7.nabble.com/XSLT-throwing-Illegal-HTML-character-exception-td5143.html

ご存知の方おられましたら教えてください.

以上 よろしくお願いいたします.

質問者: tmakita

SOTH

SERE0014 を throw しているのでしょうから、これでしょう:

http://www.w3.org/TR/xslt-xquery-serialization/#HTML_CHARDATA

Certain characters are permitted in XML, but not in HTML prior to HTML5 (…ごっそり引用略…) The serializer MUST signal the error.

で、おそらく XML 1.0 でしょうから、要するに U+007F – 9F でしょう。

出典

You Might Also Like

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です