从 xsd 生成的 scala 匹配字符串 * 与 maxOccurs="unbounded"

scala match String* generated from xsd with maxOccurs="unbounded"

我有一个 xsd 有:

  <xs:complexType name="records">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

scalaxb 生成了这段代码:

case class Records(returnValue: String*)

我试过这个模式匹配:

... match {
  case Records(ids: String*) =>
    ...

那么编译错误是:

')' expected but identifier found.
        case Records(ids: String*) =>
                                ^

我也尝试了 case Records(ids: Array[String])case Records(ids: Seq[String]),但没有成功。

如何使用 Scala 模式匹配来匹配这个 class?

scala> Records("a", "b") match {
         case Records(strings @ _*) => strings.foreach(println)
       }
a
b


scala> Records("a", "b") match {
         case Records(one) => println("one")
         case Records(one, two) => println("two")
         case Records(one, two, rest @ _*) => println("more than two")
       }
two