XML-сериализация табуляции новой строки с использованием XQuery - PullRequest
0 голосов
/ 23 декабря 2010

Если вы посмотрите на тест W3C XQuery K2-Serialization-7.xq:

<a>{ codepoints-to-string(1 to 31) }</a>

ожидаемый результат (в соответствии с набором тестов W3C) экранирует все символы в диапазоне ASCII 1-31:

<a>&#x1;&#x2;&#x3;&#x4;&#x5;&#x6;&#x7;&#x8;&#x9;&#xA;&#xB;&#xC;&#xD;&#xE;&#xF;&#x10;&#x11;&#x12;&#x13;&#x14;&#x15;&#x16;&#x17;&#x18;&#x19;&#x1A;&#x1B;&#x1C;&#x1D;&#x1E;&#x1F;</a>

Непонятно, почему экранируются символы табуляции (0x9) и перевода строки (0xA), поскольку они совершенно допустимы в файлах XML. Следовательно, ожидаемый результат кажется неправильным. Кто-нибудь может объяснить это?

1 Ответ

2 голосов
/ 23 декабря 2010

На самом деле ожидаемый результат неверен.

С http://www.w3.org/TR/2008/REC-xml-20081126/#charsets

Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] 

Только в XML 1.1 это было изменено.От http://www.w3.org/TR/2006/REC-xml11-20060816/#dt-character

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