XML-атрибут, отображающий странность - PullRequest
3 голосов
/ 19 января 2012

Использование 2.9.0.1

<b time={None}>Hello</b>

=>

<b >Hello</b>

т.е.. в начальном теге после b стоит пробел. Это не имеет смысла с точки зрения XML.

Должна ли эта «особенность» случиться?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 19 января 2012

Это происходит из-за реализации toString scala.xml.Elem, чтобы быть более конкретным в объекте scala.xml.MetaInf метод buildString выглядит следующим образом:

 def buildString(sb: StringBuilder): StringBuilder = {
  sb.append(' ')
  toString1(sb)
  next.buildString(sb)
 }

Таким образом, он сначала добавляет пробел в строковое представление элемента, и только после этого добавляет следующий атрибут, поэтому, если атрибут присутствует в качестве члена класса, но не имеет строкового представления, вы получите один дополнительный пробел перед закрытием скобки

1 голос
/ 19 января 2012

На самом деле это разрешено.См. Extensible Markup Language (XML) 1.0 (пятое издание), 3.1 Начальные теги, Конечные теги и Теги пустых элементов Оттуда:

STag ::= '<' Name (S Attribute)* S? '>'

, где S - это пробел, а атрибут - определение атрибута.То же самое верно и для конечных элементов:

ETag ::= '</' Name S? '>'

Так что это разрешено.Или нет, это то, что вы хотите, это другое дело: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...