1

我注意到多行字符串不是有效xsd:string的。根据XML 1.1 规范xsd:string只能包含匹配的字符[\u1-\uD7FF]|[\uE000-\uFFFD]|[\u10000-\u10FFFF],而换行符不匹配。在 JavaScript 中:

/[\u1-\uD7FF]|[\uE000-\uFFFD]|[\u10000-\u10FFFF]/.test("\n");
// returns false

鉴于此,多行字符串的有效 XSD 数据类型是什么?

4

2 回答 2

1

XML 1.1 规范实际上说的是

Char       ::=      [#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

而且我看不到任何人都可以将其解读为不包括#xA。

于 2012-08-27T19:34:51.093 回答
1

换行符是 \u000A,它在允许的范围内。

尽管您的正则表达式没有任何问题,但您的测试是问题所在。

编辑:根据Mozilla正则表达式文档,Unicode 转义需要 4 个十六进制数字。我怀疑您的问题是您在测试中包含了更高的飞机。我没有检查 ECMA 规范,但我可以相信这会导致您的正则表达式出现问题。

于 2012-08-27T14:12:39.170 回答