xmlの式の適当バリデータ

scalaで書いたxmlの式のバリデータ。エラーの出し方が適当だけどもこんなかんじでバリデーションできます。

import scala.xml.Node
import scala.xml.Utility
import scala.xml.Text
import scala.io.Source
import scala.collection.mutable._
object xmlvalid {
	def validate(xml:Node) = {
		def exp(xml:Node) = {
			xml match {
			case <exp>{x}</exp> => expGroup(x)
			case _ => println("exp gahituyo"+xml);false
			}
		}
		def expGroup(xml:Seq[Node]):Boolean = {
			xml match {
			case Seq(<number>{Text(x)}</number>) => numberType(x)
			case Seq(<add>{x}{y}</add>) => expGroup(x) && expGroup(y)
			case Seq(<mul>{x}{y}</mul>) => expGroup(x) && expGroup(y)
			case _ => println("number or add or mul ga hitsuyo"); false
			}
		}
		def numberType(s:String):Boolean = {
			try {
				s.toInt
			} catch {
			case _ => println("number niha int ga hituyo error") ;return false
			}
			true
		}
		exp(Utility.trim(xml))
	}
	def test(xml:Node) {
		val result = validate(xml)
		println(result,xml)
	}
	def main(args : Array[String]) {
		test(
			<exp>
				<add>
					<number>1</number>
					<mul>
						<number>2</number>
						<number>3</number>
					</mul>
				</add>
			</exp>
		)
	}
}

ポイントはtrimを先にして、空白を削除するということです。
xmlをパターンマッチしてくれるので楽です。
エラーの検出をもっとたくさんできると嬉しいのですけど。