41831


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

[code]

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

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

> [xslt]  
>  D:\DITA-OT\DITA-
> OT1.7.5-xxxx\plugins\co.xxxx.html\xsl\xslhtml\dita2htm.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>

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

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


CC BY-SA 3.0
2018-02-18T02:28:19.690
41821
2018-02-18T15:41:21.130
9503
question
html html5 xsl xslt
HTML5への変換で使用できない文字は？


`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 でしょう。


CC BY-SA 3.0
2018-02-18T15:22:26.343
41831
2018-02-18T15:41:21.130
2018-02-18T15:41:21.130
27452
27452
41821
answer