可能是标准Haskell库中的无效XHTML?

RSt*_*han 4 xhtml html5 haskell

我正在尝试解决使用来自UTF-8文本的Haskell生成XHTML的程序的问题.该程序采用该文本的字符串,应该生成有效的XHTML实体但不生成.我正在导入Text.XHtml.Transitional,并使用函数href和identifier从UTF-8字符串生成URI和ID属性.使用Haskell解释器,我们可以看到:

Prelude Text.XHtml.Transitional> href "äöü"
href="äöü"
Run Code Online (Sandbox Code Playgroud)

这很好,是一个有效的XHTML URI.然而,

Prelude Text.XHtml.Transitional> identifier "äöü"
id="äöü"
Run Code Online (Sandbox Code Playgroud)

不是,根据不允许'&','#'和';'的规范 字符.因此,看起来Text.XHtml.Transitional lib是错误的.此外,我认为即使XHMTL也不好,因为它不会在属性中提供UTF-8的1:1映射,也不会与URI的映射相同.

由于我是Haskell的新手,我可能在某处犯了一个错误.另外,我知道HTML5放宽了这些属性限制.但那并不是主导性的.图书馆有车吗?如果是这样,哪个映射应该替换给定的映射?

另见Xhtml无效字符?

dav*_*420 7

大量的非ascii unicode字符在ID中有效(请参阅Name制作),包括您的重音字母.

请注意,生产在标准化后应用.

&,#并且;可能不会出现在ID中,但在您的示例中,它们不会出现在ID中 - ID是äöü.然后将其编码为äöü,可能存在以US-ASCII或ISO-8859-1输出.

所以我认为这不是图书馆的一个错误.