Skip to content

Commit 5933fc5

Browse files
committed
turning off dtd validation.
1 parent c9a556b commit 5933fc5

File tree

2 files changed

+2320
-2240
lines changed

2 files changed

+2320
-2240
lines changed

src/main/scala/scalaxb/compiler/xsd/Driver.scala

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ package scalaxb.compiler.xsd
2525
import scalaxb.compiler.{Module, Config}
2626
import java.io.{File, Reader, PrintWriter}
2727
import collection.mutable
28+
import scala.xml.{Elem}
29+
import scala.xml.factory.{XMLLoader}
30+
import javax.xml.parsers.SAXParser
2831

2932
class Driver extends Module { driver =>
3033
type Schema = SchemaDecl
@@ -47,7 +50,7 @@ class Driver extends Module { driver =>
4750

4851
override def toImportable(in: Reader): Importable = new Importable {
4952
val reader = in
50-
val elem = scala.xml.XML.load(reader)
53+
val elem = CustomXML.load(reader)
5154
val schemaLite = SchemaLite.fromXML(elem)
5255
val targetNamespace = schemaLite.targetNamespace
5356
val imports: Seq[String] = schemaLite.imports.collect {
@@ -61,4 +64,15 @@ class Driver extends Module { driver =>
6164
schema
6265
}
6366
}
67+
68+
object CustomXML extends XMLLoader[Elem] {
69+
override def parser: SAXParser = {
70+
val factory = javax.xml.parsers.SAXParserFactory.newInstance()
71+
factory.setFeature("http://xml.org/sax/features/validation", false)
72+
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", false)
73+
factory.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false)
74+
factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false)
75+
factory.newSAXParser()
76+
}
77+
}
6478
}

0 commit comments

Comments
 (0)