Parece que los valores de los atributos son del tipo Seq[Node]
.API Scala XML: ¿Por qué permitir NodeSeq como valores de atributo?
scala> <a b="1"/>.attribute("b")
res11: Option[Seq[scala.xml.Node]] = Some(1)
Esto significa que puede asignar XML como valor de atributo.
scala> <a b={<z><x/></z>}/>.attribute("b")
res16: Option[Seq[scala.xml.Node]] = Some(<z><x></x></z>)
scala> <a b={<z><x/></z>}/>.attribute("b").map(_ \ "x")
res17: Option[scala.xml.NodeSeq] = Some(<x></x>)
scala> new xml.PrettyPrinter(120, 2).format(<a b={<z><x/></z>}/>)
res19: String = <a b="<z><x></x></z>"></a>
Esto me parece funky. Nunca he visto XML como valores de atributo en el mundo real. ¿Por qué está permitido? ¿Por qué un valor de atributo simplemente no es del tipo String
?