제거 예정: XML 리터럴

제거 예정: XML 리터럴 (XML Literals)

XML 리터럴은 아직 지원되지만 가까운 미래에 제거될 예정이에요. 실제로는 XML 문자열 보간(xml string interpolation)으로 교체될 거예요. 두 방식을 나란히 비교해 볼게요.

출처: Scala 3 Reference

본문

XML 리터럴은 여전히 지원되지만, XML 문자열 보간으로 교체되기 위해 가까운 미래에 제거될 예정이에요:

import dotty.xml.interpolator.*

case class Person(name: String) { override def toString = name }

@main def test: Unit =
  val bill = Person("Bill")
  val john = Person("John")
  val mike = Person("Mike")
  val todoList = List(
    (bill, john, "Meeting", "Room 203, 11:00am"),
    (john, mike, "Holiday", "March 22-24")
  )
  // XML literals (to be dropped)
  val mails1 = for (from, to, heading, body) <- todoList yield
    <message>
      <from>{from}</from><to>{to}</to>
      <heading>{heading}</heading><body>{body}</body>
    </message>
  println(mails1)
  // XML string interpolation
  val mails2 = for (from, to, heading, body) <- todoList yield xml"""
    <message>
      <from>${from}</from><to>${to}</to>
      <heading>${heading}</heading><body>${body}</body>
    </message>"""
  println(mails2)

자세한 내용은 Yassin Kammoun(2019)의 학기 프로젝트 XML String Interpolator for Dotty를 참고하세요.

더 알아보기 (Learn more)