Как я могу преобразовать scala.xml. Элемент к чему-то совместимому с API javax.xml?

Я создал меня ПК с RAM на 4 ГБ, двухъядерный диск PATA на 1.8 ГГц 40 ГБ основной, и вторичный диск SATA на 250 ГБ, и установил Выпуск Windows Vista Business. Когда я должен был скопировать 120 ГБ данных из моего старого диска PATA, Vista потерпел полный провал и продолжал отказывать. Я определенно рекомендую Свободный Выпуск Teracopy.

6
задан overthink 23 November 2009 в 16:44
поделиться

1 ответ

То, что вы хотите, возможно - вам просто нужно аккуратно указать компилятору Scala, как перейти от scala.xml.Elem к javax.xml.transform.stream.StreamSource , объявив неявный метод .

import java.io.StringReader
import javax.xml.transform.stream.StreamSource
import javax.xml.validation.{Schema, SchemaFactory}
import javax.xml.XMLConstants
import scala.xml.Elem

val schemaXml = <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                  <xsd:element name="foo"/>
                </xsd:schema>
val schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

implicit def toStreamSource(x:Elem) = new StreamSource(new StringReader(x.toString))

// Very possible, possibly still not any good:
val schema = schemaFactory.newSchema(schemaXml)

Он не более эффективен, но определенно станет красивее, если вы получите определение неявного метода из путь.

2
ответ дан 17 December 2019 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: