@@ -25,6 +25,9 @@ package scalaxb.compiler.xsd
25
25
import scalaxb .compiler .{Module , Config }
26
26
import java .io .{File , Reader , PrintWriter }
27
27
import collection .mutable
28
+ import scala .xml .{Elem }
29
+ import scala .xml .factory .{XMLLoader }
30
+ import javax .xml .parsers .SAXParser
28
31
29
32
class Driver extends Module { driver =>
30
33
type Schema = SchemaDecl
@@ -47,7 +50,7 @@ class Driver extends Module { driver =>
47
50
48
51
override def toImportable (in : Reader ): Importable = new Importable {
49
52
val reader = in
50
- val elem = scala.xml. XML .load(reader)
53
+ val elem = CustomXML .load(reader)
51
54
val schemaLite = SchemaLite .fromXML(elem)
52
55
val targetNamespace = schemaLite.targetNamespace
53
56
val imports : Seq [String ] = schemaLite.imports.collect {
@@ -61,4 +64,15 @@ class Driver extends Module { driver =>
61
64
schema
62
65
}
63
66
}
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
+ }
64
78
}
0 commit comments