Ответ 1
http://www.w3.org/TR/REC-xml/#NT-AttValue
Кажется, все, кроме <
, &
, и ваш разделитель ('
или "
) в порядке. Таким образом, должна быть и новая строка.
Я понимаю, что это не изящно или желательно, но разрешено ли (в хорошо сформированном XML) значение атрибута в элементе XML охватывать несколько строк?
например.
<some-xml-element value="this value goes over....
multiple lines!" />
Да, я понимаю, что лучше писать это. Я лично написал бы это как:
<some-xml-element>
<value>this value goes over...
multiple lines!</value>
</some-xml-element>
или
<some-xml-element value="this value goes over.... " />
Но у нас есть собственный синтаксический анализатор XML, и я хотел бы знать, разрешен ли первый пример в хорошо сформированном XML.
http://www.w3.org/TR/REC-xml/#NT-AttValue
Кажется, все, кроме <
, &
, и ваш разделитель ('
или "
) в порядке. Таким образом, должна быть и новая строка.
Разрешено, однако, согласно рекомендации W3C, ваш XML-парсер должен нормализовать все пробельные символы в пространстве (0x20) - поэтому вывод ваших примеров будет отличаться (у вас должна быть новая строка для вывода для "& # 13 & # 10;", но только пространство в первом случае).
Только .NET: Если вы не уверены, что целевая строка является допустимым атрибутом xml (и укажите это значение атрибута через код), вы всегда можете использовать функцию SecurityElement.Escape чтобы избежать недопустимых символов.
В соответствии с описанием этой функции единственными недопустимыми символами являются:
<
, >
, &
, '
, "
И это означает (как писали мои предшественники), что новая строка должна быть в порядке.
Да, первый пример является допустимым.