1

コンパニオン オブジェクトを使用して、XML 解析ドキュメントを表すクラスを作成できません。

クラスのコードは次のとおりです。

package models

import javax.xml.bind.Element
import scala.xml.Elem
import javax.xml.validation.SchemaFactory
import javax.xml.transform.stream.StreamSource


trait MyXML {

case class ElémentXML(code_xml: scala.xml.Elem) {

def validate: Boolean = {

try ({
  val schemaLang = "http://www.w3.org/2001/XMLSchema"
  val factory = SchemaFactory.newInstance(schemaLang)
  val schema = factory.newSchema(new StreamSource("Sites_types_libelles.xsd"))
  val validator = schema.newValidator()
  validator.validate(new StreamSource(code_xml.toString))
  true
}) catch {
  case t:Throwable => false
}
}



}

object ElémentXML {

def apply(fichier: String) {

  try{
  val xml_chargé = xml.XML.loadFile(fichier)
  Some(new ElémentXML(xml_chargé))
  }catch{
    case e:Throwable => None
  }
}
}

}

このクラスを使用するアプリのコードは次のとおりです。

val xml1:ElémentXML = ElémentXML("app/models/exemple_bon.xml")
xml1 must not beEqualTo(None)

エラーは次のとおりです。

type mismatch; found : String("app/models/exemple_bon.xml") required: 
 scala.xml.Elem

私は単にこのエラーを理解していません (そして、これを削除する方法)。

ありがとう!

4

1 に答える 1