RDF有效字符

时间:2011-11-23 14:52:35

标签: xml rdf

在RDF中,所有XML有效字符是否都有效?

我在维基百科上发现了有关XML有效字符的内容:

    U+0009, U+000A, U+000D: these are the only C0 controls accepted in XML 1.0;
U+0020–U+D7FF, U+E000–U+FFFD: this excludes some (not all) non-characters in the BMP (all surrogates, U+FFFE and U+FFFF are forbidden);
U+10000–U+10FFFF: this includes all code points in supplementary planes, including non-characters.

2 个答案:

答案 0 :(得分:1)

RDF Literals是Unicode,但是当您以某种语法编写这些文字(编码它们)时,您必须注意遵循语法规则。 RDF / XML是一种XML语法(我在2004年对其进行了编辑),因此限制了Unicode字符并具有自己的编码规则,因此您可以转义'<'和{{1}等字符}}

您还必须使用Unicode编码将字符转换为字节序列,UTF-8和UTF-16是常见的。这些不限制您可以记下的字符。

那么答案实际上取决于你的意思。实际上,你不太可能想要使用不能用XML或RDF / XML合法编写的Unicode字符,因为它包含大量的Unicode。

答案 1 :(得分:0)

应该更好地参考仅使用维基百科的原始规范。 allowed characters in XML 1.0的集合是:

Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
/* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */

XML标记名称中允许的字符集更受限制。

RDF文字中允许的字符序列集是defined as&#34;是Unicode [UNICODE]字符串,它应该是普通形式C [NFC]&#34;。 Unicode字符集是代码点U + 0000到U + 10FFFF(minus 66 non-characters,具体取决于您的观点)。

无论如何,允许的Unicode字符集包括XML中明确禁止的字符。另见SO问题Why are "control" characters illegal in XML 1.0?。在XML 1.1中set of characters was broadened

Char ::= [#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
/* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */

虽然在RDF文字中允许,但仍然无法表达XML中的字符(U + 0000)。