diff --git a/daffodil-lib/src/main/scala/org/apache/daffodil/lib/xml/DaffodilXMLLoader.scala b/daffodil-lib/src/main/scala/org/apache/daffodil/lib/xml/DaffodilXMLLoader.scala index 68f7645f83..34eb2fda51 100644 --- a/daffodil-lib/src/main/scala/org/apache/daffodil/lib/xml/DaffodilXMLLoader.scala +++ b/daffodil-lib/src/main/scala/org/apache/daffodil/lib/xml/DaffodilXMLLoader.scala @@ -216,12 +216,41 @@ class DFDLCatalogResolver private () // because the nsURI will resolve to the including schema file. // This will cause the including schema to be repeatedly parsed resulting in a stack overflow. + lazy val systemIdUri = if (systemId != null) { + new URI(systemId) + } else { + null + } + + /** + * Xerces has a bug where it absolutizes systemId i.e the user supplies + * {{{ + * - - - + -9