You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by gi...@apache.org on 2020/11/21 13:03:13 UTC

[incubator-daffodil-site] branch asf-site updated: Publishing from a5b209d5e7e4e1236d7b9802146546e075679f61

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-daffodil-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 32926a7  Publishing from a5b209d5e7e4e1236d7b9802146546e075679f61
32926a7 is described below

commit 32926a76c6d23c5a52d3b69251f03b0321db1594
Author: Steve Lawrence <sl...@apache.org>
AuthorDate: Sat Nov 21 13:03:02 2020 +0000

    Publishing from a5b209d5e7e4e1236d7b9802146546e075679f61
---
 content/doap.rdf                                   |   7 +
 content/docs/latest/javadoc/allclasses-frame.html  |  14 +-
 .../docs/latest/javadoc/allclasses-noframe.html    |  14 +-
 content/docs/latest/javadoc/constant-values.html   |   7 +-
 content/docs/latest/javadoc/deprecated-list.html   |  20 +-
 content/docs/latest/javadoc/help-doc.html          |   7 +-
 content/docs/latest/javadoc/index-all.html         | 203 +++++-
 content/docs/latest/javadoc/index.html             |   4 +-
 .../javadoc/org/apache/daffodil/japi/Compiler.html |   7 +-
 .../javadoc/org/apache/daffodil/japi/Daffodil.html |  11 +-
 .../daffodil/japi/DaffodilParseXMLReader.html      | 696 +++++++++++++++++++++
 ...ion.html => DaffodilUnhandledSAXException.html} |  61 +-
 .../japi/DaffodilUnparseContentHandler.html        | 491 +++++++++++++++
 ....html => DaffodilUnparseErrorSAXException.html} |  61 +-
 .../org/apache/daffodil/japi/DataLocation.html     |  11 +-
 .../org/apache/daffodil/japi/DataProcessor.html    | 118 +++-
 .../org/apache/daffodil/japi/Diagnostic.html       |   7 +-
 .../daffodil/japi/InvalidParserException.html      |   7 +-
 .../daffodil/japi/InvalidUsageException.html       |   7 +-
 .../apache/daffodil/japi/LocationInSchemaFile.html |   7 +-
 .../org/apache/daffodil/japi/ParseResult.html      |   7 +-
 ...l => ProcessorFactory.ExperimentalWrapper.html} |  63 +-
 .../org/apache/daffodil/japi/ProcessorFactory.html |  53 +-
 .../org/apache/daffodil/japi/UnparseResult.html    |  11 +-
 .../org/apache/daffodil/japi/ValidationMode.html   |   7 +-
 .../org/apache/daffodil/japi/WithDiagnostics.html  |   7 +-
 .../daffodil/japi/debugger/DebuggerRunner.html     |   7 +-
 .../japi/debugger/TraceDebuggerRunner.html         |   7 +-
 .../daffodil/japi/debugger/package-frame.html      |   5 +-
 .../daffodil/japi/debugger/package-summary.html    |   7 +-
 .../daffodil/japi/debugger/package-tree.html       |   7 +-
 .../daffodil/japi/infoset/InfosetInputter.html     |   7 +-
 .../japi/infoset/InfosetInputterProxy.html         |   7 +-
 .../daffodil/japi/infoset/InfosetOutputter.html    |   7 +-
 .../japi/infoset/InfosetOutputterProxy.html        |   7 +-
 .../daffodil/japi/infoset/JDOMInfosetInputter.html |   7 +-
 .../japi/infoset/JDOMInfosetOutputter.html         |   7 +-
 .../daffodil/japi/infoset/JsonInfosetInputter.html |   7 +-
 .../japi/infoset/JsonInfosetOutputter.html         |   7 +-
 .../japi/infoset/NullInfosetOutputter.html         |   7 +-
 .../japi/infoset/ScalaXMLInfosetInputter.html      |   7 +-
 .../japi/infoset/ScalaXMLInfosetOutputter.html     |   7 +-
 .../japi/infoset/W3CDOMInfosetInputter.html        |   7 +-
 .../japi/infoset/W3CDOMInfosetOutputter.html       |   7 +-
 .../japi/infoset/XMLTextInfosetInputter.html       |   7 +-
 .../japi/infoset/XMLTextInfosetOutputter.html      |   7 +-
 .../daffodil/japi/infoset/package-frame.html       |   5 +-
 .../daffodil/japi/infoset/package-summary.html     |   7 +-
 .../apache/daffodil/japi/infoset/package-tree.html |   7 +-
 .../japi/io/InputSourceDataInputStream.html        |   7 +-
 .../org/apache/daffodil/japi/io/package-frame.html |   5 +-
 .../apache/daffodil/japi/io/package-summary.html   |   7 +-
 .../org/apache/daffodil/japi/io/package-tree.html  |   7 +-
 .../daffodil/japi/logger/ConsoleLogWriter.html     |   7 +-
 .../apache/daffodil/japi/logger/FileLogWriter.html |   7 +-
 .../org/apache/daffodil/japi/logger/LogLevel.html  |   7 +-
 .../org/apache/daffodil/japi/logger/LogWriter.html |   7 +-
 .../apache/daffodil/japi/logger/NullLogWriter.html |   7 +-
 .../apache/daffodil/japi/logger/package-frame.html |   5 +-
 .../daffodil/japi/logger/package-summary.html      |  11 +-
 .../apache/daffodil/japi/logger/package-tree.html  |  11 +-
 .../org/apache/daffodil/japi/package-frame.html    |   9 +-
 .../org/apache/daffodil/japi/package-summary.html  | 289 ++++++++-
 .../org/apache/daffodil/japi/package-tree.html     |  16 +-
 .../apache/daffodil/udf/UserDefinedFunction.html   | 180 ++++++
 .../udf/UserDefinedFunctionIdentification.html     | 231 +++++++
 .../UserDefinedFunctionProvider.html}              | 162 +++--
 .../UserDefinedFunctionFatalException.html}        |  81 +--
 .../UserDefinedFunctionProcessingError.html}       |  93 ++-
 .../daffodil/udf/exceptions/package-frame.html     |  20 +
 .../io => udf/exceptions}/package-summary.html     |  38 +-
 .../{japi/io => udf/exceptions}/package-tree.html  |  32 +-
 .../org/apache/daffodil/udf/package-frame.html     |  27 +
 .../org/apache/daffodil/udf/package-summary.html   | 176 ++++++
 .../daffodil/{japi/io => udf}/package-tree.html    |  61 +-
 content/docs/latest/javadoc/overview-frame.html    |   7 +-
 content/docs/latest/javadoc/overview-summary.html  |  17 +-
 content/docs/latest/javadoc/overview-tree.html     |  35 +-
 content/docs/latest/javadoc/package-list           |   2 +
 content/docs/latest/javadoc/serialized-form.html   | 293 ++++++++-
 content/docs/latest/scaladoc/index.html            |  12 +-
 content/docs/latest/scaladoc/index.js              |   2 +-
 .../latest/scaladoc/org/apache/daffodil/index.html | 146 ++++-
 .../org/apache/daffodil/sapi/Compiler.html         | 146 ++++-
 .../org/apache/daffodil/sapi/Daffodil$.html        | 146 ++++-
 ...Exception.html => DaffodilParseXMLReader$.html} | 481 +++++++-------
 ...ationMode$.html => DaffodilParseXMLReader.html} | 668 +++++++++++---------
 ...ion.html => DaffodilUnhandledSAXException.html} | 277 +++++---
 ...ion.html => DaffodilUnparseContentHandler.html} | 463 ++++++++------
 ....html => DaffodilUnparseErrorSAXException.html} | 277 +++++---
 .../org/apache/daffodil/sapi/DataLocation.html     | 146 ++++-
 .../org/apache/daffodil/sapi/DataProcessor.html    | 178 +++++-
 .../org/apache/daffodil/sapi/Diagnostic.html       | 146 ++++-
 .../daffodil/sapi/InvalidParserException.html      | 146 ++++-
 .../daffodil/sapi/InvalidUsageException.html       | 146 ++++-
 .../apache/daffodil/sapi/LocationInSchemaFile.html | 146 ++++-
 .../org/apache/daffodil/sapi/ParseResult.html      | 146 ++++-
 ...le.html => ProcessorFactory$experimental$.html} | 339 +++++-----
 .../org/apache/daffodil/sapi/ProcessorFactory.html | 164 ++++-
 .../org/apache/daffodil/sapi/UnparseResult.html    | 146 ++++-
 .../org/apache/daffodil/sapi/ValidationMode$.html  | 146 ++++-
 .../org/apache/daffodil/sapi/WithDiagnostics.html  | 146 ++++-
 .../daffodil/sapi/debugger/DebuggerRunner.html     | 130 +++-
 .../sapi/debugger/TraceDebuggerRunner.html         | 130 +++-
 .../org/apache/daffodil/sapi/debugger/index.html   | 130 +++-
 .../scaladoc/org/apache/daffodil/sapi/index.html   | 368 +++++++++--
 .../daffodil/sapi/infoset/InfosetInputter.html     | 130 +++-
 .../sapi/infoset/InfosetInputterProxy.html         | 130 +++-
 .../daffodil/sapi/infoset/InfosetOutputter.html    | 130 +++-
 .../sapi/infoset/InfosetOutputterProxy.html        | 130 +++-
 .../daffodil/sapi/infoset/JDOMInfosetInputter.html | 130 +++-
 .../sapi/infoset/JDOMInfosetOutputter.html         | 130 +++-
 .../daffodil/sapi/infoset/JsonInfosetInputter.html | 130 +++-
 .../sapi/infoset/JsonInfosetOutputter.html         | 130 +++-
 .../sapi/infoset/NullInfosetOutputter.html         | 130 +++-
 .../sapi/infoset/ScalaXMLInfosetInputter.html      | 130 +++-
 .../sapi/infoset/ScalaXMLInfosetOutputter.html     | 130 +++-
 .../sapi/infoset/W3CDOMInfosetInputter.html        | 130 +++-
 .../sapi/infoset/W3CDOMInfosetOutputter.html       | 130 +++-
 .../sapi/infoset/XMLTextInfosetInputter.html       | 130 +++-
 .../sapi/infoset/XMLTextInfosetOutputter.html      | 130 +++-
 .../org/apache/daffodil/sapi/infoset/index.html    | 130 +++-
 .../sapi/io/InputSourceDataInputStream.html        | 130 +++-
 .../org/apache/daffodil/sapi/io/index.html         | 130 +++-
 .../daffodil/sapi/logger/ConsoleLogWriter.html     | 130 +++-
 .../apache/daffodil/sapi/logger/FileLogWriter.html | 130 +++-
 .../org/apache/daffodil/sapi/logger/LogLevel$.html | 130 +++-
 .../org/apache/daffodil/sapi/logger/LogWriter.html | 130 +++-
 .../apache/daffodil/sapi/logger/NullLogWriter.html | 130 +++-
 .../org/apache/daffodil/sapi/logger/index.html     | 130 +++-
 .../UserDefinedFunction.html}                      | 270 +++-----
 .../UserDefinedFunctionIdentification.html}        | 277 ++++----
 .../UserDefinedFunctionProvider.html}              | 294 ++++-----
 .../UserDefinedFunctionFatalException.html}        | 461 ++++++++------
 .../UserDefinedFunctionProcessingError.html}       | 457 ++++++++------
 .../org/apache/daffodil/udf/exceptions/index.html  | 265 ++++++++
 .../scaladoc/org/apache/daffodil/udf/index.html    | 450 +++++++++++++
 content/docs/latest/scaladoc/org/apache/index.html |  12 +-
 content/docs/latest/scaladoc/org/index.html        |  12 +-
 content/index.html                                 |   4 +-
 content/releases/2.7.0/index.html                  |  30 +-
 content/releases/3.0.0/index.html                  |  36 +-
 content/releases/index.html                        |   9 +
 143 files changed, 11329 insertions(+), 3661 deletions(-)

diff --git a/content/doap.rdf b/content/doap.rdf
index 8baa5c8..e538360 100644
--- a/content/doap.rdf
+++ b/content/doap.rdf
@@ -85,6 +85,13 @@
     <release>
         <Version>
             <name>Apache Daffodil</name>
+            <created>2020-11-20</created>
+            <revision>3.0.0</revision>
+        </Version>
+    </release>
+    <release>
+        <Version>
+            <name>Apache Daffodil</name>
             <created>2020-07-14</created>
             <revision>2.7.0</revision>
         </Version>
diff --git a/content/docs/latest/javadoc/allclasses-frame.html b/content/docs/latest/javadoc/allclasses-frame.html
index ac5a0a4..628af32 100644
--- a/content/docs/latest/javadoc/allclasses-frame.html
+++ b/content/docs/latest/javadoc/allclasses-frame.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>All Classes (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>All Classes (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
 </head>
@@ -15,6 +14,10 @@
 <li><a href="org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi" target="classFrame">Compiler</a></li>
 <li><a href="org/apache/daffodil/japi/logger/ConsoleLogWriter.html" title="class in org.apache.daffodil.japi.logger" target="classFrame">ConsoleLogWriter</a></li>
 <li><a href="org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi" target="classFrame">Daffodil</a></li>
+<li><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi" target="classFrame">DaffodilParseXMLReader</a></li>
+<li><a href="org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi" target="classFrame">DaffodilUnhandledSAXException</a></li>
+<li><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi" target="classFrame">DaffodilUnparseContentHandler</a></li>
+<li><a href="org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi" target="classFrame">DaffodilUnparseErrorSAXException</a></li>
 <li><a href="org/apache/daffodil/japi/DataLocation.html" title="class in org.apache.daffodil.japi" target="classFrame">DataLocation</a></li>
 <li><a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi" target="classFrame">DataProcessor</a></li>
 <li><a href="org/apache/daffodil/japi/debugger/DebuggerRunner.html" title="class in org.apache.daffodil.japi.debugger" target="classFrame">DebuggerRunner</a></li>
@@ -42,6 +45,11 @@
 <li><a href="org/apache/daffodil/japi/infoset/ScalaXMLInfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset" target="classFrame">ScalaXMLInfosetOutputter</a></li>
 <li><a href="org/apache/daffodil/japi/debugger/TraceDebuggerRunner.html" title="class in org.apache.daffodil.japi.debugger" target="classFrame">TraceDebuggerRunner</a></li>
 <li><a href="org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi" target="classFrame">UnparseResult</a></li>
+<li><a href="org/apache/daffodil/udf/UserDefinedFunction.html" title="interface in org.apache.daffodil.udf" target="classFrame"><span class="interfaceName">UserDefinedFunction</span></a></li>
+<li><a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" title="class in org.apache.daffodil.udf.exceptions" target="classFrame">UserDefinedFunctionFatalException</a></li>
+<li><a href="org/apache/daffodil/udf/UserDefinedFunctionIdentification.html" title="annotation in org.apache.daffodil.udf" target="classFrame">UserDefinedFunctionIdentification</a></li>
+<li><a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions" target="classFrame">UserDefinedFunctionProcessingError</a></li>
+<li><a href="org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf" target="classFrame">UserDefinedFunctionProvider</a></li>
 <li><a href="org/apache/daffodil/japi/ValidationMode.html" title="enum in org.apache.daffodil.japi" target="classFrame">ValidationMode</a></li>
 <li><a href="org/apache/daffodil/japi/infoset/W3CDOMInfosetInputter.html" title="class in org.apache.daffodil.japi.infoset" target="classFrame">W3CDOMInfosetInputter</a></li>
 <li><a href="org/apache/daffodil/japi/infoset/W3CDOMInfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset" target="classFrame">W3CDOMInfosetOutputter</a></li>
diff --git a/content/docs/latest/javadoc/allclasses-noframe.html b/content/docs/latest/javadoc/allclasses-noframe.html
index 9f729af..4960f44 100644
--- a/content/docs/latest/javadoc/allclasses-noframe.html
+++ b/content/docs/latest/javadoc/allclasses-noframe.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>All Classes (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>All Classes (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
 </head>
@@ -15,6 +14,10 @@
 <li><a href="org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi">Compiler</a></li>
 <li><a href="org/apache/daffodil/japi/logger/ConsoleLogWriter.html" title="class in org.apache.daffodil.japi.logger">ConsoleLogWriter</a></li>
 <li><a href="org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi">Daffodil</a></li>
+<li><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></li>
+<li><a href="org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi">DaffodilUnhandledSAXException</a></li>
+<li><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></li>
+<li><a href="org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi">DaffodilUnparseErrorSAXException</a></li>
 <li><a href="org/apache/daffodil/japi/DataLocation.html" title="class in org.apache.daffodil.japi">DataLocation</a></li>
 <li><a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></li>
 <li><a href="org/apache/daffodil/japi/debugger/DebuggerRunner.html" title="class in org.apache.daffodil.japi.debugger">DebuggerRunner</a></li>
@@ -42,6 +45,11 @@
 <li><a href="org/apache/daffodil/japi/infoset/ScalaXMLInfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">ScalaXMLInfosetOutputter</a></li>
 <li><a href="org/apache/daffodil/japi/debugger/TraceDebuggerRunner.html" title="class in org.apache.daffodil.japi.debugger">TraceDebuggerRunner</a></li>
 <li><a href="org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi">UnparseResult</a></li>
+<li><a href="org/apache/daffodil/udf/UserDefinedFunction.html" title="interface in org.apache.daffodil.udf"><span class="interfaceName">UserDefinedFunction</span></a></li>
+<li><a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" title="class in org.apache.daffodil.udf.exceptions">UserDefinedFunctionFatalException</a></li>
+<li><a href="org/apache/daffodil/udf/UserDefinedFunctionIdentification.html" title="annotation in org.apache.daffodil.udf">UserDefinedFunctionIdentification</a></li>
+<li><a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions">UserDefinedFunctionProcessingError</a></li>
+<li><a href="org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf">UserDefinedFunctionProvider</a></li>
 <li><a href="org/apache/daffodil/japi/ValidationMode.html" title="enum in org.apache.daffodil.japi">ValidationMode</a></li>
 <li><a href="org/apache/daffodil/japi/infoset/W3CDOMInfosetInputter.html" title="class in org.apache.daffodil.japi.infoset">W3CDOMInfosetInputter</a></li>
 <li><a href="org/apache/daffodil/japi/infoset/W3CDOMInfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">W3CDOMInfosetOutputter</a></li>
diff --git a/content/docs/latest/javadoc/constant-values.html b/content/docs/latest/javadoc/constant-values.html
index b516748..1367fb2 100644
--- a/content/docs/latest/javadoc/constant-values.html
+++ b/content/docs/latest/javadoc/constant-values.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>Constant Field Values (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>Constant Field Values (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Constant Field Values (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="Constant Field Values (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/deprecated-list.html b/content/docs/latest/javadoc/deprecated-list.html
index 8c8bcd7..04b86eb 100644
--- a/content/docs/latest/javadoc/deprecated-list.html
+++ b/content/docs/latest/javadoc/deprecated-list.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>Deprecated List (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>Deprecated List (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Deprecated List (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="Deprecated List (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -128,13 +127,13 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/daffodil/japi/ProcessorFactory.html#setDistinguishedRootNode-java.lang.String-java.lang.String-">org.apache.daffodil.japi.ProcessorFactory.setDistinguishedRootNode(String, String)</a>
-<div class="block"><span class="deprecationComment">Use withDistinguishedRootNode. Since 2.6.0.</span></div>
+<td class="colOne"><a href="org/apache/daffodil/japi/Compiler.html#setDistinguishedRootNode-java.lang.String-java.lang.String-">org.apache.daffodil.japi.Compiler.setDistinguishedRootNode(String, String)</a>
+<div class="block"><span class="deprecationComment">Pass arguments to compileSource, or compileFile. Since 2.6.0.</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/daffodil/japi/Compiler.html#setDistinguishedRootNode-java.lang.String-java.lang.String-">org.apache.daffodil.japi.Compiler.setDistinguishedRootNode(String, String)</a>
-<div class="block"><span class="deprecationComment">Pass arguments to compileSource, or compileFile. Since 2.6.0.</span></div>
+<td class="colOne"><a href="org/apache/daffodil/japi/ProcessorFactory.html#setDistinguishedRootNode-java.lang.String-java.lang.String-">org.apache.daffodil.japi.ProcessorFactory.setDistinguishedRootNode(String, String)</a>
+<div class="block"><span class="deprecationComment">Use withDistinguishedRootNode. Since 2.6.0.</span></div>
 </td>
 </tr>
 <tr class="altColor">
@@ -187,6 +186,11 @@
 <div class="block"><span class="deprecationComment">Use unparse(InfosetInputter, WritableByteChannel). Since 2.0.0.</span></div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/daffodil/japi/DataProcessor.html#withExternalVariables-scala.collection.immutable.Map-">org.apache.daffodil.japi.DataProcessor.withExternalVariables(Map&lt;String, String&gt;)</a>
+<div class="block"><span class="deprecationComment">Use withExternalVariables that accepts a Java AbstractMap. Since 3.0.</span></div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>
diff --git a/content/docs/latest/javadoc/help-doc.html b/content/docs/latest/javadoc/help-doc.html
index 1b73892..def5c69 100644
--- a/content/docs/latest/javadoc/help-doc.html
+++ b/content/docs/latest/javadoc/help-doc.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>API Help (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>API Help (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="API Help (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="API Help (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/index-all.html b/content/docs/latest/javadoc/index-all.html
index 73c008b..413ba39 100644
--- a/content/docs/latest/javadoc/index-all.html
+++ b/content/docs/latest/javadoc/index-all.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>Index (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>Index (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Index (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="Index (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -93,6 +92,8 @@
 <div class="block"><span class="deprecationComment">Use !isError() to determine if it is safe to proceed. Since 2.0.0.</span></div>
 </div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#characters-char:A-int-int-">characters(char[], int, int)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/Compiler.html#compileFile-java.io.File-">compileFile(File)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi">Compiler</a></dt>
 <dd>
 <div class="block">Compile DFDL schema file into a <a href="org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi"><code>ProcessorFactory</code></a></div>
@@ -125,6 +126,11 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/logger/ConsoleLogWriter.html#ConsoleLogWriter--">ConsoleLogWriter()</a></span> - Constructor for class org.apache.daffodil.japi.logger.<a href="org/apache/daffodil/japi/logger/ConsoleLogWriter.html" title="class in org.apache.daffodil.japi.logger">ConsoleLogWriter</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/udf/UserDefinedFunctionProvider.html#createUserDefinedFunction-java.lang.String-java.lang.String-">createUserDefinedFunction(String, String)</a></span> - Method in class org.apache.daffodil.udf.<a href="org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf">UserDefinedFunctionProvider</a></dt>
+<dd>
+<div class="block">Finds and initializes User Defined Function class based on namespace and name
+ provided.</div>
+</dd>
 </dl>
 <a name="I:D">
 <!--   -->
@@ -137,6 +143,39 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/Daffodil.html#Daffodil--">Daffodil()</a></span> - Constructor for class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi">Daffodil</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#DAFFODIL_SAX_URN_BLOBDIRECTORY--">DAFFODIL_SAX_URN_BLOBDIRECTORY()</a></span> - Static method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#DAFFODIL_SAX_URN_BLOBPREFIX--">DAFFODIL_SAX_URN_BLOBPREFIX()</a></span> - Static method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#DAFFODIL_SAX_URN_BLOBSUFFIX--">DAFFODIL_SAX_URN_BLOBSUFFIX()</a></span> - Static method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#DAFFODIL_SAX_URN_PARSERESULT--">DAFFODIL_SAX_URN_PARSERESULT()</a></span> - Static method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DaffodilParseXMLReader</span></a> - Class in <a href="org/apache/daffodil/japi/package-summary.html">org.apache.daffodil.japi</a></dt>
+<dd>
+<div class="block">SAX method of parsing schema and getting the DFDL Infoset via some
+ org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#DaffodilParseXMLReader-org.apache.daffodil.processors.DaffodilParseXMLReader-">DaffodilParseXMLReader(DaffodilParseXMLReader)</a></span> - Constructor for class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DaffodilUnhandledSAXException</span></a> - Exception in <a href="org/apache/daffodil/japi/package-summary.html">org.apache.daffodil.japi</a></dt>
+<dd>
+<div class="block">This exception will be thrown when an unexpected error occurs during the SAX unparse</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnhandledSAXException.html#DaffodilUnhandledSAXException-org.apache.daffodil.api.DFDL.DaffodilUnhandledSAXException-">DaffodilUnhandledSAXException(DFDL.DaffodilUnhandledSAXException)</a></span> - Constructor for exception org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi">DaffodilUnhandledSAXException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DaffodilUnparseContentHandler</span></a> - Class in <a href="org/apache/daffodil/japi/package-summary.html">org.apache.daffodil.japi</a></dt>
+<dd>
+<div class="block">Accepts SAX callback events from any SAX XMLReader for unparsing</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#DaffodilUnparseContentHandler-org.apache.daffodil.processors.DaffodilUnparseContentHandler-">DaffodilUnparseContentHandler(DaffodilUnparseContentHandler)</a></span> - Constructor for class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DaffodilUnparseErrorSAXException</span></a> - Exception in <a href="org/apache/daffodil/japi/package-summary.html">org.apache.daffodil.japi</a></dt>
+<dd>
+<div class="block">This exception will be thrown when unparseResult.isError returns true during a SAX Unparse</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html#DaffodilUnparseErrorSAXException-org.apache.daffodil.api.DFDL.DaffodilUnparseErrorSAXException-">DaffodilUnparseErrorSAXException(DFDL.DaffodilUnparseErrorSAXException)</a></span> - Constructor for exception org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi">DaffodilUnparseErrorSAXException</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/daffodil/japi/DataLocation.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DataLocation</span></a> - Class in <a href="org/apache/daffodil/japi/package-summary.html">org.apache.daffodil.japi</a></dt>
 <dd>
 <div class="block">Information related to a location in data</div>
@@ -181,18 +220,28 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html#endComplex-org.apache.daffodil.infoset.DIComplex-">endComplex(DIComplex)</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputterProxy</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#endDocument--">endDocument()</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetOutputter.html#endDocument--">endDocument()</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputter</a></dt>
 <dd>
 <div class="block">Called by Daffodil internals to signify the end of the infoset.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html#endDocument--">endDocument()</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputterProxy</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#endElement-java.lang.String-java.lang.String-java.lang.String-">endElement(String, String, String)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#endPrefixMapping-java.lang.String-">endPrefixMapping(String)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetOutputter.html#endSimple-org.apache.daffodil.infoset.DISimple-">endSimple(DISimple)</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputter</a></dt>
 <dd>
 <div class="block">Called by Daffodil internals to signify the end of a simple element.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html#endSimple-org.apache.daffodil.infoset.DISimple-">endSimple(DISimple)</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputterProxy</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/ProcessorFactory.html#experimental--">experimental()</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi">ProcessorFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html#ExperimentalWrapper-org.apache.daffodil.dsom.walker.RootView-">ExperimentalWrapper(RootView)</a></span> - Constructor for class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" title="class in org.apache.daffodil.japi">ProcessorFactory.ExperimentalWrapper</a></dt>
+<dd>&nbsp;</dd>
 </dl>
 <a name="I:F">
 <!--   -->
@@ -227,6 +276,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/debugger/TraceDebuggerRunner.html#getCommand--">getCommand()</a></span> - Method in class org.apache.daffodil.japi.debugger.<a href="org/apache/daffodil/japi/debugger/TraceDebuggerRunner.html" title="class in org.apache.daffodil.japi.debugger">TraceDebuggerRunner</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#getContentHandler--">getContentHandler()</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Retrieve registered content handler</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/Diagnostic.html#getDataLocations--">getDataLocations()</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/Diagnostic.html" title="class in org.apache.daffodil.japi">Diagnostic</a></dt>
 <dd>
 <div class="block">Get data location information relevant to this diagnostic object.</div>
@@ -235,12 +288,28 @@
 <dd>
 <div class="block">Get the list of <a href="org/apache/daffodil/japi/Diagnostic.html" title="class in org.apache.daffodil.japi"><code>Diagnostic</code></a>'s created during the construction of the parent object</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#getDTDHandler--">getDTDHandler()</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Retrieve registered DTD Handler</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#getEntityResolver--">getEntityResolver()</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Return the registered entity resolver</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#getErrorHandler--">getErrorHandler()</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Retrieve registered error handler</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetInputter.html#getEventType--">getEventType()</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetInputter.html" title="class in org.apache.daffodil.japi.infoset">InfosetInputter</a></dt>
 <dd>
 <div class="block">Return the current infoset inputter event type</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetInputterProxy.html#getEventType--">getEventType()</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetInputterProxy.html" title="class in org.apache.daffodil.japi.infoset">InfosetInputterProxy</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#getFeature-java.lang.String-">getFeature(String)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Get the value of the feature flag</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/logger/FileLogWriter.html#getFile--">getFile()</a></span> - Method in class org.apache.daffodil.japi.logger.<a href="org/apache/daffodil/japi/logger/FileLogWriter.html" title="class in org.apache.daffodil.japi.logger">FileLogWriter</a></dt>
 <dd>
 <div class="block">Retrieve the file the log writer writes to</div>
@@ -265,6 +334,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetInputterProxy.html#getNamespaceURI--">getNamespaceURI()</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetInputterProxy.html" title="class in org.apache.daffodil.japi.infoset">InfosetInputterProxy</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#getProperty-java.lang.String-">getProperty(String)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Get the value of the property</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/JDOMInfosetOutputter.html#getResult--">getResult()</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/JDOMInfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">JDOMInfosetOutputter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/ScalaXMLInfosetOutputter.html#getResult--">getResult()</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/ScalaXMLInfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">ScalaXMLInfosetOutputter</a></dt>
@@ -283,6 +356,15 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/Diagnostic.html#getSomeMessage--">getSomeMessage()</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/Diagnostic.html" title="class in org.apache.daffodil.japi">Diagnostic</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#getUnparseResult--">getUnparseResult()</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>
+<div class="block">Returns the result of the SAX unparse containing diagnostic information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/udf/UserDefinedFunctionProvider.html#getUserDefinedFunctionClasses--">getUserDefinedFunctionClasses()</a></span> - Method in class org.apache.daffodil.udf.<a href="org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf">UserDefinedFunctionProvider</a></dt>
+<dd>
+<div class="block">Must be implemented to return the classes of the User Defined Function this
+ provider is aware of/providing</div>
+</dd>
 </dl>
 <a name="I:H">
 <!--   -->
@@ -305,6 +387,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/ValidationMode.html#id">id</a></span> - Variable in enum org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/ValidationMode.html" title="enum in org.apache.daffodil.japi">ValidationMode</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#ignorableWhitespace-char:A-int-int-">ignorableWhitespace(char[], int, int)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/daffodil/japi/infoset/InfosetInputter.html" title="class in org.apache.daffodil.japi.infoset"><span class="typeNameLink">InfosetInputter</span></a> - Class in <a href="org/apache/daffodil/japi/infoset/package-summary.html">org.apache.daffodil.japi.infoset</a></dt>
 <dd>
 <div class="block">Abstract class used to determine how the infoset representation should be
@@ -504,6 +588,14 @@
 </a>
 <h2 class="title">N</h2>
 <dl>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DataProcessor.html#newContentHandlerInstance-java.nio.channels.WritableByteChannel-">newContentHandlerInstance(WritableByteChannel)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></dt>
+<dd>
+<div class="block">Obtain a new <a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><code>DaffodilUnparseContentHandler</code></a> from the current <a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DataProcessor.html#newXMLReaderInstance--">newXMLReaderInstance()</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></dt>
+<dd>
+<div class="block">Obtain a new <a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><code>DaffodilParseXMLReader</code></a> from the current <a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a>.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetInputter.html#next--">next()</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetInputter.html" title="class in org.apache.daffodil.japi.infoset">InfosetInputter</a></dt>
 <dd>
 <div class="block">Move the internal state to the next event.</div>
@@ -553,12 +645,36 @@
 <dd>
 <div class="block">Provides the classes necessary to receive logging messages from Daffodil.</div>
 </dd>
+<dt><a href="org/apache/daffodil/udf/package-summary.html">org.apache.daffodil.udf</a> - package org.apache.daffodil.udf</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/daffodil/udf/exceptions/package-summary.html">org.apache.daffodil.udf.exceptions</a> - package org.apache.daffodil.udf.exceptions</dt>
+<dd>&nbsp;</dd>
 </dl>
 <a name="I:P">
 <!--   -->
 </a>
 <h2 class="title">P</h2>
 <dl>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#parse-org.xml.sax.InputSource-">parse(InputSource)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Parse input data from an InputSource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#parse-java.lang.String-">parse(String)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Parse data from a system identifier/URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#parse-org.apache.daffodil.japi.io.InputSourceDataInputStream-">parse(InputSourceDataInputStream)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Parse input data from an InputSourceDataInputStream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#parse-java.io.InputStream-">parse(InputStream)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Parse input data from an InputStream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#parse-byte:A-">parse(byte[])</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Parse input data from an array of bytes.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DataProcessor.html#parse-java.nio.channels.ReadableByteChannel-long-">parse(ReadableByteChannel, long)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@@ -598,12 +714,16 @@
 <dd>
 <div class="block">Override to change the prefix string of the log message.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#processingInstruction-java.lang.String-java.lang.String-">processingInstruction(String, String)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">ProcessorFactory</span></a> - Class in <a href="org/apache/daffodil/japi/package-summary.html">org.apache.daffodil.japi</a></dt>
 <dd>
 <div class="block">Factory to create <a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a>'s, used for parsing data</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/ProcessorFactory.html#ProcessorFactory-org.apache.daffodil.compiler.ProcessorFactory-">ProcessorFactory(ProcessorFactory)</a></span> - Constructor for class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi">ProcessorFactory</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">ProcessorFactory.ExperimentalWrapper</span></a> - Class in <a href="org/apache/daffodil/japi/package-summary.html">org.apache.daffodil.japi</a></dt>
+<dd>&nbsp;</dd>
 </dl>
 <a name="I:R">
 <!--   -->
@@ -630,6 +750,8 @@
 <div class="block"><span class="deprecationComment">Use parse(ReadableByteChannel, InfosetInputter) to parse the data and get the infoset representation from the InfosetOutputter. Since 2.0.0.</span></div>
 </div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html#rootView--">rootView()</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" title="class in org.apache.daffodil.japi">ProcessorFactory.ExperimentalWrapper</a></dt>
+<dd>&nbsp;</dd>
 </dl>
 <a name="I:S">
 <!--   -->
@@ -652,6 +774,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/ScalaXMLInfosetOutputter.html#ScalaXMLInfosetOutputter-boolean-">ScalaXMLInfosetOutputter(boolean)</a></span> - Constructor for class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/ScalaXMLInfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">ScalaXMLInfosetOutputter</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#setContentHandler-org.xml.sax.ContentHandler-">setContentHandler(ContentHandler)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Register a content handler</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DataProcessor.html#setDebugger-org.apache.daffodil.japi.debugger.DebuggerRunner-">setDebugger(DebuggerRunner)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@@ -676,6 +802,20 @@
 <div class="block"><span class="deprecationComment">Use withDistinguishedRootNode. Since 2.6.0.</span></div>
 </div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#setDocumentLocator-org.xml.sax.Locator-">setDocumentLocator(Locator)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#setDTDHandler-org.xml.sax.DTDHandler-">setDTDHandler(DTDHandler)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Register a DTD Handler</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#setEntityResolver-org.xml.sax.EntityResolver-">setEntityResolver(EntityResolver)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Register an entity resolver</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#setErrorHandler-org.xml.sax.ErrorHandler-">setErrorHandler(ErrorHandler)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Register an error handler</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/Compiler.html#setExternalDFDLVariable-java.lang.String-java.lang.String-java.lang.String-">setExternalDFDLVariable(String, String, String)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi">Compiler</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@@ -706,6 +846,10 @@
 <div class="block"><span class="deprecationComment">Use withExternalVariables. Since 2.6.0.</span></div>
 </div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#setFeature-java.lang.String-boolean-">setFeature(String, boolean)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Set the value of the feature flag</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/Daffodil.html#setLoggingLevel-org.apache.daffodil.japi.logger.LogLevel-">setLoggingLevel(LogLevel)</a></span> - Static method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi">Daffodil</a></dt>
 <dd>
 <div class="block">Set the maximum logging level</div>
@@ -714,6 +858,10 @@
 <dd>
 <div class="block">Set the LogWriter to use to capture logging messages from Daffodil</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html#setProperty-java.lang.String-java.lang.Object-">setProperty(String, Object)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></dt>
+<dd>
+<div class="block">Set the value of the property</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/Compiler.html#setTunable-java.lang.String-java.lang.String-">setTunable(String, String)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi">Compiler</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@@ -738,6 +886,8 @@
 <div class="block"><span class="deprecationComment">Use withValidationMode. Since 2.6.0.</span></div>
 </div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#skippedEntity-java.lang.String-">skippedEntity(String)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetOutputter.html#startArray-org.apache.daffodil.infoset.DIArray-">startArray(DIArray)</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputter</a></dt>
 <dd>
 <div class="block">Called by Daffodil internals to signify the beginning of an array of elements.</div>
@@ -750,12 +900,18 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html#startComplex-org.apache.daffodil.infoset.DIComplex-">startComplex(DIComplex)</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputterProxy</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#startDocument--">startDocument()</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetOutputter.html#startDocument--">startDocument()</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputter</a></dt>
 <dd>
 <div class="block">Called by Daffodil internals to signify the beginning of the infoset.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html#startDocument--">startDocument()</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputterProxy</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">startElement(String, String, String, Attributes)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#startPrefixMapping-java.lang.String-java.lang.String-">startPrefixMapping(String, String)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/infoset/InfosetOutputter.html#startSimple-org.apache.daffodil.infoset.DISimple-">startSimple(DISimple)</a></span> - Method in class org.apache.daffodil.japi.infoset.<a href="org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputter</a></dt>
 <dd>
 <div class="block">Called by Daffodil internals to signify the beginning of a simple element.</div>
@@ -811,6 +967,39 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/UnparseResult.html#UnparseResult-org.apache.daffodil.processors.UnparseResult-">UnparseResult(UnparseResult)</a></span> - Constructor for class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi">UnparseResult</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/daffodil/udf/UserDefinedFunction.html" title="interface in org.apache.daffodil.udf"><span class="typeNameLink">UserDefinedFunction</span></a> - Interface in <a href="org/apache/daffodil/udf/package-summary.html">org.apache.daffodil.udf</a></dt>
+<dd>
+<div class="block">Interface that all User Defined Functions classes must implement.</div>
+</dd>
+<dt><a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" title="class in org.apache.daffodil.udf.exceptions"><span class="typeNameLink">UserDefinedFunctionFatalException</span></a> - Exception in <a href="org/apache/daffodil/udf/exceptions/package-summary.html">org.apache.daffodil.udf.exceptions</a></dt>
+<dd>
+<div class="block">Exception to throw to abort parsing/unparsing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html#UserDefinedFunctionFatalException-java.lang.String-">UserDefinedFunctionFatalException(String)</a></span> - Constructor for exception org.apache.daffodil.udf.exceptions.<a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" title="class in org.apache.daffodil.udf.exceptions">UserDefinedFunctionFatalException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html#UserDefinedFunctionFatalException-java.lang.Throwable-">UserDefinedFunctionFatalException(Throwable)</a></span> - Constructor for exception org.apache.daffodil.udf.exceptions.<a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" title="class in org.apache.daffodil.udf.exceptions">UserDefinedFunctionFatalException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/daffodil/udf/UserDefinedFunctionIdentification.html" title="annotation in org.apache.daffodil.udf"><span class="typeNameLink">UserDefinedFunctionIdentification</span></a> - Annotation Type in <a href="org/apache/daffodil/udf/package-summary.html">org.apache.daffodil.udf</a></dt>
+<dd>
+<div class="block">Annotation that must be applied to every UDF in order for it to be considered
+ valid.</div>
+</dd>
+<dt><a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions"><span class="typeNameLink">UserDefinedFunctionProcessingError</span></a> - Exception in <a href="org/apache/daffodil/udf/exceptions/package-summary.html">org.apache.daffodil.udf.exceptions</a></dt>
+<dd>
+<div class="block">Exception to throw to cause backtracking during parsing/unparsing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html#UserDefinedFunctionProcessingError-java.lang.String-">UserDefinedFunctionProcessingError(String)</a></span> - Constructor for exception org.apache.daffodil.udf.exceptions.<a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions">UserDefinedFunctionProcessingError</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html#UserDefinedFunctionProcessingError-java.lang.Throwable-">UserDefinedFunctionProcessingError(Throwable)</a></span> - Constructor for exception org.apache.daffodil.udf.exceptions.<a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions">UserDefinedFunctionProcessingError</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html#UserDefinedFunctionProcessingError-java.lang.String-java.lang.Throwable-">UserDefinedFunctionProcessingError(String, Throwable)</a></span> - Constructor for exception org.apache.daffodil.udf.exceptions.<a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions">UserDefinedFunctionProcessingError</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf"><span class="typeNameLink">UserDefinedFunctionProvider</span></a> - Class in <a href="org/apache/daffodil/udf/package-summary.html">org.apache.daffodil.udf</a></dt>
+<dd>
+<div class="block">Abstract class used by ServiceLoader to poll for UDF providers on classpath.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/udf/UserDefinedFunctionProvider.html#UserDefinedFunctionProvider--">UserDefinedFunctionProvider()</a></span> - Constructor for class org.apache.daffodil.udf.<a href="org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf">UserDefinedFunctionProvider</a></dt>
+<dd>&nbsp;</dd>
 </dl>
 <a name="I:V">
 <!--   -->
@@ -881,6 +1070,12 @@ the order they are declared.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DataProcessor.html#withExternalVariables-scala.collection.immutable.Map-">withExternalVariables(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></dt>
 <dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use withExternalVariables that accepts a Java AbstractMap. Since 3.0.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/DataProcessor.html#withExternalVariables-java.util.AbstractMap-">withExternalVariables(AbstractMap&lt;String, String&gt;)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></dt>
+<dd>
 <div class="block">Obtain a new <a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> with multiple DFDL variables set.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/daffodil/japi/Compiler.html#withTunable-java.lang.String-java.lang.String-">withTunable(String, String)</a></span> - Method in class org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi">Compiler</a></dt>
diff --git a/content/docs/latest/javadoc/index.html b/content/docs/latest/javadoc/index.html
index fbed184..1663663 100644
--- a/content/docs/latest/javadoc/index.html
+++ b/content/docs/latest/javadoc/index.html
@@ -2,8 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>Apache Daffodil (incubating) 2.7.0 Java API</title>
+<!-- Generated by javadoc -->
+<title>Apache Daffodil (incubating) 3.0.0 Java API</title>
 <script type="text/javascript">
     tmpTargetPage = "" + window.location.search;
     if (tmpTargetPage != "" && tmpTargetPage != "undefined")
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/Compiler.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/Compiler.html
index 49898ba..7797eea 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/Compiler.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/Compiler.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>Compiler (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>Compiler (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Compiler (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="Compiler (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/Daffodil.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/Daffodil.html
index fd41f7b..61d2b59 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/Daffodil.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/Daffodil.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>Daffodil (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>Daffodil (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Daffodil (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="Daffodil (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -49,7 +48,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/DataLocation.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/daffodil/japi/Daffodil.html" target="_top">Frames</a></li>
@@ -276,7 +275,7 @@ extends java.lang.Object</pre>
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/DataLocation.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/daffodil/japi/Daffodil.html" target="_top">Frames</a></li>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/DaffodilParseXMLReader.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/DaffodilParseXMLReader.html
new file mode 100644
index 0000000..68effb6
--- /dev/null
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/DaffodilParseXMLReader.html
@@ -0,0 +1,696 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>DaffodilParseXMLReader (Apache Daffodil (incubating) 3.0.0 Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DaffodilParseXMLReader (Apache Daffodil (incubating) 3.0.0 Java API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/daffodil/japi/DaffodilParseXMLReader.html" target="_top">Frames</a></li>
+<li><a href="DaffodilParseXMLReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.daffodil.japi</div>
+<h2 title="Class DaffodilParseXMLReader" class="title">Class DaffodilParseXMLReader</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.daffodil.japi.DaffodilParseXMLReader</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>org.xml.sax.XMLReader</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DaffodilParseXMLReader</span>
+extends java.lang.Object
+implements org.xml.sax.XMLReader</pre>
+<div class="block">SAX method of parsing schema and getting the DFDL Infoset via some
+ org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#DaffodilParseXMLReader-org.apache.daffodil.processors.DaffodilParseXMLReader-">DaffodilParseXMLReader</a></span>(org.apache.daffodil.processors.DaffodilParseXMLReader&nbsp;xmlrdr)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd [...]
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#DAFFODIL_SAX_URN_BLOBDIRECTORY--">DAFFODIL_SAX_URN_BLOBDIRECTORY</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#DAFFODIL_SAX_URN_BLOBPREFIX--">DAFFODIL_SAX_URN_BLOBPREFIX</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#DAFFODIL_SAX_URN_BLOBSUFFIX--">DAFFODIL_SAX_URN_BLOBSUFFIX</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#DAFFODIL_SAX_URN_PARSERESULT--">DAFFODIL_SAX_URN_PARSERESULT</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>org.xml.sax.ContentHandler</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#getContentHandler--">getContentHandler</a></span>()</code>
+<div class="block">Retrieve registered content handler</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>org.xml.sax.DTDHandler</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#getDTDHandler--">getDTDHandler</a></span>()</code>
+<div class="block">Retrieve registered DTD Handler</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>org.xml.sax.EntityResolver</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#getEntityResolver--">getEntityResolver</a></span>()</code>
+<div class="block">Return the registered entity resolver</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>org.xml.sax.ErrorHandler</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#getErrorHandler--">getErrorHandler</a></span>()</code>
+<div class="block">Retrieve registered error handler</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#getFeature-java.lang.String-">getFeature</a></span>(java.lang.String&nbsp;name)</code>
+<div class="block">Get the value of the feature flag</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>java.lang.Object</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#getProperty-java.lang.String-">getProperty</a></span>(java.lang.String&nbsp;name)</code>
+<div class="block">Get the value of the property</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#parse-byte:A-">parse</a></span>(byte[]&nbsp;arr)</code>
+<div class="block">Parse input data from an array of bytes.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#parse-org.xml.sax.InputSource-">parse</a></span>(org.xml.sax.InputSource&nbsp;input)</code>
+<div class="block">Parse input data from an InputSource.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#parse-org.apache.daffodil.japi.io.InputSourceDataInputStream-">parse</a></span>(<a href="../../../../org/apache/daffodil/japi/io/InputSourceDataInputStream.html" title="class in org.apache.daffodil.japi.io">InputSourceDataInputStream</a>&nbsp;isdis)</code>
+<div class="block">Parse input data from an InputSourceDataInputStream.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#parse-java.io.InputStream-">parse</a></span>(java.io.InputStream&nbsp;stream)</code>
+<div class="block">Parse input data from an InputStream.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#parse-java.lang.String-">parse</a></span>(java.lang.String&nbsp;systemId)</code>
+<div class="block">Parse data from a system identifier/URI.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#setContentHandler-org.xml.sax.ContentHandler-">setContentHandler</a></span>(org.xml.sax.ContentHandler&nbsp;handler)</code>
+<div class="block">Register a content handler</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#setDTDHandler-org.xml.sax.DTDHandler-">setDTDHandler</a></span>(org.xml.sax.DTDHandler&nbsp;handler)</code>
+<div class="block">Register a DTD Handler</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#setEntityResolver-org.xml.sax.EntityResolver-">setEntityResolver</a></span>(org.xml.sax.EntityResolver&nbsp;resolver)</code>
+<div class="block">Register an entity resolver</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#setErrorHandler-org.xml.sax.ErrorHandler-">setErrorHandler</a></span>(org.xml.sax.ErrorHandler&nbsp;handler)</code>
+<div class="block">Register an error handler</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#setFeature-java.lang.String-boolean-">setFeature</a></span>(java.lang.String&nbsp;name,
+          boolean&nbsp;value)</code>
+<div class="block">Set the value of the feature flag</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#setProperty-java.lang.String-java.lang.Object-">setProperty</a></span>(java.lang.String&nbsp;name,
+           java.lang.Object&nbsp;value)</code>
+<div class="block">Set the value of the property</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DaffodilParseXMLReader-org.apache.daffodil.processors.DaffodilParseXMLReader-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DaffodilParseXMLReader</h4>
+<pre>public&nbsp;DaffodilParseXMLReader(org.apache.daffodil.processors.DaffodilParseXMLReader&nbsp;xmlrdr)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="DAFFODIL_SAX_URN_PARSERESULT--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DAFFODIL_SAX_URN_PARSERESULT</h4>
+<pre>public static&nbsp;java.lang.String&nbsp;DAFFODIL_SAX_URN_PARSERESULT()</pre>
+</li>
+</ul>
+<a name="DAFFODIL_SAX_URN_BLOBDIRECTORY--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DAFFODIL_SAX_URN_BLOBDIRECTORY</h4>
+<pre>public static&nbsp;java.lang.String&nbsp;DAFFODIL_SAX_URN_BLOBDIRECTORY()</pre>
+</li>
+</ul>
+<a name="DAFFODIL_SAX_URN_BLOBPREFIX--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DAFFODIL_SAX_URN_BLOBPREFIX</h4>
+<pre>public static&nbsp;java.lang.String&nbsp;DAFFODIL_SAX_URN_BLOBPREFIX()</pre>
+</li>
+</ul>
+<a name="DAFFODIL_SAX_URN_BLOBSUFFIX--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DAFFODIL_SAX_URN_BLOBSUFFIX</h4>
+<pre>public static&nbsp;java.lang.String&nbsp;DAFFODIL_SAX_URN_BLOBSUFFIX()</pre>
+</li>
+</ul>
+<a name="getFeature-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFeature</h4>
+<pre>public&nbsp;boolean&nbsp;getFeature(java.lang.String&nbsp;name)</pre>
+<div class="block">Get the value of the feature flag</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getFeature</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - feature flag whose value is to be retrieved</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value of the feature flag</dd>
+</dl>
+</li>
+</ul>
+<a name="setFeature-java.lang.String-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFeature</h4>
+<pre>public&nbsp;void&nbsp;setFeature(java.lang.String&nbsp;name,
+                       boolean&nbsp;value)</pre>
+<div class="block">Set the value of the feature flag</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>setFeature</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - feature flag to be set</dd>
+<dd><code>value</code> - value to be assigned to feature flag</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>public&nbsp;java.lang.Object&nbsp;getProperty(java.lang.String&nbsp;name)</pre>
+<div class="block">Get the value of the property</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getProperty</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - property whose value is to be retrieved</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value of the property</dd>
+</dl>
+</li>
+</ul>
+<a name="setProperty-java.lang.String-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProperty</h4>
+<pre>public&nbsp;void&nbsp;setProperty(java.lang.String&nbsp;name,
+                        java.lang.Object&nbsp;value)</pre>
+<div class="block">Set the value of the property</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>setProperty</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - property whose value is to be set</dd>
+<dd><code>value</code> - value to be assigned to the property</dd>
+</dl>
+</li>
+</ul>
+<a name="setEntityResolver-org.xml.sax.EntityResolver-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntityResolver</h4>
+<pre>public&nbsp;void&nbsp;setEntityResolver(org.xml.sax.EntityResolver&nbsp;resolver)</pre>
+<div class="block">Register an entity resolver</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>setEntityResolver</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resolver</code> - entity resolver to be registered</dd>
+</dl>
+</li>
+</ul>
+<a name="getEntityResolver--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityResolver</h4>
+<pre>public&nbsp;org.xml.sax.EntityResolver&nbsp;getEntityResolver()</pre>
+<div class="block">Return the registered entity resolver</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getEntityResolver</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>registered entity resolver or null</dd>
+</dl>
+</li>
+</ul>
+<a name="setDTDHandler-org.xml.sax.DTDHandler-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDTDHandler</h4>
+<pre>public&nbsp;void&nbsp;setDTDHandler(org.xml.sax.DTDHandler&nbsp;handler)</pre>
+<div class="block">Register a DTD Handler</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>setDTDHandler</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - DTD Handler to be registered</dd>
+</dl>
+</li>
+</ul>
+<a name="getDTDHandler--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDTDHandler</h4>
+<pre>public&nbsp;org.xml.sax.DTDHandler&nbsp;getDTDHandler()</pre>
+<div class="block">Retrieve registered DTD Handler</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getDTDHandler</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>registered DTD Handler or null</dd>
+</dl>
+</li>
+</ul>
+<a name="setContentHandler-org.xml.sax.ContentHandler-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setContentHandler</h4>
+<pre>public&nbsp;void&nbsp;setContentHandler(org.xml.sax.ContentHandler&nbsp;handler)</pre>
+<div class="block">Register a content handler</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>setContentHandler</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - content handler to be registered</dd>
+</dl>
+</li>
+</ul>
+<a name="getContentHandler--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getContentHandler</h4>
+<pre>public&nbsp;org.xml.sax.ContentHandler&nbsp;getContentHandler()</pre>
+<div class="block">Retrieve registered content handler</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getContentHandler</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>registered content handler or null</dd>
+</dl>
+</li>
+</ul>
+<a name="setErrorHandler-org.xml.sax.ErrorHandler-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setErrorHandler</h4>
+<pre>public&nbsp;void&nbsp;setErrorHandler(org.xml.sax.ErrorHandler&nbsp;handler)</pre>
+<div class="block">Register an error handler</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>setErrorHandler</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - error handler to be registered</dd>
+</dl>
+</li>
+</ul>
+<a name="getErrorHandler--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrorHandler</h4>
+<pre>public&nbsp;org.xml.sax.ErrorHandler&nbsp;getErrorHandler()</pre>
+<div class="block">Retrieve registered error handler</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getErrorHandler</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>registered error handler or null</dd>
+</dl>
+</li>
+</ul>
+<a name="parse-org.xml.sax.InputSource-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public&nbsp;void&nbsp;parse(org.xml.sax.InputSource&nbsp;input)</pre>
+<div class="block">Parse input data from an InputSource. Infoset can be retrieved via the registered
+ contentHandler and diagnostics via the registered errorHandler</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>parse</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>input</code> - data to be parsed</dd>
+</dl>
+</li>
+</ul>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public&nbsp;void&nbsp;parse(java.lang.String&nbsp;systemId)</pre>
+<div class="block">Parse data from a system identifier/URI. This method is not supported by the API.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>parse</code>&nbsp;in interface&nbsp;<code>org.xml.sax.XMLReader</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>systemId</code> - URI for data to be parsed</dd>
+</dl>
+</li>
+</ul>
+<a name="parse-org.apache.daffodil.japi.io.InputSourceDataInputStream-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public&nbsp;void&nbsp;parse(<a href="../../../../org/apache/daffodil/japi/io/InputSourceDataInputStream.html" title="class in org.apache.daffodil.japi.io">InputSourceDataInputStream</a>&nbsp;isdis)</pre>
+<div class="block">Parse input data from an InputSourceDataInputStream. Infoset can retrieved via the registered
+ contentHandler and diagnostics via the registered errorHandler</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isdis</code> - data to be parsed</dd>
+</dl>
+</li>
+</ul>
+<a name="parse-java.io.InputStream-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public&nbsp;void&nbsp;parse(java.io.InputStream&nbsp;stream)</pre>
+<div class="block">Parse input data from an InputStream. Infoset can retrieved via the registered contentHandler
+ and diagnostics via the registered errorHandler</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>stream</code> - data to be parsed</dd>
+</dl>
+</li>
+</ul>
+<a name="parse-byte:A-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public&nbsp;void&nbsp;parse(byte[]&nbsp;arr)</pre>
+<div class="block">Parse input data from an array of bytes. Infoset can retrieved via the registered
+ contentHandler and diagnostics via the registered errorHandler</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>arr</code> - data to be parsed</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/daffodil/japi/DaffodilParseXMLReader.html" target="_top">Frames</a></li>
+<li><a href="DaffodilParseXMLReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/DaffodilUnhandledSAXException.html
similarity index 67%
copy from content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html
copy to content/docs/latest/javadoc/org/apache/daffodil/japi/DaffodilUnhandledSAXException.html
index ad6642f..e1fc096 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/DaffodilUnhandledSAXException.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>InvalidUsageException (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>DaffodilUnhandledSAXException (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="InvalidUsageException (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="DaffodilUnhandledSAXException (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -42,12 +41,12 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/InvalidParserException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/LocationInSchemaFile.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/daffodil/japi/InvalidUsageException.html" target="_top">Frames</a></li>
-<li><a href="InvalidUsageException.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../index.html?org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" target="_top">Frames</a></li>
+<li><a href="DaffodilUnhandledSAXException.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -70,7 +69,7 @@
 <li>Nested&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#methods.inherited.from.class.java.lang.Throwable">Method</a></li>
+<li><a href="#methods.inherited.from.class.org.xml.sax.SAXException">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
@@ -86,7 +85,7 @@
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.daffodil.japi</div>
-<h2 title="Class InvalidUsageException" class="title">Class InvalidUsageException</h2>
+<h2 title="Class DaffodilUnhandledSAXException" class="title">Class DaffodilUnhandledSAXException</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
@@ -99,7 +98,12 @@
 <li>java.lang.Exception</li>
 <li>
 <ul class="inheritance">
-<li>org.apache.daffodil.japi.InvalidUsageException</li>
+<li>org.xml.sax.SAXException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.daffodil.japi.DaffodilUnhandledSAXException</li>
+</ul>
+</li>
 </ul>
 </li>
 </ul>
@@ -116,12 +120,12 @@
 </dl>
 <hr>
 <br>
-<pre>public class <span class="typeNameLabel">InvalidUsageException</span>
-extends java.lang.Exception</pre>
-<div class="block">This exception will be thrown as a result of an invalid usage of the Daffodil API</div>
+<pre>public class <span class="typeNameLabel">DaffodilUnhandledSAXException</span>
+extends org.xml.sax.SAXException</pre>
+<div class="block">This exception will be thrown when an unexpected error occurs during the SAX unparse</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../serialized-form.html#org.apache.daffodil.japi.InvalidUsageException">Serialized Form</a></dd>
+<dd><a href="../../../../serialized-form.html#org.apache.daffodil.japi.DaffodilUnhandledSAXException">Serialized Form</a></dd>
 </dl>
 </li>
 </ul>
@@ -141,7 +145,7 @@ extends java.lang.Exception</pre>
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/InvalidUsageException.html#InvalidUsageException-org.apache.daffodil.processors.InvalidUsageException-">InvalidUsageException</a></span>(org.apache.daffodil.processors.InvalidUsageException&nbsp;cause)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnhandledSAXException.html#DaffodilUnhandledSAXException-org.apache.daffodil.api.DFDL.DaffodilUnhandledSAXException-">DaffodilUnhandledSAXException</a></span>(org.apache.daffodil.api.DFDL.DaffodilUnhandledSAXException&nbsp;exception)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -153,11 +157,18 @@ extends java.lang.Exception</pre>
 </a>
 <h3>Method Summary</h3>
 <ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.xml.sax.SAXException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.xml.sax.SAXException</h3>
+<code>getCause, getException, getMessage, toString</code></li>
+</ul>
+<ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
-<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+<code>addSuppressed, fillInStackTrace, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -180,13 +191,13 @@ extends java.lang.Exception</pre>
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="InvalidUsageException-org.apache.daffodil.processors.InvalidUsageException-">
+<a name="DaffodilUnhandledSAXException-org.apache.daffodil.api.DFDL.DaffodilUnhandledSAXException-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>InvalidUsageException</h4>
-<pre>public&nbsp;InvalidUsageException(org.apache.daffodil.processors.InvalidUsageException&nbsp;cause)</pre>
+<h4>DaffodilUnhandledSAXException</h4>
+<pre>public&nbsp;DaffodilUnhandledSAXException(org.apache.daffodil.api.DFDL.DaffodilUnhandledSAXException&nbsp;exception)</pre>
 </li>
 </ul>
 </li>
@@ -216,12 +227,12 @@ extends java.lang.Exception</pre>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/InvalidParserException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/LocationInSchemaFile.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/daffodil/japi/InvalidUsageException.html" target="_top">Frames</a></li>
-<li><a href="InvalidUsageException.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../index.html?org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" target="_top">Frames</a></li>
+<li><a href="DaffodilUnhandledSAXException.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -244,7 +255,7 @@ extends java.lang.Exception</pre>
 <li>Nested&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#methods.inherited.from.class.java.lang.Throwable">Method</a></li>
+<li><a href="#methods.inherited.from.class.org.xml.sax.SAXException">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/DaffodilUnparseContentHandler.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/DaffodilUnparseContentHandler.html
new file mode 100644
index 0000000..0b53c0d
--- /dev/null
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/DaffodilUnparseContentHandler.html
@@ -0,0 +1,491 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>DaffodilUnparseContentHandler (Apache Daffodil (incubating) 3.0.0 Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DaffodilUnparseContentHandler (Apache Daffodil (incubating) 3.0.0 Java API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" target="_top">Frames</a></li>
+<li><a href="DaffodilUnparseContentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.daffodil.japi</div>
+<h2 title="Class DaffodilUnparseContentHandler" class="title">Class DaffodilUnparseContentHandler</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.daffodil.japi.DaffodilUnparseContentHandler</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>org.xml.sax.ContentHandler</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DaffodilUnparseContentHandler</span>
+extends java.lang.Object
+implements org.xml.sax.ContentHandler</pre>
+<div class="block">Accepts SAX callback events from any SAX XMLReader for unparsing</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#DaffodilUnparseContentHandler-org.apache.daffodil.processors.DaffodilUnparseContentHandler-">DaffodilUnparseContentHandler</a></span>(org.apache.daffodil.processors.DaffodilUnparseContentHandler&nbsp;sContentHandler)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#characters-char:A-int-int-">characters</a></span>(char[]&nbsp;ch,
+          int&nbsp;start,
+          int&nbsp;length)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#endDocument--">endDocument</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#endElement-java.lang.String-java.lang.String-java.lang.String-">endElement</a></span>(java.lang.String&nbsp;uri,
+          java.lang.String&nbsp;localName,
+          java.lang.String&nbsp;qName)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#endPrefixMapping-java.lang.String-">endPrefixMapping</a></span>(java.lang.String&nbsp;prefix)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi">UnparseResult</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#getUnparseResult--">getUnparseResult</a></span>()</code>
+<div class="block">Returns the result of the SAX unparse containing diagnostic information.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#ignorableWhitespace-char:A-int-int-">ignorableWhitespace</a></span>(char[]&nbsp;ch,
+                   int&nbsp;start,
+                   int&nbsp;length)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#processingInstruction-java.lang.String-java.lang.String-">processingInstruction</a></span>(java.lang.String&nbsp;target,
+                     java.lang.String&nbsp;data)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#setDocumentLocator-org.xml.sax.Locator-">setDocumentLocator</a></span>(org.xml.sax.Locator&nbsp;locator)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#skippedEntity-java.lang.String-">skippedEntity</a></span>(java.lang.String&nbsp;name)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#startDocument--">startDocument</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">startElement</a></span>(java.lang.String&nbsp;uri,
+            java.lang.String&nbsp;localName,
+            java.lang.String&nbsp;qName,
+            org.xml.sax.Attributes&nbsp;atts)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#startPrefixMapping-java.lang.String-java.lang.String-">startPrefixMapping</a></span>(java.lang.String&nbsp;prefix,
+                  java.lang.String&nbsp;uri)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DaffodilUnparseContentHandler-org.apache.daffodil.processors.DaffodilUnparseContentHandler-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DaffodilUnparseContentHandler</h4>
+<pre>public&nbsp;DaffodilUnparseContentHandler(org.apache.daffodil.processors.DaffodilUnparseContentHandler&nbsp;sContentHandler)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="characters-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>characters</h4>
+<pre>public&nbsp;void&nbsp;characters(char[]&nbsp;ch,
+                       int&nbsp;start,
+                       int&nbsp;length)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>characters</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
+</dl>
+</li>
+</ul>
+<a name="endDocument--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endDocument</h4>
+<pre>public&nbsp;void&nbsp;endDocument()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>endDocument</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
+</dl>
+</li>
+</ul>
+<a name="endElement-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endElement</h4>
+<pre>public&nbsp;void&nbsp;endElement(java.lang.String&nbsp;uri,
+                       java.lang.String&nbsp;localName,
+                       java.lang.String&nbsp;qName)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>endElement</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
+</dl>
+</li>
+</ul>
+<a name="endPrefixMapping-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endPrefixMapping</h4>
+<pre>public&nbsp;void&nbsp;endPrefixMapping(java.lang.String&nbsp;prefix)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>endPrefixMapping</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
+</dl>
+</li>
+</ul>
+<a name="getUnparseResult--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUnparseResult</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi">UnparseResult</a>&nbsp;getUnparseResult()</pre>
+<div class="block">Returns the result of the SAX unparse containing diagnostic information. In the case of an
+ DaffodilUnhandledSAXException, this will return null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>(undocumented)</dd>
+</dl>
+</li>
+</ul>
+<a name="ignorableWhitespace-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ignorableWhitespace</h4>
+<pre>public&nbsp;void&nbsp;ignorableWhitespace(char[]&nbsp;ch,
+                                int&nbsp;start,
+                                int&nbsp;length)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>ignorableWhitespace</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
+</dl>
+</li>
+</ul>
+<a name="processingInstruction-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>processingInstruction</h4>
+<pre>public&nbsp;void&nbsp;processingInstruction(java.lang.String&nbsp;target,
+                                  java.lang.String&nbsp;data)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>processingInstruction</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
+</dl>
+</li>
+</ul>
+<a name="setDocumentLocator-org.xml.sax.Locator-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDocumentLocator</h4>
+<pre>public&nbsp;void&nbsp;setDocumentLocator(org.xml.sax.Locator&nbsp;locator)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>setDocumentLocator</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
+</dl>
+</li>
+</ul>
+<a name="skippedEntity-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>skippedEntity</h4>
+<pre>public&nbsp;void&nbsp;skippedEntity(java.lang.String&nbsp;name)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>skippedEntity</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
+</dl>
+</li>
+</ul>
+<a name="startDocument--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>startDocument</h4>
+<pre>public&nbsp;void&nbsp;startDocument()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>startDocument</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
+</dl>
+</li>
+</ul>
+<a name="startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>startElement</h4>
+<pre>public&nbsp;void&nbsp;startElement(java.lang.String&nbsp;uri,
+                         java.lang.String&nbsp;localName,
+                         java.lang.String&nbsp;qName,
+                         org.xml.sax.Attributes&nbsp;atts)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>startElement</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
+</dl>
+</li>
+</ul>
+<a name="startPrefixMapping-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>startPrefixMapping</h4>
+<pre>public&nbsp;void&nbsp;startPrefixMapping(java.lang.String&nbsp;prefix,
+                               java.lang.String&nbsp;uri)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>startPrefixMapping</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" target="_top">Frames</a></li>
+<li><a href="DaffodilUnparseContentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html
similarity index 66%
copy from content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html
copy to content/docs/latest/javadoc/org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html
index ad6642f..0c8b402 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>InvalidUsageException (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>DaffodilUnparseErrorSAXException (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="InvalidUsageException (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="DaffodilUnparseErrorSAXException (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -42,12 +41,12 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/InvalidParserException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/LocationInSchemaFile.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DataLocation.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/daffodil/japi/InvalidUsageException.html" target="_top">Frames</a></li>
-<li><a href="InvalidUsageException.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../index.html?org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" target="_top">Frames</a></li>
+<li><a href="DaffodilUnparseErrorSAXException.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -70,7 +69,7 @@
 <li>Nested&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#methods.inherited.from.class.java.lang.Throwable">Method</a></li>
+<li><a href="#methods.inherited.from.class.org.xml.sax.SAXException">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
@@ -86,7 +85,7 @@
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.daffodil.japi</div>
-<h2 title="Class InvalidUsageException" class="title">Class InvalidUsageException</h2>
+<h2 title="Class DaffodilUnparseErrorSAXException" class="title">Class DaffodilUnparseErrorSAXException</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
@@ -99,7 +98,12 @@
 <li>java.lang.Exception</li>
 <li>
 <ul class="inheritance">
-<li>org.apache.daffodil.japi.InvalidUsageException</li>
+<li>org.xml.sax.SAXException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.daffodil.japi.DaffodilUnparseErrorSAXException</li>
+</ul>
+</li>
 </ul>
 </li>
 </ul>
@@ -116,12 +120,12 @@
 </dl>
 <hr>
 <br>
-<pre>public class <span class="typeNameLabel">InvalidUsageException</span>
-extends java.lang.Exception</pre>
-<div class="block">This exception will be thrown as a result of an invalid usage of the Daffodil API</div>
+<pre>public class <span class="typeNameLabel">DaffodilUnparseErrorSAXException</span>
+extends org.xml.sax.SAXException</pre>
+<div class="block">This exception will be thrown when unparseResult.isError returns true during a SAX Unparse</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../serialized-form.html#org.apache.daffodil.japi.InvalidUsageException">Serialized Form</a></dd>
+<dd><a href="../../../../serialized-form.html#org.apache.daffodil.japi.DaffodilUnparseErrorSAXException">Serialized Form</a></dd>
 </dl>
 </li>
 </ul>
@@ -141,7 +145,7 @@ extends java.lang.Exception</pre>
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/InvalidUsageException.html#InvalidUsageException-org.apache.daffodil.processors.InvalidUsageException-">InvalidUsageException</a></span>(org.apache.daffodil.processors.InvalidUsageException&nbsp;cause)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html#DaffodilUnparseErrorSAXException-org.apache.daffodil.api.DFDL.DaffodilUnparseErrorSAXException-">DaffodilUnparseErrorSAXException</a></span>(org.apache.daffodil.api.DFDL.DaffodilUnparseErrorSAXException&nbsp;exception)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -153,11 +157,18 @@ extends java.lang.Exception</pre>
 </a>
 <h3>Method Summary</h3>
 <ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.xml.sax.SAXException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.xml.sax.SAXException</h3>
+<code>getCause, getException, getMessage, toString</code></li>
+</ul>
+<ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
-<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+<code>addSuppressed, fillInStackTrace, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -180,13 +191,13 @@ extends java.lang.Exception</pre>
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="InvalidUsageException-org.apache.daffodil.processors.InvalidUsageException-">
+<a name="DaffodilUnparseErrorSAXException-org.apache.daffodil.api.DFDL.DaffodilUnparseErrorSAXException-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>InvalidUsageException</h4>
-<pre>public&nbsp;InvalidUsageException(org.apache.daffodil.processors.InvalidUsageException&nbsp;cause)</pre>
+<h4>DaffodilUnparseErrorSAXException</h4>
+<pre>public&nbsp;DaffodilUnparseErrorSAXException(org.apache.daffodil.api.DFDL.DaffodilUnparseErrorSAXException&nbsp;exception)</pre>
 </li>
 </ul>
 </li>
@@ -216,12 +227,12 @@ extends java.lang.Exception</pre>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/InvalidParserException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/LocationInSchemaFile.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DataLocation.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/daffodil/japi/InvalidUsageException.html" target="_top">Frames</a></li>
-<li><a href="InvalidUsageException.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../index.html?org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" target="_top">Frames</a></li>
+<li><a href="DaffodilUnparseErrorSAXException.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -244,7 +255,7 @@ extends java.lang.Exception</pre>
 <li>Nested&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#methods.inherited.from.class.java.lang.Throwable">Method</a></li>
+<li><a href="#methods.inherited.from.class.org.xml.sax.SAXException">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/DataLocation.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/DataLocation.html
index 947d623..f2d5017 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/DataLocation.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/DataLocation.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>DataLocation (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>DataLocation (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DataLocation (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="DataLocation (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -48,7 +47,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -292,7 +291,7 @@ extends java.lang.Object</pre>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/DataProcessor.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/DataProcessor.html
index a64236e..93e890f 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/DataProcessor.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/DataProcessor.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>DataProcessor (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>DataProcessor (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,13 +11,13 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DataProcessor (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="DataProcessor (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":42,"i2":42,"i3":42,"i4":42,"i5":10,"i6":42,"i7":42,"i8":42,"i9":42,"i10":42,"i11":10,"i12":42,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":42,"i4":42,"i5":42,"i6":42,"i7":10,"i8":42,"i9":42,"i10":42,"i11":42,"i12":42,"i13":10,"i14":42,"i15":10,"i16":10,"i17":10,"i18":10,"i19":42,"i20":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -161,13 +160,25 @@ implements scala.Serializable</pre>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#newContentHandlerInstance-java.nio.channels.WritableByteChannel-">newContentHandlerInstance</a></span>(java.nio.channels.WritableByteChannel&nbsp;output)</code>
+<div class="block">Obtain a new <a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><code>DaffodilUnparseContentHandler</code></a> from the current <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#newXMLReaderInstance--">newXMLReaderInstance</a></span>()</code>
+<div class="block">Obtain a new <a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><code>DaffodilParseXMLReader</code></a> from the current <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi">ParseResult</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#parse-org.apache.daffodil.japi.io.InputSourceDataInputStream-org.apache.daffodil.japi.infoset.InfosetOutputter-">parse</a></span>(<a href="../../../../org/apache/daffodil/japi/io/InputSourceDataInputStream.html" title="class in org.apache.daffodil.japi.io">InputSourceDataInputStream</a>&nbsp;input,
      <a href="../../../../org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputter</a>&nbsp;output)</code>
 <div class="block">Parse input data from an InputSourceDataInputStream and output the infoset to an InfosetOutputter</div>
 </td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi">ParseResult</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#parse-java.nio.channels.ReadableByteChannel-">parse</a></span>(java.nio.channels.ReadableByteChannel&nbsp;input)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -175,7 +186,7 @@ implements scala.Serializable</pre>
 </div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi">ParseResult</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#parse-java.nio.channels.ReadableByteChannel-org.apache.daffodil.japi.infoset.InfosetOutputter-">parse</a></span>(java.nio.channels.ReadableByteChannel&nbsp;input,
      <a href="../../../../org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputter</a>&nbsp;output)</code>
@@ -184,7 +195,7 @@ implements scala.Serializable</pre>
 </div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi">ParseResult</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#parse-java.nio.channels.ReadableByteChannel-org.apache.daffodil.japi.infoset.InfosetOutputter-long-">parse</a></span>(java.nio.channels.ReadableByteChannel&nbsp;input,
      <a href="../../../../org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset">InfosetOutputter</a>&nbsp;output,
@@ -194,7 +205,7 @@ implements scala.Serializable</pre>
 </div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi">ParseResult</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#parse-java.nio.channels.ReadableByteChannel-long-">parse</a></span>(java.nio.channels.ReadableByteChannel&nbsp;input,
      long&nbsp;lengthLimitInBits)</code>
@@ -203,13 +214,13 @@ implements scala.Serializable</pre>
 </div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#save-java.nio.channels.WritableByteChannel-">save</a></span>(java.nio.channels.WritableByteChannel&nbsp;output)</code>
 <div class="block">Save the DataProcessor</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#setDebugger-org.apache.daffodil.japi.debugger.DebuggerRunner-">setDebugger</a></span>(<a href="../../../../org/apache/daffodil/japi/debugger/DebuggerRunner.html" title="class in org.apache.daffodil.japi.debugger">DebuggerRunner</a>&nbsp;dr)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -217,7 +228,7 @@ implements scala.Serializable</pre>
 </div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#setDebugging-boolean-">setDebugging</a></span>(boolean&nbsp;flag)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -225,7 +236,7 @@ implements scala.Serializable</pre>
 </div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#setExternalVariables-java.io.File-">setExternalVariables</a></span>(java.io.File&nbsp;extVars)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -233,7 +244,7 @@ implements scala.Serializable</pre>
 </div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#setExternalVariables-scala.collection.immutable.Map-">setExternalVariables</a></span>(scala.collection.immutable.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;extVars)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -241,7 +252,7 @@ implements scala.Serializable</pre>
 </div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#setValidationMode-org.apache.daffodil.japi.ValidationMode-">setValidationMode</a></span>(<a href="../../../../org/apache/daffodil/japi/ValidationMode.html" title="enum in org.apache.daffodil.japi">ValidationMode</a>&nbsp;mode)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -249,14 +260,14 @@ implements scala.Serializable</pre>
 </div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi">UnparseResult</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#unparse-org.apache.daffodil.japi.infoset.InfosetInputter-java.nio.channels.WritableByteChannel-">unparse</a></span>(<a href="../../../../org/apache/daffodil/japi/infoset/InfosetInputter.html" title="class in org.apache.daffodil.japi.infoset">InfosetInputter</a>&nbsp;input,
        java.nio.channels.WritableByteChannel&nbsp;output)</code>
 <div class="block">Unparse an InfosetInputter</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi">UnparseResult</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#unparse-java.nio.channels.WritableByteChannel-org.jdom2.Document-">unparse</a></span>(java.nio.channels.WritableByteChannel&nbsp;output,
        org.jdom2.Document&nbsp;infoset)</code>
@@ -265,31 +276,39 @@ implements scala.Serializable</pre>
 </div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#withDebugger-org.apache.daffodil.japi.debugger.DebuggerRunner-">withDebugger</a></span>(<a href="../../../../org/apache/daffodil/japi/debugger/DebuggerRunner.html" title="class in org.apache.daffodil.japi.debugger">DebuggerRunner</a>&nbsp;dr)</code>
 <div class="block">Obtain a new <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> with a specified debugger runner.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#withDebugging-boolean-">withDebugging</a></span>(boolean&nbsp;flag)</code>
 <div class="block">Obtain a new <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> instance with debugging enabled or disabled.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#withExternalVariables-java.util.AbstractMap-">withExternalVariables</a></span>(java.util.AbstractMap&lt;java.lang.String,java.lang.String&gt;&nbsp;extVars)</code>
+<div class="block">Obtain a new <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> with multiple DFDL variables set.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#withExternalVariables-java.io.File-">withExternalVariables</a></span>(java.io.File&nbsp;extVars)</code>
 <div class="block">Obtain a new <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> with external variables read from a Daffodil configuration file</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#withExternalVariables-scala.collection.immutable.Map-">withExternalVariables</a></span>(scala.collection.immutable.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;extVars)</code>
-<div class="block">Obtain a new <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> with multiple DFDL variables set.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use withExternalVariables that accepts a Java AbstractMap. Since 3.0.</span></div>
+</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataProcessor.html#withValidationMode-org.apache.daffodil.japi.ValidationMode-">withValidationMode</a></span>(<a href="../../../../org/apache/daffodil/japi/ValidationMode.html" title="enum in org.apache.daffodil.japi">ValidationMode</a>&nbsp;mode)</code>
 <div class="block">Obtain a new <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> having a specific validation mode</div>
@@ -341,6 +360,36 @@ implements scala.Serializable</pre>
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="newContentHandlerInstance-java.nio.channels.WritableByteChannel-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newContentHandlerInstance</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a>&nbsp;newContentHandlerInstance(java.nio.channels.WritableByteChannel&nbsp;output)</pre>
+<div class="block">Obtain a new <a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><code>DaffodilUnparseContentHandler</code></a> from the current <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>output</code> - (undocumented)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>(undocumented)</dd>
+</dl>
+</li>
+</ul>
+<a name="newXMLReaderInstance--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newXMLReaderInstance</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a>&nbsp;newXMLReaderInstance()</pre>
+<div class="block">Obtain a new <a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><code>DaffodilParseXMLReader</code></a> from the current <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>(undocumented)</dd>
+</dl>
+</li>
+</ul>
 <a name="parse-java.nio.channels.ReadableByteChannel-long-">
 <!--   -->
 </a>
@@ -655,6 +704,29 @@ implements scala.Serializable</pre>
 <li class="blockList">
 <h4>withExternalVariables</h4>
 <pre>public&nbsp;<a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a>&nbsp;withExternalVariables(scala.collection.immutable.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;extVars)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use withExternalVariables that accepts a Java AbstractMap. Since 3.0.</span></div>
+<div class="block">Obtain a new <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> with multiple DFDL variables set.
+ <p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>extVars</code> - a map of key/value pairs, where the key is the variable
+                name, and the value is the value of the variable. The key
+                may be preceded by a string of the form "{namespace}" to
+                define a namespace for the variable. If preceded with "{}",
+                then no namespace is used. If not preceded by anything,
+                then Daffodil will figure out the namespace.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>(undocumented)</dd>
+</dl>
+</li>
+</ul>
+<a name="withExternalVariables-java.util.AbstractMap-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withExternalVariables</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a>&nbsp;withExternalVariables(java.util.AbstractMap&lt;java.lang.String,java.lang.String&gt;&nbsp;extVars)</pre>
 <div class="block">Obtain a new <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> with multiple DFDL variables set.
  <p></div>
 <dl>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/Diagnostic.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/Diagnostic.html
index e51b36a..f44f663 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/Diagnostic.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/Diagnostic.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>Diagnostic (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>Diagnostic (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Diagnostic (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="Diagnostic (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidParserException.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidParserException.html
index de1455d..ed229e3 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidParserException.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidParserException.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>InvalidParserException (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>InvalidParserException (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="InvalidParserException (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="InvalidParserException (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html
index ad6642f..9a82f9d 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>InvalidUsageException (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>InvalidUsageException (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="InvalidUsageException (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="InvalidUsageException (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/LocationInSchemaFile.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/LocationInSchemaFile.html
index 2cc76ae..3bcd82b 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/LocationInSchemaFile.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/LocationInSchemaFile.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>LocationInSchemaFile (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>LocationInSchemaFile (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="LocationInSchemaFile (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="LocationInSchemaFile (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/ParseResult.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/ParseResult.html
index a4907ef..acfdc99 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/ParseResult.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/ParseResult.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>ParseResult (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>ParseResult (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ParseResult (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="ParseResult (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/LocationInSchemaFile.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html
similarity index 71%
copy from content/docs/latest/javadoc/org/apache/daffodil/japi/LocationInSchemaFile.html
copy to content/docs/latest/javadoc/org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html
index 2cc76ae..ef22156 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/LocationInSchemaFile.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>LocationInSchemaFile (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>ProcessorFactory.ExperimentalWrapper (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="LocationInSchemaFile (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="ProcessorFactory.ExperimentalWrapper (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -48,12 +47,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/InvalidUsageException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/daffodil/japi/LocationInSchemaFile.html" target="_top">Frames</a></li>
-<li><a href="LocationInSchemaFile.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../index.html?org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" target="_top">Frames</a></li>
+<li><a href="ProcessorFactory.ExperimentalWrapper.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -92,25 +91,28 @@ var activeTableTab = "activeTableTab";
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.daffodil.japi</div>
-<h2 title="Class LocationInSchemaFile" class="title">Class LocationInSchemaFile</h2>
+<h2 title="Class ProcessorFactory.ExperimentalWrapper" class="title">Class ProcessorFactory.ExperimentalWrapper</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
 <li>java.lang.Object</li>
 <li>
 <ul class="inheritance">
-<li>org.apache.daffodil.japi.LocationInSchemaFile</li>
+<li>org.apache.daffodil.japi.ProcessorFactory.ExperimentalWrapper</li>
 </ul>
 </li>
 </ul>
 <div class="description">
 <ul class="blockList">
 <li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi">ProcessorFactory</a></dd>
+</dl>
 <hr>
 <br>
-<pre>public class <span class="typeNameLabel">LocationInSchemaFile</span>
+<pre>public class <span class="typeNameLabel">ProcessorFactory.ExperimentalWrapper</span>
 extends java.lang.Object</pre>
-<div class="block">Information related to locations in DFDL schema files</div>
 </li>
 </ul>
 </div>
@@ -129,7 +131,7 @@ extends java.lang.Object</pre>
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/LocationInSchemaFile.html#LocationInSchemaFile-org.apache.daffodil.api.LocationInSchemaFile-">LocationInSchemaFile</a></span>(org.apache.daffodil.api.LocationInSchemaFile&nbsp;lsf)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html#ExperimentalWrapper-org.apache.daffodil.dsom.walker.RootView-">ExperimentalWrapper</a></span>(org.apache.daffodil.dsom.walker.RootView&nbsp;rootView)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -147,10 +149,8 @@ extends java.lang.Object</pre>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>java.lang.String</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/LocationInSchemaFile.html#toString--">toString</a></span>()</code>
-<div class="block">Get the description of the location file, for example, containing file and line number information</div>
-</td>
+<td class="colFirst"><code>org.apache.daffodil.dsom.walker.RootView</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html#rootView--">rootView</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -158,7 +158,7 @@ extends java.lang.Object</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.Object</h3>
-<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
 </ul>
 </li>
 </ul>
@@ -174,13 +174,13 @@ extends java.lang.Object</pre>
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="LocationInSchemaFile-org.apache.daffodil.api.LocationInSchemaFile-">
+<a name="ExperimentalWrapper-org.apache.daffodil.dsom.walker.RootView-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>LocationInSchemaFile</h4>
-<pre>public&nbsp;LocationInSchemaFile(org.apache.daffodil.api.LocationInSchemaFile&nbsp;lsf)</pre>
+<h4>ExperimentalWrapper</h4>
+<pre>public&nbsp;ExperimentalWrapper(org.apache.daffodil.dsom.walker.RootView&nbsp;rootView)</pre>
 </li>
 </ul>
 </li>
@@ -191,20 +191,13 @@ extends java.lang.Object</pre>
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="toString--">
+<a name="rootView--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>toString</h4>
-<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
-<div class="block">Get the description of the location file, for example, containing file and line number information</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>(undocumented)</dd>
-</dl>
+<h4>rootView</h4>
+<pre>public&nbsp;org.apache.daffodil.dsom.walker.RootView&nbsp;rootView()</pre>
 </li>
 </ul>
 </li>
@@ -234,12 +227,12 @@ extends java.lang.Object</pre>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/InvalidUsageException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/daffodil/japi/LocationInSchemaFile.html" target="_top">Frames</a></li>
-<li><a href="LocationInSchemaFile.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../index.html?org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" target="_top">Frames</a></li>
+<li><a href="ProcessorFactory.ExperimentalWrapper.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/ProcessorFactory.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/ProcessorFactory.html
index 20bf97f..82fdf85 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/ProcessorFactory.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/ProcessorFactory.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>ProcessorFactory (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>ProcessorFactory (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,13 +11,13 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ProcessorFactory (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="ProcessorFactory (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":42,"i2":10};
+var methods = {"i0":10,"i1":10,"i2":42,"i3":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -49,7 +48,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/daffodil/japi/ProcessorFactory.html" target="_top">Frames</a></li>
@@ -73,7 +72,7 @@ var activeTableTab = "activeTableTab";
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
@@ -133,6 +132,25 @@ extends <a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html" titl
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" title="class in org.apache.daffodil.japi">ProcessorFactory.ExperimentalWrapper</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
 <ul class="blockList">
 <li class="blockList"><a name="constructor.summary">
@@ -163,12 +181,16 @@ extends <a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html" titl
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" title="class in org.apache.daffodil.japi">ProcessorFactory.ExperimentalWrapper</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html#experimental--">experimental</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi">DataProcessor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html#onPath-java.lang.String-">onPath</a></span>(java.lang.String&nbsp;path)</code>
 <div class="block">Create a <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a></div>
 </td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html#setDistinguishedRootNode-java.lang.String-java.lang.String-">setDistinguishedRootNode</a></span>(java.lang.String&nbsp;name,
                         java.lang.String&nbsp;namespace)</code>
@@ -177,7 +199,7 @@ extends <a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html" titl
 </div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi">ProcessorFactory</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html#withDistinguishedRootNode-java.lang.String-java.lang.String-">withDistinguishedRootNode</a></span>(java.lang.String&nbsp;name,
                          java.lang.String&nbsp;namespace)</code>
@@ -230,6 +252,15 @@ extends <a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html" titl
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="experimental--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>experimental</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" title="class in org.apache.daffodil.japi">ProcessorFactory.ExperimentalWrapper</a>&nbsp;experimental()</pre>
+</li>
+</ul>
 <a name="onPath-java.lang.String-">
 <!--   -->
 </a>
@@ -314,7 +345,7 @@ extends <a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html" titl
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/daffodil/japi/ProcessorFactory.html" target="_top">Frames</a></li>
@@ -338,7 +369,7 @@ extends <a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html" titl
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/UnparseResult.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/UnparseResult.html
index 43b20b4..7184724 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/UnparseResult.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/UnparseResult.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>UnparseResult (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>UnparseResult (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="UnparseResult (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="UnparseResult (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -42,7 +41,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/daffodil/japi/ValidationMode.html" title="enum in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -212,7 +211,7 @@ extends <a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html" titl
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/daffodil/japi/ValidationMode.html" title="enum in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/ValidationMode.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/ValidationMode.html
index e29d5de..385bf08 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/ValidationMode.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/ValidationMode.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>ValidationMode (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>ValidationMode (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ValidationMode (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="ValidationMode (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/WithDiagnostics.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/WithDiagnostics.html
index acfcc42..9730528 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/WithDiagnostics.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/WithDiagnostics.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>WithDiagnostics (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>WithDiagnostics (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="WithDiagnostics (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="WithDiagnostics (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/DebuggerRunner.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/DebuggerRunner.html
index 0bb38d5..cc05cc1 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/DebuggerRunner.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/DebuggerRunner.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>DebuggerRunner (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>DebuggerRunner (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DebuggerRunner (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="DebuggerRunner (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/TraceDebuggerRunner.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/TraceDebuggerRunner.html
index 490a1e4..1edd5a3 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/TraceDebuggerRunner.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/TraceDebuggerRunner.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>TraceDebuggerRunner (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>TraceDebuggerRunner (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TraceDebuggerRunner (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="TraceDebuggerRunner (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/package-frame.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/package-frame.html
index 8dd2920..19bf80b 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/package-frame.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/package-frame.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.debugger (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi.debugger (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/package-summary.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/package-summary.html
index 02a8522..404e5e3 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/package-summary.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/package-summary.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.debugger (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi.debugger (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi.debugger (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.japi.debugger (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/package-tree.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/package-tree.html
index a75b600..1fc56d4 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/package-tree.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/debugger/package-tree.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.debugger Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi.debugger Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi.debugger Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.japi.debugger Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetInputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetInputter.html
index 3a6182e..1a63f91 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetInputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetInputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>InfosetInputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>InfosetInputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="InfosetInputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="InfosetInputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetInputterProxy.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetInputterProxy.html
index 29d2dc8..a6817d0 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetInputterProxy.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetInputterProxy.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>InfosetInputterProxy (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>InfosetInputterProxy (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="InfosetInputterProxy (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="InfosetInputterProxy (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetOutputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetOutputter.html
index fc8f429..c7ff971 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetOutputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetOutputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>InfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>InfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="InfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="InfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html
index 6069c25..96ab4bd 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/InfosetOutputterProxy.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>InfosetOutputterProxy (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>InfosetOutputterProxy (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="InfosetOutputterProxy (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="InfosetOutputterProxy (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JDOMInfosetInputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JDOMInfosetInputter.html
index 39b61b2..4994a23 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JDOMInfosetInputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JDOMInfosetInputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>JDOMInfosetInputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>JDOMInfosetInputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="JDOMInfosetInputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="JDOMInfosetInputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JDOMInfosetOutputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JDOMInfosetOutputter.html
index 56dd705..4d697e7 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JDOMInfosetOutputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JDOMInfosetOutputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>JDOMInfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>JDOMInfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="JDOMInfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="JDOMInfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JsonInfosetInputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JsonInfosetInputter.html
index eaf8ae8..a7f3161 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JsonInfosetInputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JsonInfosetInputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>JsonInfosetInputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>JsonInfosetInputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="JsonInfosetInputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="JsonInfosetInputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JsonInfosetOutputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JsonInfosetOutputter.html
index a58b9e4..dc286b1 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JsonInfosetOutputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/JsonInfosetOutputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>JsonInfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>JsonInfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="JsonInfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="JsonInfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/NullInfosetOutputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/NullInfosetOutputter.html
index ccfb86f..519a25d 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/NullInfosetOutputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/NullInfosetOutputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>NullInfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>NullInfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="NullInfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="NullInfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/ScalaXMLInfosetInputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/ScalaXMLInfosetInputter.html
index 185c361..48ca3db 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/ScalaXMLInfosetInputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/ScalaXMLInfosetInputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>ScalaXMLInfosetInputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>ScalaXMLInfosetInputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ScalaXMLInfosetInputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="ScalaXMLInfosetInputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/ScalaXMLInfosetOutputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/ScalaXMLInfosetOutputter.html
index 2c2a108..d43f383 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/ScalaXMLInfosetOutputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/ScalaXMLInfosetOutputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>ScalaXMLInfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>ScalaXMLInfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ScalaXMLInfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="ScalaXMLInfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/W3CDOMInfosetInputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/W3CDOMInfosetInputter.html
index e8b0bab..5c05e36 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/W3CDOMInfosetInputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/W3CDOMInfosetInputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>W3CDOMInfosetInputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>W3CDOMInfosetInputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="W3CDOMInfosetInputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="W3CDOMInfosetInputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/W3CDOMInfosetOutputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/W3CDOMInfosetOutputter.html
index f5a8509..d4bf3e9 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/W3CDOMInfosetOutputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/W3CDOMInfosetOutputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>W3CDOMInfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>W3CDOMInfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="W3CDOMInfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="W3CDOMInfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/XMLTextInfosetInputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/XMLTextInfosetInputter.html
index 77536b4..df3267b 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/XMLTextInfosetInputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/XMLTextInfosetInputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>XMLTextInfosetInputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>XMLTextInfosetInputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="XMLTextInfosetInputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="XMLTextInfosetInputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/XMLTextInfosetOutputter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/XMLTextInfosetOutputter.html
index 4c4dab0..b88bd3a 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/XMLTextInfosetOutputter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/XMLTextInfosetOutputter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>XMLTextInfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>XMLTextInfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="XMLTextInfosetOutputter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="XMLTextInfosetOutputter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/package-frame.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/package-frame.html
index 43d44d8..51d4a1f 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/package-frame.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/package-frame.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.infoset (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi.infoset (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/package-summary.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/package-summary.html
index c707074..93ec79c 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/package-summary.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/package-summary.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.infoset (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi.infoset (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi.infoset (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.japi.infoset (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/package-tree.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/package-tree.html
index ec638ae..886dca2 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/package-tree.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/infoset/package-tree.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.infoset Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi.infoset Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi.infoset Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.japi.infoset Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/InputSourceDataInputStream.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/io/InputSourceDataInputStream.html
index 7e43258..396ad31 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/InputSourceDataInputStream.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/io/InputSourceDataInputStream.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>InputSourceDataInputStream (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>InputSourceDataInputStream (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="InputSourceDataInputStream (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="InputSourceDataInputStream (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-frame.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-frame.html
index 3289af9..b6c0e19 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-frame.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-frame.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.io (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi.io (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-summary.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-summary.html
index d840f45..8393de9 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-summary.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-summary.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.io (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi.io (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi.io (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.japi.io (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-tree.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-tree.html
index 6c43bef..1e7077a 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-tree.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-tree.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.io Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi.io Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi.io Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.japi.io Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/ConsoleLogWriter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/ConsoleLogWriter.html
index 69e4558..3207f1c 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/ConsoleLogWriter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/ConsoleLogWriter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>ConsoleLogWriter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>ConsoleLogWriter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ConsoleLogWriter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="ConsoleLogWriter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/FileLogWriter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/FileLogWriter.html
index d08316d..597a61c 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/FileLogWriter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/FileLogWriter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>FileLogWriter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>FileLogWriter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="FileLogWriter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="FileLogWriter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/LogLevel.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/LogLevel.html
index d7f4945..b36eb3a 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/LogLevel.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/LogLevel.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>LogLevel (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>LogLevel (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="LogLevel (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="LogLevel (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/LogWriter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/LogWriter.html
index 578cfbd..8589683 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/LogWriter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/LogWriter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>LogWriter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>LogWriter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="LogWriter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="LogWriter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/NullLogWriter.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/NullLogWriter.html
index ed00121..aa62243 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/NullLogWriter.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/NullLogWriter.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>NullLogWriter (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>NullLogWriter (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="NullLogWriter (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="NullLogWriter (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/package-frame.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/package-frame.html
index ba3ac05..83d2d16 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/package-frame.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/package-frame.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.logger (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi.logger (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/package-summary.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/package-summary.html
index 0e5618e..3203f58 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/package-summary.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/package-summary.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.logger (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi.logger (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi.logger (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.japi.logger (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -43,7 +42,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/daffodil/japi/io/package-summary.html">Prev&nbsp;Package</a></li>
-<li>Next&nbsp;Package</li>
+<li><a href="../../../../../org/apache/daffodil/udf/package-summary.html">Next&nbsp;Package</a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/daffodil/japi/logger/package-summary.html" target="_top">Frames</a></li>
@@ -181,7 +180,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/daffodil/japi/io/package-summary.html">Prev&nbsp;Package</a></li>
-<li>Next&nbsp;Package</li>
+<li><a href="../../../../../org/apache/daffodil/udf/package-summary.html">Next&nbsp;Package</a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/daffodil/japi/logger/package-summary.html" target="_top">Frames</a></li>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/package-tree.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/package-tree.html
index 4dc6d98..c58a973 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/package-tree.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/logger/package-tree.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.logger Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi.logger Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi.logger Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.japi.logger Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -43,7 +42,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/daffodil/japi/io/package-tree.html">Prev</a></li>
-<li>Next</li>
+<li><a href="../../../../../org/apache/daffodil/udf/package-tree.html">Next</a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/daffodil/japi/logger/package-tree.html" target="_top">Frames</a></li>
@@ -124,7 +123,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/daffodil/japi/io/package-tree.html">Prev</a></li>
-<li>Next</li>
+<li><a href="../../../../../org/apache/daffodil/udf/package-tree.html">Next</a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/daffodil/japi/logger/package-tree.html" target="_top">Frames</a></li>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/package-frame.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/package-frame.html
index 6abdc88..68269af 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/package-frame.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/package-frame.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -15,6 +14,8 @@
 <ul title="Classes">
 <li><a href="Compiler.html" title="class in org.apache.daffodil.japi" target="classFrame">Compiler</a></li>
 <li><a href="Daffodil.html" title="class in org.apache.daffodil.japi" target="classFrame">Daffodil</a></li>
+<li><a href="DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi" target="classFrame">DaffodilParseXMLReader</a></li>
+<li><a href="DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi" target="classFrame">DaffodilUnparseContentHandler</a></li>
 <li><a href="DataLocation.html" title="class in org.apache.daffodil.japi" target="classFrame">DataLocation</a></li>
 <li><a href="DataProcessor.html" title="class in org.apache.daffodil.japi" target="classFrame">DataProcessor</a></li>
 <li><a href="Diagnostic.html" title="class in org.apache.daffodil.japi" target="classFrame">Diagnostic</a></li>
@@ -30,6 +31,8 @@
 </ul>
 <h2 title="Exceptions">Exceptions</h2>
 <ul title="Exceptions">
+<li><a href="DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi" target="classFrame">DaffodilUnhandledSAXException</a></li>
+<li><a href="DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi" target="classFrame">DaffodilUnparseErrorSAXException</a></li>
 <li><a href="InvalidParserException.html" title="class in org.apache.daffodil.japi" target="classFrame">InvalidParserException</a></li>
 <li><a href="InvalidUsageException.html" title="class in org.apache.daffodil.japi" target="classFrame">InvalidUsageException</a></li>
 </ul>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/package-summary.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/package-summary.html
index 8c315f6..10945e5 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/package-summary.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/package-summary.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.japi (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -100,6 +99,19 @@
 </td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi">DaffodilParseXMLReader</a></td>
+<td class="colLast">
+<div class="block">SAX method of parsing schema and getting the DFDL Infoset via some
+ org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi">DaffodilUnparseContentHandler</a></td>
+<td class="colLast">
+<div class="block">Accepts SAX callback events from any SAX XMLReader for unparsing</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/daffodil/japi/DataLocation.html" title="class in org.apache.daffodil.japi">DataLocation</a></td>
 <td class="colLast">
 <div class="block">Information related to a location in data</div>
@@ -136,14 +148,14 @@
 <div class="block">Factory to create <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a>'s, used for parsing data</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi">UnparseResult</a></td>
 <td class="colLast">
 <div class="block">Result of calling <a href="../../../../org/apache/daffodil/japi/DataProcessor.html#unparse-org.apache.daffodil.japi.infoset.InfosetInputter-java.nio.channels.WritableByteChannel-"><code>DataProcessor.unparse(InfosetInputter, java.nio.channels.WritableByteChannel)</code></a>,
  containing diagnostic information</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html" title="class in org.apache.daffodil.japi">WithDiagnostics</a></td>
 <td class="colLast">
 <div class="block">Abstract class that adds diagnostic information to classes that extend it.</div>
@@ -178,6 +190,18 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi">DaffodilUnhandledSAXException</a></td>
+<td class="colLast">
+<div class="block">This exception will be thrown when an unexpected error occurs during the SAX unparse</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi">DaffodilUnparseErrorSAXException</a></td>
+<td class="colLast">
+<div class="block">This exception will be thrown when unparseResult.isError returns true during a SAX Unparse</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/daffodil/japi/InvalidParserException.html" title="class in org.apache.daffodil.japi">InvalidParserException</a></td>
 <td class="colLast">
 <div class="block">This exception will be thrown as a result of attempting to reload a saved parser
@@ -205,9 +229,10 @@
 
  <h3>Overview</h3>
 
- The <a href="../../../../org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi"><code>Daffodil</code></a> object is a factory object to create a <a href="../../../../org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi"><code>Compiler</code></a>. The
- <a href="../../../../org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi"><code>Compiler</code></a> provides a method to compils a provided DFDL schema into a
- <a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi"><code>ProcessorFactory</code></a>, which creates a <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a>:
+ The <a href="../../../../org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi"><code>Daffodil</code></a> object is a factory object to create a
+ <a href="../../../../org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi"><code>Compiler</code></a>. The <a href="../../../../org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi"><code>Compiler</code></a> provides
+ a method to compile a provided DFDL schema into a <a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi"><code>ProcessorFactory</code></a>,
+ which creates a <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a>:
 
  <pre>
  <code>
@@ -216,17 +241,87 @@
  DataProcessor dp = pf.onPath("/");
  </code></pre>
 
- The <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> provides the necessary functions to parse and unparse
- data, returning a <a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi"><code>ParseResult</code></a> or <a href="../../../../org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi"><code>UnparseResult</code></a>, respectively. These
- contain information about the parse/unparse, such as whether or not the
- processing succeeded any diagnostic information.
+ The <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> provides the necessary functions to parse and
+ unparse data, returning a <a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi"><code>ParseResult</code></a> or
+ <a href="../../../../org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi"><code>UnparseResult</code></a>, respectively. These contain information about the
+ parse/unparse, such as whether or not the processing succeeded with any diagnostic information.
+
+ The <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> also provides two functions that can be used to
+ perform parsing/unparsing via the SAX API. The first creates a
+ <a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><code>DaffodilParseXMLReader</code></a> which is used for parsing, and the
+ second creates a <a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><code>DaffodilUnparseContentHandler</code></a> which is used for
+ unparsing.
+
+ <pre>
+ <code>
+ DaffodilParseXMLReader xmlReader = dp.newXMLReaderInstance();
+ DaffodilUnparseContentHandler unparseContentHandler = dp.newContentHandlerInstance(output);
+ </code></pre>
+
+ The <a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><code>DaffodilParseXMLReader</code></a> has several methods that allow one to
+ set properties and handlers (such as ContentHandlers or ErrorHandlers) for the reader. One can
+ use any contentHandler/errorHandler as long as they extend the
+ <code>ContentHandler</code> and <code>ErrorHandler</code> interfaces
+ respectively. One can also set properties for the <a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><code>DaffodilParseXMLReader</code></a>
+ using <a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#setProperty-java.lang.String-java.lang.Object-"><code>DaffodilParseXMLReader.setProperty(java.lang.String,
+ java.lang.Object)</code></a>.
+
+ The following properties can be set as follows:
+
+ <p><i>The constants below have literal values starting with
+ "urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:" and ending with "BlobDirectory",
+ "BlobPrefix" and "BlobSuffix" respectively.</i></p>
+
+ <pre>
+ <code>
+ xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBDIRECTORY(),
+  Paths.get(System.getProperty("java.io.tmpdir"))); // value type: java.nio.file.Paths
+ xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBPREFIX(), "daffodil-sax-"); // value type String
+ xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBSUFFIX(), ".bin"); // value type String
+ </code>
+ </pre>
+
+ The properties can be retrieved using the same variables with
+ <a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#getProperty-java.lang.String-"><code>DaffodilParseXMLReader.getProperty(java.lang.String)</code></a> and casting
+ to the appropriate type as listed above.
+
+ The following handlers can be set as follows:
+ <pre>
+ <code>
+ xmlReader.setContentHandler(contentHandler);
+ xmlReader.setErrorHandler(errorHandler);
+ </code>
+ </pre>
+
+ The handlers above must implement the following interfaces respectively:
+ <pre>
+ <code>
+ org.xml.sax.ContentHandler
+ org.xml.sax.ErrorHandler
+ </code>
+ </pre>
+
+ The <a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi"><code>ParseResult</code></a> can be found as a property within the
+ <a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><code>DaffodilParseXMLReader</code></a> using this uri:
+ "urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:ParseResult" or
+ <a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#DAFFODIL_SAX_URN_PARSERESULT--"><code>DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT()</code></a>.
+
+ In order for a successful unparse to happen, the SAX API requires the
+ unparse to be kicked off by a parse call to any <code>XMLReader</code> implementation that
+ has the <a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><code>DaffodilUnparseContentHandler</code></a> registered as its content
+ handler. To retrieve the <a href="../../../../org/apache/daffodil/japi/UnparseResult.html" title="class in org.apache.daffodil.japi"><code>UnparseResult</code></a>, one can use
+ <a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#getUnparseResult--"><code>DaffodilUnparseContentHandler.getUnparseResult()</code></a> once the
+ XMLReader.parse run is complete.
 
  <h4>Parse</h4>
 
- The <a href="../../../../org/apache/daffodil/japi/DataProcessor.html#parse-org.apache.daffodil.japi.io.InputSourceDataInputStream-org.apache.daffodil.japi.infoset.InfosetOutputter-"><code>DataProcessor.parse(org.apache.daffodil.japi.io.InputSourceDataInputStream, org.apache.daffodil.japi.infoset.InfosetOutputter)</code></a> method accepts input data to parse in the form
- of a <a href="../../../../org/apache/daffodil/japi/io/InputSourceDataInputStream.html" title="class in org.apache.daffodil.japi.io"><code>InputSourceDataInputStream</code></a> and an <a href="../../../../org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset"><code>InfosetOutputter</code></a>
- to determine the output representation of the infoset (e.g. Scala XML Nodes,
- JDOM2 Documents, etc.):
+ <h5>Dataprocessor Parse</h5>
+
+ The <a href="../../../../org/apache/daffodil/japi/DataProcessor.html#parse-org.apache.daffodil.japi.io.InputSourceDataInputStream-org.apache.daffodil.japi.infoset.InfosetOutputter-"><code>DataProcessor.parse(org.apache.daffodil.japi.io.InputSourceDataInputStream,
+ org.apache.daffodil.japi.infoset.InfosetOutputter)</code></a> method accepts input data to parse in the form
+ of a <a href="../../../../org/apache/daffodil/japi/io/InputSourceDataInputStream.html" title="class in org.apache.daffodil.japi.io"><code>InputSourceDataInputStream</code></a> and an
+ <a href="../../../../org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset"><code>InfosetOutputter</code></a> to determine the output representation
+ of the infoset (e.g. Scala XML Nodes, JDOM2 Documents, etc.):
 
  <pre>
  <code>
@@ -236,11 +331,13 @@
  Document doc = jdomOutputter.getResult();
  </code></pre>
 
- The <a href="../../../../org/apache/daffodil/japi/DataProcessor.html#parse-org.apache.daffodil.japi.io.InputSourceDataInputStream-org.apache.daffodil.japi.infoset.InfosetOutputter-"><code>DataProcessor.parse(org.apache.daffodil.japi.io.InputSourceDataInputStream, org.apache.daffodil.japi.infoset.InfosetOutputter)</code></a> method is thread-safe and may be called multiple
+ The <a href="../../../../org/apache/daffodil/japi/DataProcessor.html#parse-org.apache.daffodil.japi.io.InputSourceDataInputStream-org.apache.daffodil.japi.infoset.InfosetOutputter-"><code>DataProcessor.parse(org.apache.daffodil.japi.io.InputSourceDataInputStream,
+ org.apache.daffodil.japi.infoset.InfosetOutputter)</code></a> method is thread-safe and may be called multiple
  times without the need to create other data processors. However,
- <a href="../../../../org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset"><code>InfosetOutputter</code></a>'s are not thread safe, requiring a unique instance per
- thread. An <a href="../../../../org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset"><code>InfosetOutputter</code></a> should call <a href="../../../../org/apache/daffodil/japi/infoset/InfosetOutputter.html#reset--"><code>InfosetOutputter.reset()</code></a> before
- reuse (or a new one should be allocated). For example:
+ <a href="../../../../org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset"><code>InfosetOutputter</code></a>'s are not thread safe, requiring a
+ unique instance per thread. An <a href="../../../../org/apache/daffodil/japi/infoset/InfosetOutputter.html" title="class in org.apache.daffodil.japi.infoset"><code>InfosetOutputter</code></a> should
+ call <a href="../../../../org/apache/daffodil/japi/infoset/InfosetOutputter.html#reset--"><code>InfosetOutputter.reset()</code></a> before reuse (or a new one
+ should be allocated). For example:
 
  <pre>
  <code>
@@ -253,7 +350,8 @@
  }
  </code></pre>
 
- One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing where the previous parse ended. For example:
+ One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+ where the previous parse ended. For example:
 
  <pre>
  <code>
@@ -268,10 +366,73 @@
  }
  </code></pre>
 
+ <h5>SAX Parse</h5>
+ The <a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#parse-org.apache.daffodil.japi.io.InputSourceDataInputStream-"><code>DaffodilParseXMLReader.parse(
+ org.apache.daffodil.japi.io.InputSourceDataInputStream)</code></a> method accepts input data to parse in
+ the form of a <a href="../../../../org/apache/daffodil/japi/io/InputSourceDataInputStream.html" title="class in org.apache.daffodil.japi.io"><code>InputSourceDataInputStream</code></a>. The output
+ representation of the infoset, as well as how parse errors are handled, are dependent on the
+ content handler and the error handler provided to the <a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><code>DaffodilParseXMLReader</code></a>.
+ For example the <code>SAXHandler</code> provides a JDOM representation, whereas
+ other ContentHandlers may output directly to a <code>OutputStream</code> or <code>Writer</code>.
+
+ <pre>
+ <code>
+ SAXHandler contentHandler = new SAXHandler();
+ xmlReader.setContentHandler(contentHandler);
+ InputSourceDataInputStream is = new InputSourceDataInputStream(data);
+ xmlReader.parse(is);
+ ParseResult pr = (ParseResult) xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT());
+ Document doc = saxHandler.getDocument();
+ </code></pre>
+
+ The The <a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html#parse-org.apache.daffodil.japi.io.InputSourceDataInputStream-"><code>DaffodilParseXMLReader.parse(
+ org.apache.daffodil.japi.io.InputSourceDataInputStream)</code></a> method is not thread-safe and may
+ only be called again/reused once a parse operation is completed. This can be done multiple
+ times without the need to create new DaffodilParseXMLReaders, ContentHandlers or ErrorHandlers.
+ It might be necessary to reset whatever ContentHandler is used (or allocate a new one). A
+ thread-safe implementation would require unique instances of the DaffodilParseXMLReader and its
+ components. For example:
+
+ <pre>
+ <code>
+ SAXHandler contentHandler = new SAXHandler();
+ xmlReader.setContentHandler(contentHandler);
+ for (File f : inputFiles) {
+   contentHandler.reset();
+   InputSourceDataInputStream is = new InputSourceDataInputStream(new FileInputStream(f));
+   xmlReader.parse(is);
+   ParseResult pr = (ParseResult) xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT());
+   Document doc = saxHandler.getDocument();
+ }
+ </code>
+ </pre>
+
+ One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+ where the previous parse ended. For example:
+
+ <pre>
+ <code>
+ InputSourceDataInputStream is = new InputSourceDataInputStream(dataStream);
+ SAXHandler contentHandler = new SAXHandler();
+ xmlReader.setContentHandler(contentHandler);
+ Boolean keepParsing = true;
+ while (keepParsing) {
+   contentHandler.reset();
+   xmlReader.parse(is);
+   val pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT());
+   ...
+   keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError();
+ }
+ </code>
+ </pre>
+
  <h4>Unparse</h4>
 
- The same <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> used for parse can be used to unparse an infoset
- via the <a href="../../../../org/apache/daffodil/japi/DataProcessor.html#unparse-org.apache.daffodil.japi.infoset.InfosetInputter-java.nio.channels.WritableByteChannel-"><code>DataProcessor.unparse(org.apache.daffodil.japi.infoset.InfosetInputter, java.nio.channels.WritableByteChannel)</code></a> method. An <a href="../../../../org/apache/daffodil/japi/infoset/InfosetInputter.html" title="class in org.apache.daffodil.japi.infoset"><code>InfosetInputter</code></a>
+ <h5>Dataprocessor Unparse</h5>
+
+ The same <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a> used for parse can be used to unparse an
+ infoset via the <a href="../../../../org/apache/daffodil/japi/DataProcessor.html#unparse-org.apache.daffodil.japi.infoset.InfosetInputter-java.nio.channels.WritableByteChannel-"><code>DataProcessor.unparse(org.apache.daffodil.japi.infoset.InfosetInputter,
+ java.nio.channels.WritableByteChannel)</code></a> method. An <a href="../../../../org/apache/daffodil/japi/infoset/InfosetInputter.html" title="class in org.apache.daffodil.japi.infoset"><code>InfosetInputter</code></a>
  provides the infoset to unparse, with the unparsed data written to the
  provided <code>WritableByteChannel</code>. For example:
 
@@ -281,15 +442,67 @@
  UnparseResult ur = dp.unparse(jdomInputter, wbc)
  </code></pre>
 
+ <h5>SAX Unparse</h5>
+
+ In order to kick off an unparse via the SAX API, one must register the
+ <a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><code>DaffodilUnparseContentHandler</code></a> as the contentHandler for an
+ XMLReader implementation. The call to the
+ <a href="../../../../org/apache/daffodil/japi/DataProcessor.html#newContentHandlerInstance-java.nio.channels.WritableByteChannel-"><code>DataProcessor.newContentHandlerInstance(java.nio.channels.WritableByteChannel)</code></a>
+ method must be provided with the <code>WritableByteChannel</code>, where the unparsed
+ data ought to be written to. Any XMLReader implementation is permissible, as long as they have
+ XML Namespace support.
+
+ <pre>
+ <code>
+  ByteArrayInputStream is = new ByteArrayInputStream(data);
+  ByteArrayOutputStream os = new ByteArrayOutputStream();
+  WritableByteChannel wbc = java.nio.channels.Channels.newChannel(os);
+  DaffodilUnparseContentHandler unparseContentHandler = dp.newContentHandlerInstance(wbc);
+  try {
+   XMLReader xmlReader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
+   xmlReader.setContentHandler(unparseContentHandler)
+   xmlReader.parse(is)
+  } catch (ParserConfigurationException | SAXException e) {
+   ...
+ `} catch catch (DaffodilUnparseErrorSAXException | DaffodilUnhandledSAXException e) {
+   ...
+  }
+ </code>
+ </pre>
+
+ The call to the XMLReader.parse method must be wrapped in a try/catch, as
+ <a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><code>DaffodilUnparseContentHandler</code></a> relies on throwing an exception to
+ end processing in the case of any errors/failures.
+ There are two kinds of errors to expect
+ <a href="../../../../org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi"><code>DaffodilUnparseErrorSAXException</code></a>, for the case when the
+ <a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html#isError--"><code>WithDiagnostics.isError()</code></a>, and
+ <a href="../../../../org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi"><code>DaffodilUnparseErrorSAXException</code></a>, for any other errors.
+
+ In the case of an <a href="../../../../org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi"><code>DaffodilUnhandledSAXException</code></a>,
+ <a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html#getUnparseResult--"><code>DaffodilUnparseContentHandler.getUnparseResult()</code></a> will return null.
+
+ <pre>
+ <code>
+  try {
+    xmlReader.parse(new InputSource(is));
+  } catch (DaffodilUnparseErrorSAXException | DaffodilUnhandledSAXException e) {
+    ...
+  }
+  UnparseResult ur = unparseContentHandler.getUnparseResult();
+ </code>
+ </pre>
+
+
  <h3>Failures and Diagnostics</h3>
 
  It is possible that failures could occur during the creation of the
- <a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi"><code>ProcessorFactory</code></a>, <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a>, or <a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi"><code>ParseResult</code></a>. However, rather than
- throwing an exception on error (e.g. invalid DFDL schema, parse
- error, etc), these classes extend <a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html" title="class in org.apache.daffodil.japi"><code>WithDiagnostics</code></a>, which is used to
- determine if an error occurred, and any diagnostic information (see
- <a href="../../../../org/apache/daffodil/japi/Diagnostic.html" title="class in org.apache.daffodil.japi"><code>Diagnostic</code></a>) related to the step. Thus, before continuing, one must check
- <a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html#isError--"><code>WithDiagnostics.isError()</code></a>. For example:
+ <a href="../../../../org/apache/daffodil/japi/ProcessorFactory.html" title="class in org.apache.daffodil.japi"><code>ProcessorFactory</code></a>, <a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><code>DataProcessor</code></a>,
+ or <a href="../../../../org/apache/daffodil/japi/ParseResult.html" title="class in org.apache.daffodil.japi"><code>ParseResult</code></a>. However, rather than throwing an exception on
+ error (e.g. invalid DFDL schema, parse error, etc), these classes extend
+ <a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html" title="class in org.apache.daffodil.japi"><code>WithDiagnostics</code></a>, which is used to determine if an error occurred,
+ and any diagnostic information (see <a href="../../../../org/apache/daffodil/japi/Diagnostic.html" title="class in org.apache.daffodil.japi"><code>Diagnostic</code></a>) related to the step.
+ Thus, before continuing, one must check <a href="../../../../org/apache/daffodil/japi/WithDiagnostics.html#isError--"><code>WithDiagnostics.isError()</code></a>.
+ For example:
 
  <pre>
  <code>
@@ -322,6 +535,22 @@
  <code>
  DataProcessor dp = Daffodil.reload(saveFile);
  ParseResult pr = dp.parse(data);
+ </code></pre>
+
+ And use like below:
+ <pre>
+ <code>
+ ParseResult pr = dp.parse(data);
+ </code></pre>
+
+ or
+
+ <pre>
+ <code>
+ DaffodilParseXMLReader xmlReader = dp.newXMLReaderInstance();
+ ... // setting appropriate handlers
+ xmlReader.parse(data);
+ ParseResult pr = xmlReader.getProperty("...ParseResult");
  </code></pre></div>
 </div>
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/package-tree.html b/content/docs/latest/javadoc/org/apache/daffodil/japi/package-tree.html
index 64b1c7e..13bc228 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/package-tree.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/japi/package-tree.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.japi Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.japi Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -82,15 +81,24 @@
 <ul>
 <li type="circle">org.apache.daffodil.japi.<a href="../../../../org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Compiler</span></a></li>
 <li type="circle">org.apache.daffodil.japi.<a href="../../../../org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Daffodil</span></a></li>
+<li type="circle">org.apache.daffodil.japi.<a href="../../../../org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DaffodilParseXMLReader</span></a> (implements org.xml.sax.XMLReader)</li>
+<li type="circle">org.apache.daffodil.japi.<a href="../../../../org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DaffodilUnparseContentHandler</span></a> (implements org.xml.sax.ContentHandler)</li>
 <li type="circle">org.apache.daffodil.japi.<a href="../../../../org/apache/daffodil/japi/DataLocation.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DataLocation</span></a></li>
 <li type="circle">org.apache.daffodil.japi.<a href="../../../../org/apache/daffodil/japi/Diagnostic.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Diagnostic</span></a></li>
 <li type="circle">org.apache.daffodil.japi.<a href="../../../../org/apache/daffodil/japi/LocationInSchemaFile.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">LocationInSchemaFile</span></a></li>
+<li type="circle">org.apache.daffodil.japi.<a href="../../../../org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">ProcessorFactory.ExperimentalWrapper</span></a></li>
 <li type="circle">java.lang.Throwable (implements java.io.Serializable)
 <ul>
 <li type="circle">java.lang.Exception
 <ul>
 <li type="circle">org.apache.daffodil.japi.<a href="../../../../org/apache/daffodil/japi/InvalidParserException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">InvalidParserException</span></a></li>
 <li type="circle">org.apache.daffodil.japi.<a href="../../../../org/apache/daffodil/japi/InvalidUsageException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">InvalidUsageException</span></a></li>
+<li type="circle">org.xml.sax.SAXException
+<ul>
+<li type="circle">org.apache.daffodil.japi.<a href="../../../../org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DaffodilUnhandledSAXException</span></a></li>
+<li type="circle">org.apache.daffodil.japi.<a href="../../../../org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DaffodilUnparseErrorSAXException</span></a></li>
+</ul>
+</li>
 </ul>
 </li>
 </ul>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/udf/UserDefinedFunction.html b/content/docs/latest/javadoc/org/apache/daffodil/udf/UserDefinedFunction.html
new file mode 100644
index 0000000..a90aa37
--- /dev/null
+++ b/content/docs/latest/javadoc/org/apache/daffodil/udf/UserDefinedFunction.html
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>UserDefinedFunction (Apache Daffodil (incubating) 3.0.0 Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserDefinedFunction (Apache Daffodil (incubating) 3.0.0 Java API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionIdentification.html" title="annotation in org.apache.daffodil.udf"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/daffodil/udf/UserDefinedFunction.html" target="_top">Frames</a></li>
+<li><a href="UserDefinedFunction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.daffodil.udf</div>
+<h2 title="Interface UserDefinedFunction" class="title">Interface UserDefinedFunction</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd>java.io.Serializable</dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">UserDefinedFunction</span>
+extends java.io.Serializable</pre>
+<div class="block">Interface that all User Defined Functions classes must implement.
+
+ It implements the java.io.Serializable class and must have the
+ UserDefinedFunctionIdentification annotation applied and filled in with the
+ values to be used in the schema.
+
+ It must also have an evaluate method that contains the functionality it is
+ offering
+
+ Any "state" variables should be passed in during overloaded
+ UserDefinedFunctionProvider initialization</div>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionIdentification.html" title="annotation in org.apache.daffodil.udf"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/daffodil/udf/UserDefinedFunction.html" target="_top">Frames</a></li>
+<li><a href="UserDefinedFunction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/udf/UserDefinedFunctionIdentification.html b/content/docs/latest/javadoc/org/apache/daffodil/udf/UserDefinedFunctionIdentification.html
new file mode 100644
index 0000000..d0263ba
--- /dev/null
+++ b/content/docs/latest/javadoc/org/apache/daffodil/udf/UserDefinedFunctionIdentification.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>UserDefinedFunctionIdentification (Apache Daffodil (incubating) 3.0.0 Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserDefinedFunctionIdentification (Apache Daffodil (incubating) 3.0.0 Java API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/daffodil/udf/UserDefinedFunction.html" title="interface in org.apache.daffodil.udf"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/daffodil/udf/UserDefinedFunctionIdentification.html" target="_top">Frames</a></li>
+<li><a href="UserDefinedFunctionIdentification.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.daffodil.udf</div>
+<h2 title="Annotation Type UserDefinedFunctionIdentification" class="title">Annotation Type UserDefinedFunctionIdentification</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>@Retention(value=RUNTIME)
+ @Target(value=TYPE)
+public @interface <span class="memberNameLabel">UserDefinedFunctionIdentification</span></pre>
+<div class="block">Annotation that must be applied to every UDF in order for it to be considered
+ valid.
+
+ It must have the name and namespaceURI fields initialized with the namespace
+ and name callers would be expected to use in the schema.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Required Element Summary table, listing required elements, and an explanation">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Required Element and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionIdentification.html#name--">name</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionIdentification.html#namespaceURI--">namespaceURI</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a name="name--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>name</h4>
+<pre>public abstract&nbsp;java.lang.String&nbsp;name</pre>
+</li>
+</ul>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="namespaceURI--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>namespaceURI</h4>
+<pre>public abstract&nbsp;java.lang.String&nbsp;namespaceURI</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/daffodil/udf/UserDefinedFunction.html" title="interface in org.apache.daffodil.udf"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/daffodil/udf/UserDefinedFunctionIdentification.html" target="_top">Frames</a></li>
+<li><a href="UserDefinedFunctionIdentification.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/DataLocation.html b/content/docs/latest/javadoc/org/apache/daffodil/udf/UserDefinedFunctionProvider.html
similarity index 53%
copy from content/docs/latest/javadoc/org/apache/daffodil/japi/DataLocation.html
copy to content/docs/latest/javadoc/org/apache/daffodil/udf/UserDefinedFunctionProvider.html
index 947d623..917f2e9 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/DataLocation.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/udf/UserDefinedFunctionProvider.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>DataLocation (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>UserDefinedFunctionProvider (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
 </head>
@@ -12,14 +11,14 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DataLocation (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="UserDefinedFunctionProvider (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":10,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -48,12 +47,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionIdentification.html" title="annotation in org.apache.daffodil.udf"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/daffodil/japi/DataLocation.html" target="_top">Frames</a></li>
-<li><a href="DataLocation.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../index.html?org/apache/daffodil/udf/UserDefinedFunctionProvider.html" target="_top">Frames</a></li>
+<li><a href="UserDefinedFunctionProvider.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -91,15 +90,15 @@ var activeTableTab = "activeTableTab";
 <!-- ========= END OF TOP NAVBAR ========= -->
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
-<div class="subTitle">org.apache.daffodil.japi</div>
-<h2 title="Class DataLocation" class="title">Class DataLocation</h2>
+<div class="subTitle">org.apache.daffodil.udf</div>
+<h2 title="Class UserDefinedFunctionProvider" class="title">Class UserDefinedFunctionProvider</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
 <li>java.lang.Object</li>
 <li>
 <ul class="inheritance">
-<li>org.apache.daffodil.japi.DataLocation</li>
+<li>org.apache.daffodil.udf.UserDefinedFunctionProvider</li>
 </ul>
 </li>
 </ul>
@@ -108,9 +107,23 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <span class="typeNameLabel">DataLocation</span>
+<pre>public abstract class <span class="typeNameLabel">UserDefinedFunctionProvider</span>
 extends java.lang.Object</pre>
-<div class="block">Information related to a location in data</div>
+<div class="block">Abstract class used by ServiceLoader to poll for UDF providers on classpath.
+
+ Through this class, several User Defined Functions can be made available to
+ Daffodil via a single entry in the META-INF/services file.
+
+ UDF Providers must subclass this, and must initialize the
+ userDefinedFunctionClasses array with all the UDF classes it is providing.
+
+ If the UDFs being provided have constructors with arguments, the provider
+ subclass must also implement the createUserDefinedFunction to return an
+ initialized function class object based on the supplied namespace and name.
+
+ Subclasses must also supply a
+ src/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
+ file in their JAVA project in order to be discoverable by Daffodil.</div>
 </li>
 </ul>
 </div>
@@ -129,7 +142,7 @@ extends java.lang.Object</pre>
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataLocation.html#DataLocation-org.apache.daffodil.api.DataLocation-">DataLocation</a></span>(org.apache.daffodil.api.DataLocation&nbsp;dl)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionProvider.html#UserDefinedFunctionProvider--">UserDefinedFunctionProvider</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -141,40 +154,33 @@ extends java.lang.Object</pre>
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabE [...]
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataLocation.html#bitPos1b--">bitPos1b</a></span>()</code>
-<div class="block">Get the position of the data, in bits, using 1-based indexing</div>
+<td class="colFirst"><code><a href="../../../../org/apache/daffodil/udf/UserDefinedFunction.html" title="interface in org.apache.daffodil.udf">UserDefinedFunction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionProvider.html#createUserDefinedFunction-java.lang.String-java.lang.String-">createUserDefinedFunction</a></span>(java.lang.String&nbsp;namespaceURI,
+                         java.lang.String&nbsp;fName)</code>
+<div class="block">Finds and initializes User Defined Function class based on namespace and name
+ provided.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataLocation.html#bytePos1b--">bytePos1b</a></span>()</code>
-<div class="block">Get the position of the data, in bytes, using 1-based indexing</div>
+<td class="colFirst"><code>abstract java.lang.Class&lt;?&gt;[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionProvider.html#getUserDefinedFunctionClasses--">getUserDefinedFunctionClasses</a></span>()</code>
+<div class="block">Must be implemented to return the classes of the User Defined Function this
+ provider is aware of/providing</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataLocation.html#isAtEnd--">isAtEnd</a></span>()</code>
-<div class="block">Determine if this data location is at the end of the input data</div>
-</td>
-</tr>
-<tr id="i3" class="rowColor">
-<td class="colFirst"><code>java.lang.String</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/DataLocation.html#toString--">toString</a></span>()</code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.Object</h3>
-<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
 </ul>
 </li>
 </ul>
@@ -190,13 +196,13 @@ extends java.lang.Object</pre>
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="DataLocation-org.apache.daffodil.api.DataLocation-">
+<a name="UserDefinedFunctionProvider--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>DataLocation</h4>
-<pre>public&nbsp;DataLocation(org.apache.daffodil.api.DataLocation&nbsp;dl)</pre>
+<h4>UserDefinedFunctionProvider</h4>
+<pre>public&nbsp;UserDefinedFunctionProvider()</pre>
 </li>
 </ul>
 </li>
@@ -207,61 +213,53 @@ extends java.lang.Object</pre>
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="bitPos1b--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>bitPos1b</h4>
-<pre>public&nbsp;long&nbsp;bitPos1b()</pre>
-<div class="block">Get the position of the data, in bits, using 1-based indexing
- <p></div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>position of the data in bites</dd>
-</dl>
-</li>
-</ul>
-<a name="bytePos1b--">
+<a name="getUserDefinedFunctionClasses--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>bytePos1b</h4>
-<pre>public&nbsp;long&nbsp;bytePos1b()</pre>
-<div class="block">Get the position of the data, in bytes, using 1-based indexing
- <p></div>
+<h4>getUserDefinedFunctionClasses</h4>
+<pre>public abstract&nbsp;java.lang.Class&lt;?&gt;[]&nbsp;getUserDefinedFunctionClasses()</pre>
+<div class="block">Must be implemented to return the classes of the User Defined Function this
+ provider is aware of/providing</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>position of the data in bytes</dd>
+<dd>array of the different UserDefinedFunction classes it provides</dd>
 </dl>
 </li>
 </ul>
-<a name="isAtEnd--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>isAtEnd</h4>
-<pre>public&nbsp;boolean&nbsp;isAtEnd()</pre>
-<div class="block">Determine if this data location is at the end of the input data
- <p></div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>true if this represents the end of the input data, false otherwise</dd>
-</dl>
-</li>
-</ul>
-<a name="toString--">
+<a name="createUserDefinedFunction-java.lang.String-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>toString</h4>
-<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
+<h4>createUserDefinedFunction</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/daffodil/udf/UserDefinedFunction.html" title="interface in org.apache.daffodil.udf">UserDefinedFunction</a>&nbsp;createUserDefinedFunction(java.lang.String&nbsp;namespaceURI,
+                                                     java.lang.String&nbsp;fName)
+                                              throws java.lang.IllegalArgumentException,
+                                                     java.lang.SecurityException,
+                                                     java.lang.ExceptionInInitializerError,
+                                                     java.lang.ReflectiveOperationException</pre>
+<div class="block">Finds and initializes User Defined Function class based on namespace and name
+ provided. The UserDefinedFunctionIdentification annotation applied to the
+ function class must match name and namespaceURI field passed in from the
+ schema.
+
+ Must be overloaded if the function class's constructor takes arguments.
+ Otherwise it will throw exceptions.</div>
 <dl>
-<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>namespaceURI</code> - XML namespace associated with schema function call</dd>
+<dd><code>fName</code> - function name called in schema</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>initialized UserDefinedFunction object that must contain evaluate
+         function with desired functionality</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.SecurityException</code> - if security manager exists and disallows access</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if the UDF doesn't have a no-argument constructor</dd>
+<dd><code>java.lang.ExceptionInInitializerError</code> - if there is an issue initializing the UDF object</dd>
+<dd><code>java.lang.ReflectiveOperationException</code> - if the UDF doesn't have a no-argument constructor or if there is an
+           issue initializing the UDF object</dd>
 </dl>
 </li>
 </ul>
@@ -292,12 +290,12 @@ extends java.lang.Object</pre>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionIdentification.html" title="annotation in org.apache.daffodil.udf"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/daffodil/japi/DataLocation.html" target="_top">Frames</a></li>
-<li><a href="DataLocation.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../index.html?org/apache/daffodil/udf/UserDefinedFunctionProvider.html" target="_top">Frames</a></li>
+<li><a href="UserDefinedFunctionProvider.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidParserException.html b/content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html
similarity index 61%
copy from content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidParserException.html
copy to content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html
index de1455d..dd14730 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidParserException.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html
@@ -2,17 +2,16 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>InvalidParserException (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
-<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../script.js"></script>
+<!-- Generated by javadoc -->
+<title>UserDefinedFunctionFatalException (Apache Daffodil (incubating) 3.0.0 Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="InvalidParserException (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="UserDefinedFunctionFatalException (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -31,26 +30,26 @@
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../index-all.html">Index</a></li>
-<li><a href="../../../../help-doc.html">Help</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
 </ul>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/Diagnostic.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/InvalidUsageException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/daffodil/japi/InvalidParserException.html" target="_top">Frames</a></li>
-<li><a href="InvalidParserException.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" target="_top">Frames</a></li>
+<li><a href="UserDefinedFunctionFatalException.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -85,8 +84,8 @@
 <!-- ========= END OF TOP NAVBAR ========= -->
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
-<div class="subTitle">org.apache.daffodil.japi</div>
-<h2 title="Class InvalidParserException" class="title">Class InvalidParserException</h2>
+<div class="subTitle">org.apache.daffodil.udf.exceptions</div>
+<h2 title="Class UserDefinedFunctionFatalException" class="title">Class UserDefinedFunctionFatalException</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
@@ -99,7 +98,7 @@
 <li>java.lang.Exception</li>
 <li>
 <ul class="inheritance">
-<li>org.apache.daffodil.japi.InvalidParserException</li>
+<li>org.apache.daffodil.udf.exceptions.UserDefinedFunctionFatalException</li>
 </ul>
 </li>
 </ul>
@@ -116,14 +115,12 @@
 </dl>
 <hr>
 <br>
-<pre>public class <span class="typeNameLabel">InvalidParserException</span>
+<pre>public class <span class="typeNameLabel">UserDefinedFunctionFatalException</span>
 extends java.lang.Exception</pre>
-<div class="block">This exception will be thrown as a result of attempting to reload a saved parser
- that is invalid (not a parser file, corrupt, etc.) or
- is not in the GZIP format.</div>
+<div class="block">Exception to throw to abort parsing/unparsing.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../serialized-form.html#org.apache.daffodil.japi.InvalidParserException">Serialized Form</a></dd>
+<dd><a href="../../../../../serialized-form.html#org.apache.daffodil.udf.exceptions.UserDefinedFunctionFatalException">Serialized Form</a></dd>
 </dl>
 </li>
 </ul>
@@ -143,7 +140,10 @@ extends java.lang.Exception</pre>
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/InvalidParserException.html#InvalidParserException-org.apache.daffodil.compiler.InvalidParserException-">InvalidParserException</a></span>(org.apache.daffodil.compiler.InvalidParserException&nbsp;cause)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html#UserDefinedFunctionFatalException-java.lang.String-">UserDefinedFunctionFatalException</a></span>(java.lang.String&nbsp;errorMessage)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html#UserDefinedFunctionFatalException-java.lang.Throwable-">UserDefinedFunctionFatalException</a></span>(java.lang.Throwable&nbsp;cause)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -182,13 +182,22 @@ extends java.lang.Exception</pre>
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="InvalidParserException-org.apache.daffodil.compiler.InvalidParserException-">
+<a name="UserDefinedFunctionFatalException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UserDefinedFunctionFatalException</h4>
+<pre>public&nbsp;UserDefinedFunctionFatalException(java.lang.String&nbsp;errorMessage)</pre>
+</li>
+</ul>
+<a name="UserDefinedFunctionFatalException-java.lang.Throwable-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>InvalidParserException</h4>
-<pre>public&nbsp;InvalidParserException(org.apache.daffodil.compiler.InvalidParserException&nbsp;cause)</pre>
+<h4>UserDefinedFunctionFatalException</h4>
+<pre>public&nbsp;UserDefinedFunctionFatalException(java.lang.Throwable&nbsp;cause)</pre>
 </li>
 </ul>
 </li>
@@ -207,26 +216,26 @@ extends java.lang.Exception</pre>
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../index-all.html">Index</a></li>
-<li><a href="../../../../help-doc.html">Help</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
 </ul>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/Diagnostic.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/InvalidUsageException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/daffodil/japi/InvalidParserException.html" target="_top">Frames</a></li>
-<li><a href="InvalidParserException.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" target="_top">Frames</a></li>
+<li><a href="UserDefinedFunctionFatalException.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html b/content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html
similarity index 56%
copy from content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html
copy to content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html
index ad6642f..498c63b 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/InvalidUsageException.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html
@@ -2,17 +2,16 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>InvalidUsageException (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
-<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../script.js"></script>
+<!-- Generated by javadoc -->
+<title>UserDefinedFunctionProcessingError (Apache Daffodil (incubating) 3.0.0 Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="InvalidUsageException (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="UserDefinedFunctionProcessingError (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -31,26 +30,26 @@
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../index-all.html">Index</a></li>
-<li><a href="../../../../help-doc.html">Help</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
 </ul>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/InvalidParserException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/LocationInSchemaFile.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" title="class in org.apache.daffodil.udf.exceptions"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/daffodil/japi/InvalidUsageException.html" target="_top">Frames</a></li>
-<li><a href="InvalidUsageException.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" target="_top">Frames</a></li>
+<li><a href="UserDefinedFunctionProcessingError.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -85,8 +84,8 @@
 <!-- ========= END OF TOP NAVBAR ========= -->
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
-<div class="subTitle">org.apache.daffodil.japi</div>
-<h2 title="Class InvalidUsageException" class="title">Class InvalidUsageException</h2>
+<div class="subTitle">org.apache.daffodil.udf.exceptions</div>
+<h2 title="Class UserDefinedFunctionProcessingError" class="title">Class UserDefinedFunctionProcessingError</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
@@ -99,7 +98,7 @@
 <li>java.lang.Exception</li>
 <li>
 <ul class="inheritance">
-<li>org.apache.daffodil.japi.InvalidUsageException</li>
+<li>org.apache.daffodil.udf.exceptions.UserDefinedFunctionProcessingError</li>
 </ul>
 </li>
 </ul>
@@ -116,12 +115,12 @@
 </dl>
 <hr>
 <br>
-<pre>public class <span class="typeNameLabel">InvalidUsageException</span>
+<pre>public class <span class="typeNameLabel">UserDefinedFunctionProcessingError</span>
 extends java.lang.Exception</pre>
-<div class="block">This exception will be thrown as a result of an invalid usage of the Daffodil API</div>
+<div class="block">Exception to throw to cause backtracking during parsing/unparsing.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../serialized-form.html#org.apache.daffodil.japi.InvalidUsageException">Serialized Form</a></dd>
+<dd><a href="../../../../../serialized-form.html#org.apache.daffodil.udf.exceptions.UserDefinedFunctionProcessingError">Serialized Form</a></dd>
 </dl>
 </li>
 </ul>
@@ -141,7 +140,14 @@ extends java.lang.Exception</pre>
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/daffodil/japi/InvalidUsageException.html#InvalidUsageException-org.apache.daffodil.processors.InvalidUsageException-">InvalidUsageException</a></span>(org.apache.daffodil.processors.InvalidUsageException&nbsp;cause)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html#UserDefinedFunctionProcessingError-java.lang.String-">UserDefinedFunctionProcessingError</a></span>(java.lang.String&nbsp;errorMessage)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html#UserDefinedFunctionProcessingError-java.lang.String-java.lang.Throwable-">UserDefinedFunctionProcessingError</a></span>(java.lang.String&nbsp;errorMessage,
+                                  java.lang.Throwable&nbsp;cause)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html#UserDefinedFunctionProcessingError-java.lang.Throwable-">UserDefinedFunctionProcessingError</a></span>(java.lang.Throwable&nbsp;cause)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -180,13 +186,32 @@ extends java.lang.Exception</pre>
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="InvalidUsageException-org.apache.daffodil.processors.InvalidUsageException-">
+<a name="UserDefinedFunctionProcessingError-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UserDefinedFunctionProcessingError</h4>
+<pre>public&nbsp;UserDefinedFunctionProcessingError(java.lang.String&nbsp;errorMessage)</pre>
+</li>
+</ul>
+<a name="UserDefinedFunctionProcessingError-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UserDefinedFunctionProcessingError</h4>
+<pre>public&nbsp;UserDefinedFunctionProcessingError(java.lang.Throwable&nbsp;cause)</pre>
+</li>
+</ul>
+<a name="UserDefinedFunctionProcessingError-java.lang.String-java.lang.Throwable-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>InvalidUsageException</h4>
-<pre>public&nbsp;InvalidUsageException(org.apache.daffodil.processors.InvalidUsageException&nbsp;cause)</pre>
+<h4>UserDefinedFunctionProcessingError</h4>
+<pre>public&nbsp;UserDefinedFunctionProcessingError(java.lang.String&nbsp;errorMessage,
+                                          java.lang.Throwable&nbsp;cause)</pre>
 </li>
 </ul>
 </li>
@@ -205,26 +230,26 @@ extends java.lang.Exception</pre>
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../index-all.html">Index</a></li>
-<li><a href="../../../../help-doc.html">Help</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
 </ul>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/daffodil/japi/InvalidParserException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/daffodil/japi/LocationInSchemaFile.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" title="class in org.apache.daffodil.udf.exceptions"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../index.html?org/apache/daffodil/japi/InvalidUsageException.html" target="_top">Frames</a></li>
-<li><a href="InvalidUsageException.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" target="_top">Frames</a></li>
+<li><a href="UserDefinedFunctionProcessingError.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/package-frame.html b/content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/package-frame.html
new file mode 100644
index 0000000..ad43ce3
--- /dev/null
+++ b/content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/package-frame.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.udf.exceptions (Apache Daffodil (incubating) 3.0.0 Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../org/apache/daffodil/udf/exceptions/package-summary.html" target="classFrame">org.apache.daffodil.udf.exceptions</a></h1>
+<div class="indexContainer">
+<h2 title="Exceptions">Exceptions</h2>
+<ul title="Exceptions">
+<li><a href="UserDefinedFunctionFatalException.html" title="class in org.apache.daffodil.udf.exceptions" target="classFrame">UserDefinedFunctionFatalException</a></li>
+<li><a href="UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions" target="classFrame">UserDefinedFunctionProcessingError</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-summary.html b/content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/package-summary.html
similarity index 69%
copy from content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-summary.html
copy to content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/package-summary.html
index d840f45..eb38127 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-summary.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/package-summary.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.io (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.udf.exceptions (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi.io (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.udf.exceptions (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -42,11 +41,11 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/daffodil/japi/infoset/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../../org/apache/daffodil/japi/logger/package-summary.html">Next&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/daffodil/udf/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/daffodil/japi/io/package-summary.html" target="_top">Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/daffodil/udf/exceptions/package-summary.html" target="_top">Frames</a></li>
 <li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
@@ -69,23 +68,28 @@
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
 <div class="header">
-<h1 title="Package" class="title">Package&nbsp;org.apache.daffodil.japi.io</h1>
+<h1 title="Package" class="title">Package&nbsp;org.apache.daffodil.udf.exceptions</h1>
 </div>
 <div class="contentContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
-<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colFirst" scope="col">Class</th>
+<th class="colFirst" scope="col">Exception</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/daffodil/japi/io/InputSourceDataInputStream.html" title="class in org.apache.daffodil.japi.io">InputSourceDataInputStream</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" title="class in org.apache.daffodil.udf.exceptions">UserDefinedFunctionFatalException</a></td>
 <td class="colLast">
-<div class="block">Provides Daffodil with byte data from an InputStream, ByteBuffer, or byte
- Array.</div>
+<div class="block">Exception to throw to abort parsing/unparsing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions">UserDefinedFunctionProcessingError</a></td>
+<td class="colLast">
+<div class="block">Exception to throw to cause backtracking during parsing/unparsing.</div>
 </td>
 </tr>
 </tbody>
@@ -113,11 +117,11 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/daffodil/japi/infoset/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../../org/apache/daffodil/japi/logger/package-summary.html">Next&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/daffodil/udf/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/daffodil/japi/io/package-summary.html" target="_top">Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/daffodil/udf/exceptions/package-summary.html" target="_top">Frames</a></li>
 <li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-tree.html b/content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/package-tree.html
similarity index 70%
copy from content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-tree.html
copy to content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/package-tree.html
index 6c43bef..04401ea 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-tree.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/udf/exceptions/package-tree.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.io Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.udf.exceptions Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi.io Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.udf.exceptions Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -42,11 +41,11 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/daffodil/japi/infoset/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/daffodil/japi/logger/package-tree.html">Next</a></li>
+<li><a href="../../../../../org/apache/daffodil/udf/package-tree.html">Prev</a></li>
+<li>Next</li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/daffodil/japi/io/package-tree.html" target="_top">Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/daffodil/udf/exceptions/package-tree.html" target="_top">Frames</a></li>
 <li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
@@ -69,7 +68,7 @@
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
 <div class="header">
-<h1 class="title">Hierarchy For Package org.apache.daffodil.japi.io</h1>
+<h1 class="title">Hierarchy For Package org.apache.daffodil.udf.exceptions</h1>
 <span class="packageHierarchyLabel">Package Hierarchies:</span>
 <ul class="horizontal">
 <li><a href="../../../../../overview-tree.html">All Packages</a></li>
@@ -80,7 +79,16 @@
 <ul>
 <li type="circle">java.lang.Object
 <ul>
-<li type="circle">org.apache.daffodil.japi.io.<a href="../../../../../org/apache/daffodil/japi/io/InputSourceDataInputStream.html" title="class in org.apache.daffodil.japi.io"><span class="typeNameLink">InputSourceDataInputStream</span></a></li>
+<li type="circle">java.lang.Throwable (implements java.io.Serializable)
+<ul>
+<li type="circle">java.lang.Exception
+<ul>
+<li type="circle">org.apache.daffodil.udf.exceptions.<a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" title="class in org.apache.daffodil.udf.exceptions"><span class="typeNameLink">UserDefinedFunctionFatalException</span></a></li>
+<li type="circle">org.apache.daffodil.udf.exceptions.<a href="../../../../../org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions"><span class="typeNameLink">UserDefinedFunctionProcessingError</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
 </ul>
 </li>
 </ul>
@@ -105,11 +113,11 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/daffodil/japi/infoset/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/daffodil/japi/logger/package-tree.html">Next</a></li>
+<li><a href="../../../../../org/apache/daffodil/udf/package-tree.html">Prev</a></li>
+<li>Next</li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/daffodil/japi/io/package-tree.html" target="_top">Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/daffodil/udf/exceptions/package-tree.html" target="_top">Frames</a></li>
 <li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/udf/package-frame.html b/content/docs/latest/javadoc/org/apache/daffodil/udf/package-frame.html
new file mode 100644
index 0000000..95952af
--- /dev/null
+++ b/content/docs/latest/javadoc/org/apache/daffodil/udf/package-frame.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.udf (Apache Daffodil (incubating) 3.0.0 Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/daffodil/udf/package-summary.html" target="classFrame">org.apache.daffodil.udf</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="UserDefinedFunction.html" title="interface in org.apache.daffodil.udf" target="classFrame"><span class="interfaceName">UserDefinedFunction</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf" target="classFrame">UserDefinedFunctionProvider</a></li>
+</ul>
+<h2 title="Annotation Types">Annotation Types</h2>
+<ul title="Annotation Types">
+<li><a href="UserDefinedFunctionIdentification.html" title="annotation in org.apache.daffodil.udf" target="classFrame">UserDefinedFunctionIdentification</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/udf/package-summary.html b/content/docs/latest/javadoc/org/apache/daffodil/udf/package-summary.html
new file mode 100644
index 0000000..4504374
--- /dev/null
+++ b/content/docs/latest/javadoc/org/apache/daffodil/udf/package-summary.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.udf (Apache Daffodil (incubating) 3.0.0 Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.daffodil.udf (Apache Daffodil (incubating) 3.0.0 Java API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/daffodil/japi/logger/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/daffodil/udf/exceptions/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/daffodil/udf/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.daffodil.udf</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/daffodil/udf/UserDefinedFunction.html" title="interface in org.apache.daffodil.udf">UserDefinedFunction</a></td>
+<td class="colLast">
+<div class="block">Interface that all User Defined Functions classes must implement.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf">UserDefinedFunctionProvider</a></td>
+<td class="colLast">
+<div class="block">Abstract class used by ServiceLoader to poll for UDF providers on classpath.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Annotation Types Summary table, listing annotation types, and an explanation">
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionIdentification.html" title="annotation in org.apache.daffodil.udf">UserDefinedFunctionIdentification</a></td>
+<td class="colLast">
+<div class="block">Annotation that must be applied to every UDF in order for it to be considered
+ valid.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/daffodil/japi/logger/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/daffodil/udf/exceptions/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/daffodil/udf/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-tree.html b/content/docs/latest/javadoc/org/apache/daffodil/udf/package-tree.html
similarity index 50%
copy from content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-tree.html
copy to content/docs/latest/javadoc/org/apache/daffodil/udf/package-tree.html
index 6c43bef..bf36fee 100644
--- a/content/docs/latest/javadoc/org/apache/daffodil/japi/io/package-tree.html
+++ b/content/docs/latest/javadoc/org/apache/daffodil/udf/package-tree.html
@@ -2,17 +2,16 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>org.apache.daffodil.japi.io Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../script.js"></script>
+<!-- Generated by javadoc -->
+<title>org.apache.daffodil.udf Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.daffodil.japi.io Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="org.apache.daffodil.udf Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -31,26 +30,26 @@
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Tree</li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
 </ul>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/daffodil/japi/infoset/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/daffodil/japi/logger/package-tree.html">Next</a></li>
+<li><a href="../../../../org/apache/daffodil/japi/logger/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/daffodil/udf/exceptions/package-tree.html">Next</a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/daffodil/japi/io/package-tree.html" target="_top">Frames</a></li>
+<li><a href="../../../../index.html?org/apache/daffodil/udf/package-tree.html" target="_top">Frames</a></li>
 <li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -69,10 +68,10 @@
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
 <div class="header">
-<h1 class="title">Hierarchy For Package org.apache.daffodil.japi.io</h1>
+<h1 class="title">Hierarchy For Package org.apache.daffodil.udf</h1>
 <span class="packageHierarchyLabel">Package Hierarchies:</span>
 <ul class="horizontal">
-<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
 </ul>
 </div>
 <div class="contentContainer">
@@ -80,10 +79,22 @@
 <ul>
 <li type="circle">java.lang.Object
 <ul>
-<li type="circle">org.apache.daffodil.japi.io.<a href="../../../../../org/apache/daffodil/japi/io/InputSourceDataInputStream.html" title="class in org.apache.daffodil.japi.io"><span class="typeNameLink">InputSourceDataInputStream</span></a></li>
+<li type="circle">org.apache.daffodil.udf.<a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf"><span class="typeNameLink">UserDefinedFunctionProvider</span></a></li>
 </ul>
 </li>
 </ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">java.io.Serializable
+<ul>
+<li type="circle">org.apache.daffodil.udf.<a href="../../../../org/apache/daffodil/udf/UserDefinedFunction.html" title="interface in org.apache.daffodil.udf"><span class="typeNameLink">UserDefinedFunction</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.daffodil.udf.<a href="../../../../org/apache/daffodil/udf/UserDefinedFunctionIdentification.html" title="annotation in org.apache.daffodil.udf"><span class="typeNameLink">UserDefinedFunctionIdentification</span></a> (implements java.lang.annotation.Annotation)</li>
+</ul>
 </div>
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
 <div class="bottomNav"><a name="navbar.bottom">
@@ -94,26 +105,26 @@
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Tree</li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
 </ul>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/daffodil/japi/infoset/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/daffodil/japi/logger/package-tree.html">Next</a></li>
+<li><a href="../../../../org/apache/daffodil/japi/logger/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/daffodil/udf/exceptions/package-tree.html">Next</a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/daffodil/japi/io/package-tree.html" target="_top">Frames</a></li>
+<li><a href="../../../../index.html?org/apache/daffodil/udf/package-tree.html" target="_top">Frames</a></li>
 <li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
diff --git a/content/docs/latest/javadoc/overview-frame.html b/content/docs/latest/javadoc/overview-frame.html
index 984e58c..d147e4f 100644
--- a/content/docs/latest/javadoc/overview-frame.html
+++ b/content/docs/latest/javadoc/overview-frame.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>Overview List (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>Overview List (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
 </head>
@@ -18,6 +17,8 @@
 <li><a href="org/apache/daffodil/japi/infoset/package-frame.html" target="packageFrame">org.apache.daffodil.japi.infoset</a></li>
 <li><a href="org/apache/daffodil/japi/io/package-frame.html" target="packageFrame">org.apache.daffodil.japi.io</a></li>
 <li><a href="org/apache/daffodil/japi/logger/package-frame.html" target="packageFrame">org.apache.daffodil.japi.logger</a></li>
+<li><a href="org/apache/daffodil/udf/package-frame.html" target="packageFrame">org.apache.daffodil.udf</a></li>
+<li><a href="org/apache/daffodil/udf/exceptions/package-frame.html" target="packageFrame">org.apache.daffodil.udf.exceptions</a></li>
 </ul>
 </div>
 <p>&nbsp;</p>
diff --git a/content/docs/latest/javadoc/overview-summary.html b/content/docs/latest/javadoc/overview-summary.html
index a2b8817..1d419ab 100644
--- a/content/docs/latest/javadoc/overview-summary.html
+++ b/content/docs/latest/javadoc/overview-summary.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>Overview (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>Overview (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Overview (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="Overview (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -69,7 +68,7 @@
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
 <div class="header">
-<h1 class="title"><h1>Apache Daffodil (incubating) 2.7.0 Java API</h1></h1>
+<h1 class="title"><h1>Apache Daffodil (incubating) 3.0.0 Java API</h1></h1>
 </div>
 <div class="contentContainer">
 <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
@@ -110,6 +109,14 @@
 <div class="block">Provides the classes necessary to receive logging messages from Daffodil.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/daffodil/udf/package-summary.html">org.apache.daffodil.udf</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/daffodil/udf/exceptions/package-summary.html">org.apache.daffodil.udf.exceptions</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </div>
diff --git a/content/docs/latest/javadoc/overview-tree.html b/content/docs/latest/javadoc/overview-tree.html
index 4b8cdff..a7b5f43 100644
--- a/content/docs/latest/javadoc/overview-tree.html
+++ b/content/docs/latest/javadoc/overview-tree.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Class Hierarchy (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="Class Hierarchy (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -76,7 +75,9 @@
 <li><a href="org/apache/daffodil/japi/debugger/package-tree.html">org.apache.daffodil.japi.debugger</a>, </li>
 <li><a href="org/apache/daffodil/japi/infoset/package-tree.html">org.apache.daffodil.japi.infoset</a>, </li>
 <li><a href="org/apache/daffodil/japi/io/package-tree.html">org.apache.daffodil.japi.io</a>, </li>
-<li><a href="org/apache/daffodil/japi/logger/package-tree.html">org.apache.daffodil.japi.logger</a></li>
+<li><a href="org/apache/daffodil/japi/logger/package-tree.html">org.apache.daffodil.japi.logger</a>, </li>
+<li><a href="org/apache/daffodil/udf/package-tree.html">org.apache.daffodil.udf</a>, </li>
+<li><a href="org/apache/daffodil/udf/exceptions/package-tree.html">org.apache.daffodil.udf.exceptions</a></li>
 </ul>
 </div>
 <div class="contentContainer">
@@ -86,6 +87,8 @@
 <ul>
 <li type="circle">org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/Compiler.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Compiler</span></a></li>
 <li type="circle">org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/Daffodil.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">Daffodil</span></a></li>
+<li type="circle">org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilParseXMLReader.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DaffodilParseXMLReader</span></a> (implements org.xml.sax.XMLReader)</li>
+<li type="circle">org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseContentHandler.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DaffodilUnparseContentHandler</span></a> (implements org.xml.sax.ContentHandler)</li>
 <li type="circle">org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DataLocation.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DataLocation</span></a></li>
 <li type="circle">org.apache.daffodil.japi.debugger.<a href="org/apache/daffodil/japi/debugger/DebuggerRunner.html" title="class in org.apache.daffodil.japi.debugger"><span class="typeNameLink">DebuggerRunner</span></a>
 <ul>
@@ -133,16 +136,26 @@
 <li type="circle">org.apache.daffodil.japi.logger.<a href="org/apache/daffodil/japi/logger/NullLogWriter.html" title="class in org.apache.daffodil.japi.logger"><span class="typeNameLink">NullLogWriter</span></a></li>
 </ul>
 </li>
+<li type="circle">org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/ProcessorFactory.ExperimentalWrapper.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">ProcessorFactory.ExperimentalWrapper</span></a></li>
 <li type="circle">java.lang.Throwable (implements java.io.Serializable)
 <ul>
 <li type="circle">java.lang.Exception
 <ul>
 <li type="circle">org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/InvalidParserException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">InvalidParserException</span></a></li>
 <li type="circle">org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/InvalidUsageException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">InvalidUsageException</span></a></li>
+<li type="circle">org.xml.sax.SAXException
+<ul>
+<li type="circle">org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DaffodilUnhandledSAXException</span></a></li>
+<li type="circle">org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DaffodilUnparseErrorSAXException</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.daffodil.udf.exceptions.<a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" title="class in org.apache.daffodil.udf.exceptions"><span class="typeNameLink">UserDefinedFunctionFatalException</span></a></li>
+<li type="circle">org.apache.daffodil.udf.exceptions.<a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions"><span class="typeNameLink">UserDefinedFunctionProcessingError</span></a></li>
 </ul>
 </li>
 </ul>
 </li>
+<li type="circle">org.apache.daffodil.udf.<a href="org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf"><span class="typeNameLink">UserDefinedFunctionProvider</span></a></li>
 <li type="circle">org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/WithDiagnostics.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">WithDiagnostics</span></a> (implements scala.Serializable)
 <ul>
 <li type="circle">org.apache.daffodil.japi.<a href="org/apache/daffodil/japi/DataProcessor.html" title="class in org.apache.daffodil.japi"><span class="typeNameLink">DataProcessor</span></a> (implements scala.Serializable)</li>
@@ -154,6 +167,18 @@
 </ul>
 </li>
 </ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">java.io.Serializable
+<ul>
+<li type="circle">org.apache.daffodil.udf.<a href="org/apache/daffodil/udf/UserDefinedFunction.html" title="interface in org.apache.daffodil.udf"><span class="typeNameLink">UserDefinedFunction</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.daffodil.udf.<a href="org/apache/daffodil/udf/UserDefinedFunctionIdentification.html" title="annotation in org.apache.daffodil.udf"><span class="typeNameLink">UserDefinedFunctionIdentification</span></a> (implements java.lang.annotation.Annotation)</li>
+</ul>
 <h2 title="Enum Hierarchy">Enum Hierarchy</h2>
 <ul>
 <li type="circle">java.lang.Object
diff --git a/content/docs/latest/javadoc/package-list b/content/docs/latest/javadoc/package-list
index 9345f56..5327c77 100644
--- a/content/docs/latest/javadoc/package-list
+++ b/content/docs/latest/javadoc/package-list
@@ -3,3 +3,5 @@ org.apache.daffodil.japi.debugger
 org.apache.daffodil.japi.infoset
 org.apache.daffodil.japi.io
 org.apache.daffodil.japi.logger
+org.apache.daffodil.udf
+org.apache.daffodil.udf.exceptions
diff --git a/content/docs/latest/javadoc/serialized-form.html b/content/docs/latest/javadoc/serialized-form.html
index a7c531c..1ddc0a2 100644
--- a/content/docs/latest/javadoc/serialized-form.html
+++ b/content/docs/latest/javadoc/serialized-form.html
@@ -2,9 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_252) on Mon Jun 29 16:17:08 GMT 2020 -->
-<title>Serialized Form (Apache Daffodil (incubating) 2.7.0 Java API)</title>
-<meta name="date" content="2020-06-29">
+<!-- Generated by javadoc -->
+<title>Serialized Form (Apache Daffodil (incubating) 3.0.0 Java API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
 </head>
@@ -12,7 +11,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Serialized Form (Apache Daffodil (incubating) 2.7.0 Java API)";
+            parent.document.title="Serialized Form (Apache Daffodil (incubating) 3.0.0 Java API)";
         }
     }
     catch(err) {
@@ -76,6 +75,16 @@
 <li class="blockList">
 <h2 title="Package">Package&nbsp;org.apache.daffodil.japi</h2>
 <ul class="blockList">
+<li class="blockList"><a name="org.apache.daffodil.japi.DaffodilUnhandledSAXException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/daffodil/japi/DaffodilUnhandledSAXException.html" title="class in org.apache.daffodil.japi">org.apache.daffodil.japi.DaffodilUnhandledSAXException</a> extends org.xml.sax.SAXException implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.japi.DaffodilUnparseErrorSAXException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/daffodil/japi/DaffodilUnparseErrorSAXException.html" title="class in org.apache.daffodil.japi">org.apache.daffodil.japi.DaffodilUnparseErrorSAXException</a> extends org.xml.sax.SAXException implements Serializable</h3>
+</li>
 <li class="blockList"><a name="org.apache.daffodil.japi.DataProcessor">
 <!--   -->
 </a>
@@ -113,6 +122,282 @@
 </li>
 </ul>
 </li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.daffodil.udf</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.daffodil.udf.UserDefinedFunctionFatalErrorException">
+<!--   -->
+</a>
+<h3>Class org.apache.daffodil.udf.UserDefinedFunctionFatalErrorException extends org.apache.daffodil.exceptions.Abort implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>description</h4>
+<pre>java.lang.String description</pre>
+</li>
+<li class="blockList">
+<h4>cause</h4>
+<pre>java.lang.Throwable cause</pre>
+</li>
+<li class="blockList">
+<h4>udfOfInterest</h4>
+<pre>java.lang.String udfOfInterest</pre>
+</li>
+<li class="blockList">
+<h4>providerOfInterest</h4>
+<pre>java.lang.String providerOfInterest</pre>
+</li>
+<li class="blockListLast">
+<h4>classesOfInterest</h4>
+<pre>scala.collection.immutable.List&lt;A&gt; classesOfInterest</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.udf.UserDefinedFunctionFatalErrorException:D">
+<!--   -->
+</a>
+<h3>Class org.apache.daffodil.udf.UserDefinedFunctionFatalErrorException$ extends scala.runtime.AbstractFunction4&lt;java.lang.String,java.lang.Throwable,java.lang.String,java.lang.String,org.apache.daffodil.udf.UserDefinedFunctionFatalErrorException&gt; implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialization Methods</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>readResolve</h4>
+<pre>private&nbsp;java.lang.Object&nbsp;readResolve()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.udf.UserDefinedFunctionProcessingErrorException">
+<!--   -->
+</a>
+<h3>Class org.apache.daffodil.udf.UserDefinedFunctionProcessingErrorException extends org.apache.daffodil.processors.ProcessingError implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>schemaContext</h4>
+<pre>java.lang.Object schemaContext</pre>
+</li>
+<li class="blockListLast">
+<h4>dataContext</h4>
+<pre>java.lang.Object dataContext</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.udf.UserDefinedFunctionProcessingErrorException:D">
+<!--   -->
+</a>
+<h3>Class org.apache.daffodil.udf.UserDefinedFunctionProcessingErrorException$ extends scala.runtime.AbstractFunction5&lt;java.lang.String,org.apache.daffodil.util.Maybe&lt;org.apache.daffodil.exceptions.SchemaFileLocation&gt;,org.apache.daffodil.util.Maybe&lt;org.apache.daffodil.api.DataLocation&gt;,org.apache.daffodil.util.Maybe&lt;java.lang.Throwable&gt;,org.apache.daffodil.util.Maybe&lt;java.lang.String&gt;,org.apache.daffodil.udf.UserDefinedFunctionProcessingErrorException&gt; imple [...]
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialization Methods</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>readResolve</h4>
+<pre>private&nbsp;java.lang.Object&nbsp;readResolve()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.udf.UserDefinedFunctionService.EvaluateMethodInfo">
+<!--   -->
+</a>
+<h3>Class org.apache.daffodil.udf.UserDefinedFunctionService.EvaluateMethodInfo extends java.lang.Object implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluateMethod</h4>
+<pre>org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionMethod evaluateMethod</pre>
+</li>
+<li class="blockList">
+<h4>parameterTypes</h4>
+<pre>scala.collection.immutable.List&lt;A&gt; parameterTypes</pre>
+</li>
+<li class="blockListLast">
+<h4>returnType</h4>
+<pre>org.apache.daffodil.dpath.NodeInfo.Kind returnType</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.udf.UserDefinedFunctionService.EvaluateMethodInfo:D">
+<!--   -->
+</a>
+<h3>Class org.apache.daffodil.udf.UserDefinedFunctionService.EvaluateMethodInfo$ extends scala.runtime.AbstractFunction3&lt;org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionMethod,scala.collection.immutable.List&lt;org.apache.daffodil.dpath.NodeInfo.Kind&gt;,org.apache.daffodil.dpath.NodeInfo.Kind,org.apache.daffodil.udf.UserDefinedFunctionService.EvaluateMethodInfo&gt; implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialization Methods</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>readResolve</h4>
+<pre>private&nbsp;java.lang.Object&nbsp;readResolve()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionCallingInfo">
+<!--   -->
+</a>
+<h3>Class org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionCallingInfo extends java.lang.Object implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>udf</h4>
+<pre><a href="org/apache/daffodil/udf/UserDefinedFunction.html" title="interface in org.apache.daffodil.udf">UserDefinedFunction</a> udf</pre>
+</li>
+<li class="blockListLast">
+<h4>evalInfo</h4>
+<pre>org.apache.daffodil.udf.UserDefinedFunctionService.EvaluateMethodInfo evalInfo</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionCallingInfo:D">
+<!--   -->
+</a>
+<h3>Class org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionCallingInfo$ extends scala.runtime.AbstractFunction2&lt;<a href="org/apache/daffodil/udf/UserDefinedFunction.html" title="interface in org.apache.daffodil.udf">UserDefinedFunction</a>,org.apache.daffodil.udf.UserDefinedFunctionService.EvaluateMethodInfo,org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionCallingInfo&gt; implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialization Methods</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>readResolve</h4>
+<pre>private&nbsp;java.lang.Object&nbsp;readResolve()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionInfo">
+<!--   -->
+</a>
+<h3>Class org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionInfo extends java.lang.Object implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>udfClass</h4>
+<pre>java.lang.Class&lt;T&gt; udfClass</pre>
+</li>
+<li class="blockList">
+<h4>provider</h4>
+<pre><a href="org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf">UserDefinedFunctionProvider</a> provider</pre>
+</li>
+<li class="blockListLast">
+<h4>evaluateMethodInfo</h4>
+<pre>org.apache.daffodil.udf.UserDefinedFunctionService.EvaluateMethodInfo evaluateMethodInfo</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionInfo:D">
+<!--   -->
+</a>
+<h3>Class org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionInfo$ extends scala.runtime.AbstractFunction3&lt;java.lang.Class&lt;?&gt;,<a href="org/apache/daffodil/udf/UserDefinedFunctionProvider.html" title="class in org.apache.daffodil.udf">UserDefinedFunctionProvider</a>,org.apache.daffodil.udf.UserDefinedFunctionService.EvaluateMethodInfo,org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionInfo&gt; implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialization Methods</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>readResolve</h4>
+<pre>private&nbsp;java.lang.Object&nbsp;readResolve()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionMethod">
+<!--   -->
+</a>
+<h3>Class org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionMethod extends java.lang.Object implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialization Methods</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>readObject</h4>
+<pre>private&nbsp;void&nbsp;readObject(java.io.ObjectInputStream&nbsp;arg0)
+                 throws java.io.IOException,
+                        java.lang.ClassNotFoundException</pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code></dd>
+<dd><code>java.lang.ClassNotFoundException</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>decClass</h4>
+<pre>java.lang.Class&lt;T&gt; decClass</pre>
+</li>
+<li class="blockList">
+<h4>methodName</h4>
+<pre>java.lang.String methodName</pre>
+</li>
+<li class="blockListLast">
+<h4>paramTypes</h4>
+<pre>java.lang.Class&lt;T&gt;[] paramTypes</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionMethod:D">
+<!--   -->
+</a>
+<h3>Class org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionMethod$ extends scala.runtime.AbstractFunction3&lt;java.lang.Class&lt;?&gt;,java.lang.String,java.lang.Class&lt;?&gt;[],org.apache.daffodil.udf.UserDefinedFunctionService.UserDefinedFunctionMethod&gt; implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialization Methods</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>readResolve</h4>
+<pre>private&nbsp;java.lang.Object&nbsp;readResolve()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.daffodil.udf.exceptions</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.daffodil.udf.exceptions.UserDefinedFunctionFatalException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.html" title="class in org.apache.daffodil.udf.exceptions">org.apache.daffodil.udf.exceptions.UserDefinedFunctionFatalException</a> extends java.lang.Exception implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.daffodil.udf.exceptions.UserDefinedFunctionProcessingError">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.html" title="class in org.apache.daffodil.udf.exceptions">org.apache.daffodil.udf.exceptions.UserDefinedFunctionProcessingError</a> extends java.lang.Exception implements Serializable</h3>
+</li>
+</ul>
+</li>
 </ul>
 </div>
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
diff --git a/content/docs/latest/scaladoc/index.html b/content/docs/latest/scaladoc/index.html
index 646d1e1..522aa8d 100644
--- a/content/docs/latest/scaladoc/index.html
+++ b/content/docs/latest/scaladoc/index.html
@@ -3,9 +3,9 @@
         <head>
           <meta http-equiv="X-UA-Compatible" content="IE=edge" />
           <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
-          <title>Apache Daffodil (incubating) 2.7.0 Scala API </title>
-          <meta name="description" content="Apache Daffodil incubating 2.7.0 Scala API " />
-          <meta name="keywords" content="Apache Daffodil incubating 2.7.0 Scala API " />
+          <title>Apache Daffodil (incubating) 3.0.0 Scala API </title>
+          <meta name="description" content="Apache Daffodil incubating 3.0.0 Scala API " />
+          <meta name="keywords" content="Apache Daffodil incubating 3.0.0 Scala API " />
           <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
           
       
@@ -28,7 +28,7 @@
         </head>
         <body>
       <div id="search">
-        <span id="doc-title">Apache Daffodil (incubating) 2.7.0 Scala API<span id="doc-version"></span></span>
+        <span id="doc-title">Apache Daffodil (incubating) 3.0.0 Scala API<span id="doc-version"></span></span>
         <span class="close-results"><span class="left">&lt;</span> Back</span>
         <div id="textfilter">
           <span class="input">
@@ -68,7 +68,7 @@
         <span class="name">root</span>
       </span>
       
-      <p class="shortcomment cmt"><a href="org/apache/daffodil/sapi/index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><h4> Apache Daffodil (incubating) Scala API </h4><h5> Packages </h5><p><a href="org/apache/daffodil/sapi/index.html" class="exty [...]
+      <p class="shortcomment cmt">This is the documentation for the Apache Daffodil (incubating) Scala API.</p><div class="fullcomment"><div class="comment cmt"><p>This is the documentation for the Apache Daffodil (incubating) Scala API.</p><h5> Package structure </h5><p><a href="org/apache/daffodil/sapi/index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compil [...]
     </li><li name="_root_.org" visbl="pub" class="indented1 " data-isabs="false" fullComment="no" group="Ungrouped">
       <a id="org"></a><a id="org:org"></a>
       <span class="permalink">
@@ -113,7 +113,7 @@
       </h4>
 
       
-          <div id="comment" class="fullcommenttop"><div class="comment cmt"><h4> Apache Daffodil (incubating) Scala API </h4><h5> Packages </h5><p><a href="org/apache/daffodil/sapi/index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics</p><p><a href="org/apache/daffodil/sapi/logger/index.html" class="ex [...]
+          <div id="comment" class="fullcommenttop"><div class="comment cmt"><p>This is the documentation for the Apache Daffodil (incubating) Scala API.</p><h5> Package structure </h5><p><a href="org/apache/daffodil/sapi/index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics</p><p><a href="org/apache/da [...]
         
 
       
diff --git a/content/docs/latest/scaladoc/index.js b/content/docs/latest/scaladoc/index.js
index c62edf8..f3fe462 100644
--- a/content/docs/latest/scaladoc/index.js
+++ b/content/docs/latest/scaladoc/index.js
@@ -1 +1 @@
-Index.PACKAGES = {"org.apache.daffodil.sapi.logger" : [{"name" : "org.apache.daffodil.sapi.logger.ConsoleLogWriter", "shortDescription" : "LogWriter that writes log messages to stdout", "members_class" : [{"label" : "write", "tail" : "(level: LogLevel.Value, logID: String, msg: String): Unit", "member" : "org.apache.daffodil.sapi.logger.ConsoleLogWriter.write", "link" : "org\/apache\/daffodil\/sapi\/logger\/ConsoleLogWriter.html#write(level:org.apache.daffodil.sapi.logger.LogLevel.Value, [...]
\ No newline at end of file
+Index.PACKAGES = {"org.apache.daffodil.sapi.logger" : [{"name" : "org.apache.daffodil.sapi.logger.ConsoleLogWriter", "shortDescription" : "LogWriter that writes log messages to stdout", "members_class" : [{"label" : "write", "tail" : "(level: LogLevel.Value, logID: String, msg: String): Unit", "member" : "org.apache.daffodil.sapi.logger.ConsoleLogWriter.write", "link" : "org\/apache\/daffodil\/sapi\/logger\/ConsoleLogWriter.html#write(level:org.apache.daffodil.sapi.logger.LogLevel.Value, [...]
\ No newline at end of file
diff --git a/content/docs/latest/scaladoc/org/apache/daffodil/index.html b/content/docs/latest/scaladoc/org/apache/daffodil/index.html
index b7ccb57..ae2a3b8 100644
--- a/content/docs/latest/scaladoc/org/apache/daffodil/index.html
+++ b/content/docs/latest/scaladoc/org/apache/daffodil/index.html
@@ -3,9 +3,9 @@
         <head>
           <meta http-equiv="X-UA-Compatible" content="IE=edge" />
           <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
-          <title>Apache Daffodil (incubating) 2.7.0 Scala API  - org.apache.daffodil</title>
-          <meta name="description" content="Apache Daffodil incubating 2.7.0 Scala API - org.apache.daffodil" />
-          <meta name="keywords" content="Apache Daffodil incubating 2.7.0 Scala API org.apache.daffodil" />
+          <title>Apache Daffodil (incubating) 3.0.0 Scala API  - org.apache.daffodil</title>
+          <meta name="description" content="Apache Daffodil incubating 3.0.0 Scala API - org.apache.daffodil" />
+          <meta name="keywords" content="Apache Daffodil incubating 3.0.0 Scala API org.apache.daffodil" />
           <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
           
       
@@ -28,7 +28,7 @@
         </head>
         <body>
       <div id="search">
-        <span id="doc-title">Apache Daffodil (incubating) 2.7.0 Scala API<span id="doc-version"></span></span>
+        <span id="doc-title">Apache Daffodil (incubating) 3.0.0 Scala API<span id="doc-version"></span></span>
         <span class="close-results"><span class="left">&lt;</span> Back</span>
         <div id="textfilter">
           <span class="input">
@@ -65,10 +65,10 @@
         <span class="kind">package</span>
       </span>
       <span class="symbol">
-        <a title="org.apache.daffodil.sapi - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics" href="../../../index.html"><span class="name">root</span></a>
+        <a title="This is the documentation for the Apache Daffodil (incubating) Scala API." href="../../../index.html"><span class="name">root</span></a>
       </span>
       
-      <p class="shortcomment cmt"><a href="sapi/index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><h4> Apache Daffodil (incubating) Scala API </h4><h5> Packages </h5><p><a href="sapi/index.html" class="extype" name="org.apache.daffodil.sapi">org. [...]
+      <p class="shortcomment cmt">This is the documentation for the Apache Daffodil (incubating) Scala API.</p><div class="fullcomment"><div class="comment cmt"><p>This is the documentation for the Apache Daffodil (incubating) Scala API.</p><h5> Package structure </h5><p><a href="sapi/index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retr [...]
     </li><li name="_root_.org" visbl="pub" class="indented1 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="org"></a><a id="org:org"></a>
       <span class="permalink">
@@ -137,29 +137,50 @@ unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><p>Provides the classes necessary to compile DFDL schemas, parse and
 unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><h5> Overview </h5><p>The <a href="sapi/Daffodil$.html" class="extype" name="org.apache.daffodil.sapi.Daffodil">Daffodil</a> object is a factory object to create a <a href="sapi/Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a>. The
-<a href="sapi/Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compils a provided DFDL schema into a
+<a href="sapi/Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compile a provided DFDL schema into a
 <a href="sapi/ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, which creates a <a href="sapi/DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> c = Daffodil.compiler()
 <span class="kw">val</span> pf = c.compileFile(file)
 <span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)</pre><p>The <a href="sapi/DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> provides the necessary functions to parse and unparse
 data, returning a <a href="sapi/ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> or <a href="sapi/UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>, respectively. These
 contain information about the parse/unparse, such as whether or not the
-processing succeeded any diagnostic information.</p><h6> Parse </h6><p>The <a href="sapi/DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form
-of a <a href="sapi/io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a> and an <a href="sapi/infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
-to determine the output representation of the infoset (e.g. Scala XML Nodes,
-JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+processing succeeded with any diagnostic information.</p><p>The <a href="sapi/DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> also provides two functions that can be used to perform parsing/unparsing
+via the SAX API. The first creates a <a href="sapi/DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> which is used for parsing, and the
+second creates a <a href="sapi/DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> which is used for unparsing.</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(output)</pre><p>The <a href="sapi/DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> has several methods that allow one to set properties and handlers
+(such as ContentHandlers or ErrorHandlers) for the reader. One can use any
+contentHandler/errorHandler as long as they extend the org.xml.sax.ContentHandler and
+org.xml.sax.ErrorHandler interfaces respectively. One can also set properties for the
+<a href="sapi/DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using <a href="sapi/DaffodilParseXMLReader.html#setProperty(name:String,value:AnyRef):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setProperty">DaffodilParseXMLReader.setProperty</a>.</p><p>The following properties can be set as follows:</p><p><i>The constants below have literal values starting with
+"urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:" and ending with "BlobDirectory",
+"BlobPrefix" and "BlobSuffix" respectively.</i></p><pre>xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBDIRECTORY,
+ Paths.get(System.getProperty(<span class="lit">"java.io.tmpdir"</span>))) <span class="cmt">// value type: java.nio.file.Paths</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBPREFIX, <span class="lit">"daffodil-sax-"</span>) <span class="cmt">// value type String</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBSUFFIX, <span class="lit">".bin"</span>) <span class="cmt">// value type String</span></pre><p>The properties can be retrieved using the same variables with
+<a href="sapi/DaffodilParseXMLReader.html#getProperty(name:String):AnyRef" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#getProperty">DaffodilParseXMLReader.getProperty</a> and casting
+to the appropriate type as listed above.</p><p>The following handlers can be set as follows:</p><pre>xmlReader.setContentHandler(contentHandler)
+xmlReader.setErrorHandler(errorHandler)</pre><p>The handlers above must implement the following interfaces respectively:</p><pre>org.xml.sax.ContentHandler
+org.xml.sax.ErrorHandler</pre><p>The <a href="sapi/ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> can be found as a property within the <a href="sapi/DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using this
+uri: &quot;urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:ParseResult&quot; or
+<a href="sapi/DaffodilParseXMLReader$.html#DAFFODIL_SAX_URN_PARSERESULT:String" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#DAFFODIL_SAX_URN_PARSERESULT">DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT</a></p><p>In order for a successful unparse to happen, the SAX API requires the
+unparse to be kicked off by a parse call to any org.xml.sax.XMLReader implementation that has the
+<a href="sapi/DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> registered as its content handler. To retrieve the <a href="sapi/UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>,
+one can use <a href="sapi/DaffodilUnparseContentHandler.html#getUnparseResult:org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler#getUnparseResult">DaffodilUnparseContentHandler.getUnparseResult</a> once the XMLReader.parse run is
+complete.</p><h6> Parse </h6><h6> Dataprocessor Parse </h6><p>The <a href="sapi/DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form of a <a href="sapi/io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffo [...]
+the output representation of the infoset (e.g. Scala XML Nodes, JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(data)
 <span class="kw">val</span> pr = dp.parse(is, scalaOutputter)
-<span class="kw">val</span> node = scalaOutputter.getResult</pre><p>The <a href="sapi/DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method is thread-safe and may be called multiple
-times without the need to create other data processors. However,
-<a href="sapi/infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>'s are not thread safe, requiring a unique instance per
-thread. An <a href="sapi/infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> should call <a href="sapi/infoset/InfosetOutputter.html#reset():Unit" class="extmbr" name="org.apache.daffodil.sapi.infoset.InfosetOutputter#reset">InfosetOutputter.reset</a> before
-reuse (or a new one should be allocated). For example:</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+<span class="kw">val</span> node = scalaOutputter.getResult</pre><p>The <a href="sapi/DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method is thread-safe and may be called multiple times without the need to
+create other data processors. However, <a href="sapi/infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>'s are not
+thread safe, requiring a unique instance per thread. An <a href="sapi/infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
+should call <a href="sapi/infoset/InfosetOutputter.html#reset():Unit" class="extmbr" name="org.apache.daffodil.sapi.infoset.InfosetOutputter#reset">InfosetOutputter.reset</a> before reuse (or a new one
+should be allocated). For example:</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 files.foreach { f <span class="kw">=&gt;</span> {
   outputter.reset
   <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(<span class="kw">new</span> FileInputStream(f))
   <span class="kw">val</span> pr = dp.parse(is, scalaOutputter)
   <span class="kw">val</span> node = scalaOutputter.getResult
-}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
+}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
 <span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 <span class="kw">val</span> keepParsing = <span class="kw">true</span>
 <span class="kw">while</span> (keepParsing) {
@@ -167,11 +188,70 @@ files.foreach { f <span class="kw">=&gt;</span> {
   <span class="kw">val</span> pr = dp.parse(is, jdomOutputter)
   ...
   keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError()
-}</pre><h6> Unparse </h6><p>The same <a href="sapi/DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> used for parse can be used to unparse an infoset
-via the <a href="sapi/DataProcessor.html#unparse(input:org.apache.daffodil.sapi.infoset.InfosetInputter,output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#unparse">DataProcessor.unparse</a> method. An <a href="sapi/infoset/InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a>
-provides the infoset to unparse, with the unparsed data written to the
-provided java.nio.channels.WritableByteChannel. For example:</p><pre><span class="kw">val</span> inputter = <span class="kw">new</span> ScalaXMLInfosetInputter(node)
-<span class="kw">val</span> ur = dp.unparse(inputter, wbc)</pre><h5> Failures and Diagnostics </h5><p>It is possible that failures could occur during the creation of the
+}</pre><h6> SAX Parse </h6><p>The <a href="sapi/DaffodilParseXMLReader.html#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse">DaffodilParseXMLReader.parse</a> method accepts input data to parse in the form of a
+<a href="sapi/io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a>. The output representation of the
+infoset, as well as how parse errors are handled, are dependent on the content handler and the
+error handler provided to the <a href="sapi/DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a>. For example, the org.jdom2.input.sax.SAXHandler
+provides a JDOM representation, whereas other ContentHandlers may output directly to a
+java.io.OutputStream or java.io.Writer.</p><pre><span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+<span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(data)
+xmlReader.parse(is)
+<span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+<span class="kw">val</span> doc = saxHandler.getDocument</pre><p>The <a href="sapi/DaffodilParseXMLReader.html#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse">DaffodilParseXMLReader.parse</a> method is not thread-safe and may only be called again/reused once
+a parse operation is completed. This can be done multiple times without the need to create new
+DaffodilParseXMLReaders, ContentHandlers or ErrorHandlers. It might be necessary to reset whatever
+ContentHandler is used (or allocate a new one). A thread-safe implementation would require unique
+instances of the DaffodilParseXMLReader and its components. For example:</p><pre><span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+files.foreach { f <span class="kw">=&gt;</span> {
+  contentHandler.reset
+  <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(<span class="kw">new</span> FileInputStream(f))
+  xmlReader.parse(is)
+  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+  <span class="kw">val</span> doc = saxHandler.getDocument
+}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
+<span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+<span class="kw">val</span> keepParsing = <span class="kw">true</span>
+<span class="kw">while</span> (keepParsing) {
+  contentHandler.reset()
+  xmlReader.parse(is)
+  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+  ...
+  keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError()
+}</pre><h6> Unparse </h6><h6> Dataprocessor Unparse </h6><p>The same <a href="sapi/DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> used for parse can be used to unparse an infoset
+via the <a href="sapi/DataProcessor.html#unparse(input:org.apache.daffodil.sapi.infoset.InfosetInputter,output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#unparse">DataProcessor.unparse</a> method. An
+<a href="sapi/infoset/InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> provides the infoset to unparse, with the unparsed
+data written to the provided java.nio.channels.WritableByteChannel. For example:</p><pre><span class="kw">val</span> inputter = <span class="kw">new</span> ScalaXMLInfosetInputter(node)
+<span class="kw">val</span> ur = dp.unparse(inputter, wbc)</pre><h6> SAX Unparse </h6><p>In order to kick off an unparse via the SAX API, one must register the <a href="sapi/DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a>
+as the contentHandler for an XMLReader implementation. The call to the
+<a href="sapi/DataProcessor.html#newContentHandlerInstance(output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.DaffodilUnparseContentHandler" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#newContentHandlerInstance">DataProcessor.newContentHandlerInstance</a> method
+must be provided with the java.nio.channels.WritableByteChannel, where the unparsed data ought to
+be written to. Any XMLReader implementation is permissible, as long as they have XML
+Namespace support.</p><pre><span class="kw">val</span> is = <span class="kw">new</span> ByteArrayInputStream(data)
+<span class="kw">val</span> os = <span class="kw">new</span> ByteArrayOutputStream()
+<span class="kw">val</span> wbc = java.nio.channels.Channels.newChannel(os)
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(wbc)
+<span class="kw">val</span> xmlReader = SAXParserFactory.newInstance.newSAXParser.getXMLReader
+xmlReader.setContentHandler(unparseContentHandler)
+<span class="kw">try</span> {
+ xmlReader.parse(is)
+} <span class="kw">catch</span> {
+ <span class="kw">case</span> _: DaffodilUnparseErrorSAXException <span class="kw">=&gt;</span> ...
+ <span class="kw">case</span> _: DaffodilUnhandledSAXException <span class="kw">=&gt;</span> ...
+}</pre><p>The call to the XMLReader.parse method must be wrapped in a try/catch, as <a href="sapi/DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a>
+relies on throwing an exception to end processing in the case of anyerrors/failures.
+There are two kinds of errors to expect: <a href="sapi/DaffodilUnparseErrorSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseErrorSAXException">DaffodilUnparseErrorSAXException</a>, for the case when
+the <a href="sapi/UnparseResult.html#isError():Boolean" class="extmbr" name="org.apache.daffodil.sapi.UnparseResult#isError">UnparseResult.isError</a>, and <a href="sapi/DaffodilUnhandledSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException">DaffodilUnhandledSAXException</a>, for any other errors.</p><p>In the case of an <a href="sapi/DaffodilUnhandledSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException">D [...]
+will return null.</p><pre><span class="kw">try</span> {
+  xmlReader.parse(<span class="kw">new</span> InputSource(is))
+} <span class="kw">catch</span> {
+  <span class="kw">case</span> _: DaffodilUnhandledSAXException <span class="kw">=&gt;</span> ...
+  <span class="kw">case</span> _: DaffodilUnparseErrorSAXException <span class="kw">=&gt;</span> ...
+}
+<span class="kw">val</span> ur = unparseContentHandler.getUnparseResult</pre><h5> Failures and Diagnostics </h5><p>It is possible that failures could occur during the creation of the
 <a href="sapi/ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, <a href="sapi/DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>, or <a href="sapi/ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a>. However, rather than
 throwing an exception on error (e.g. invalid DFDL schema, parse
 error, etc), these classes extend <a href="sapi/WithDiagnostics.html" class="extype" name="org.apache.daffodil.sapi.WithDiagnostics">WithDiagnostics</a>, which is used to
@@ -188,8 +268,26 @@ determine if an error occurred, and any diagnostic information (see
 For example, when starting up, it may be quicker to reload an
 already compiled parser than to compile it from scratch. To save a
 <a href="sapi/DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)
-dp.save(saveFile);</pre><p>And to restore a saved <a href="sapi/DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = Daffodil.reload(saveFile);
-<span class="kw">val</span> pr = dp.parse(data, inputter);</pre></div></div>
+dp.save(saveFile);</pre><p>And to restore a saved <a href="sapi/DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = Daffodil.reload(saveFile);</pre><p>And use like below:</p><pre><span class="kw">val</span> pr = dp.parse(data);</pre><p>or</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+... <span class="cmt">// setting appropriate handlers</span>
+xmlReader.parse(data)
+<span class="kw">val</span> pr = xmlReader.getProperty(<span class="lit">"...ParseResult"</span>)</pre></div></div>
+    </li><li name="org.apache.daffodil.udf" visbl="pub" class="indented4 " data-isabs="false" fullComment="no" group="Ungrouped">
+      <a id="udf"></a><a id="udf:udf"></a>
+      <span class="permalink">
+      <a href="../../../org/apache/daffodil/udf/index.html" title="Permalink">
+        <i class="material-icons"></i>
+      </a>
+    </span>
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">package</span>
+      </span>
+      <span class="symbol">
+        <a title="" href="udf/index.html"><span class="name">udf</span></a>
+      </span>
+      
+      
     </li>
               </ul>
             </div>
diff --git a/content/docs/latest/scaladoc/org/apache/daffodil/sapi/Compiler.html b/content/docs/latest/scaladoc/org/apache/daffodil/sapi/Compiler.html
index f3edbb7..abe54a8 100644
--- a/content/docs/latest/scaladoc/org/apache/daffodil/sapi/Compiler.html
+++ b/content/docs/latest/scaladoc/org/apache/daffodil/sapi/Compiler.html
@@ -3,9 +3,9 @@
         <head>
           <meta http-equiv="X-UA-Compatible" content="IE=edge" />
           <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
-          <title>Apache Daffodil (incubating) 2.7.0 Scala API  - org.apache.daffodil.sapi.Compiler</title>
-          <meta name="description" content="Apache Daffodil incubating 2.7.0 Scala API - org.apache.daffodil.sapi.Compiler" />
-          <meta name="keywords" content="Apache Daffodil incubating 2.7.0 Scala API org.apache.daffodil.sapi.Compiler" />
+          <title>Apache Daffodil (incubating) 3.0.0 Scala API  - org.apache.daffodil.sapi.Compiler</title>
+          <meta name="description" content="Apache Daffodil incubating 3.0.0 Scala API - org.apache.daffodil.sapi.Compiler" />
+          <meta name="keywords" content="Apache Daffodil incubating 3.0.0 Scala API org.apache.daffodil.sapi.Compiler" />
           <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
           
       
@@ -28,7 +28,7 @@
         </head>
         <body>
       <div id="search">
-        <span id="doc-title">Apache Daffodil (incubating) 2.7.0 Scala API<span id="doc-version"></span></span>
+        <span id="doc-title">Apache Daffodil (incubating) 3.0.0 Scala API<span id="doc-version"></span></span>
         <span class="close-results"><span class="left">&lt;</span> Back</span>
         <div id="textfilter">
           <span class="input">
@@ -65,10 +65,10 @@
         <span class="kind">package</span>
       </span>
       <span class="symbol">
-        <a title="org.apache.daffodil.sapi - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics" href="../../../../index.html"><span class="name">root</span></a>
+        <a title="This is the documentation for the Apache Daffodil (incubating) Scala API." href="../../../../index.html"><span class="name">root</span></a>
       </span>
       
-      <p class="shortcomment cmt"><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><h4> Apache Daffodil (incubating) Scala API </h4><h5> Packages </h5><p><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daf [...]
+      <p class="shortcomment cmt">This is the documentation for the Apache Daffodil (incubating) Scala API.</p><div class="fullcomment"><div class="comment cmt"><p>This is the documentation for the Apache Daffodil (incubating) Scala API.</p><h5> Package structure </h5><p><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve  [...]
     </li><li name="_root_.org" visbl="pub" class="indented1 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="org"></a><a id="org:org"></a>
       <span class="permalink">
@@ -137,29 +137,50 @@ unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><p>Provides the classes necessary to compile DFDL schemas, parse and
 unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><h5> Overview </h5><p>The <a href="Daffodil$.html" class="extype" name="org.apache.daffodil.sapi.Daffodil">Daffodil</a> object is a factory object to create a <a href="" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a>. The
-<a href="" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compils a provided DFDL schema into a
+<a href="" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compile a provided DFDL schema into a
 <a href="ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, which creates a <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> c = Daffodil.compiler()
 <span class="kw">val</span> pf = c.compileFile(file)
 <span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)</pre><p>The <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> provides the necessary functions to parse and unparse
 data, returning a <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> or <a href="UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>, respectively. These
 contain information about the parse/unparse, such as whether or not the
-processing succeeded any diagnostic information.</p><h6> Parse </h6><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form
-of a <a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a> and an <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
-to determine the output representation of the infoset (e.g. Scala XML Nodes,
-JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+processing succeeded with any diagnostic information.</p><p>The <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> also provides two functions that can be used to perform parsing/unparsing
+via the SAX API. The first creates a <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> which is used for parsing, and the
+second creates a <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> which is used for unparsing.</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(output)</pre><p>The <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> has several methods that allow one to set properties and handlers
+(such as ContentHandlers or ErrorHandlers) for the reader. One can use any
+contentHandler/errorHandler as long as they extend the org.xml.sax.ContentHandler and
+org.xml.sax.ErrorHandler interfaces respectively. One can also set properties for the
+<a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using <a href="DaffodilParseXMLReader.html#setProperty(name:String,value:AnyRef):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setProperty">DaffodilParseXMLReader.setProperty</a>.</p><p>The following properties can be set as follows:</p><p><i>The constants below have literal values starting with
+"urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:" and ending with "BlobDirectory",
+"BlobPrefix" and "BlobSuffix" respectively.</i></p><pre>xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBDIRECTORY,
+ Paths.get(System.getProperty(<span class="lit">"java.io.tmpdir"</span>))) <span class="cmt">// value type: java.nio.file.Paths</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBPREFIX, <span class="lit">"daffodil-sax-"</span>) <span class="cmt">// value type String</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBSUFFIX, <span class="lit">".bin"</span>) <span class="cmt">// value type String</span></pre><p>The properties can be retrieved using the same variables with
+<a href="DaffodilParseXMLReader.html#getProperty(name:String):AnyRef" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#getProperty">DaffodilParseXMLReader.getProperty</a> and casting
+to the appropriate type as listed above.</p><p>The following handlers can be set as follows:</p><pre>xmlReader.setContentHandler(contentHandler)
+xmlReader.setErrorHandler(errorHandler)</pre><p>The handlers above must implement the following interfaces respectively:</p><pre>org.xml.sax.ContentHandler
+org.xml.sax.ErrorHandler</pre><p>The <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> can be found as a property within the <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using this
+uri: &quot;urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:ParseResult&quot; or
+<a href="DaffodilParseXMLReader$.html#DAFFODIL_SAX_URN_PARSERESULT:String" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#DAFFODIL_SAX_URN_PARSERESULT">DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT</a></p><p>In order for a successful unparse to happen, the SAX API requires the
+unparse to be kicked off by a parse call to any org.xml.sax.XMLReader implementation that has the
+<a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> registered as its content handler. To retrieve the <a href="UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>,
+one can use <a href="DaffodilUnparseContentHandler.html#getUnparseResult:org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler#getUnparseResult">DaffodilUnparseContentHandler.getUnparseResult</a> once the XMLReader.parse run is
+complete.</p><h6> Parse </h6><h6> Dataprocessor Parse </h6><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form of a <a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.i [...]
+the output representation of the infoset (e.g. Scala XML Nodes, JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(data)
 <span class="kw">val</span> pr = dp.parse(is, scalaOutputter)
-<span class="kw">val</span> node = scalaOutputter.getResult</pre><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method is thread-safe and may be called multiple
-times without the need to create other data processors. However,
-<a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>'s are not thread safe, requiring a unique instance per
-thread. An <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> should call <a href="infoset/InfosetOutputter.html#reset():Unit" class="extmbr" name="org.apache.daffodil.sapi.infoset.InfosetOutputter#reset">InfosetOutputter.reset</a> before
-reuse (or a new one should be allocated). For example:</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+<span class="kw">val</span> node = scalaOutputter.getResult</pre><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method is thread-safe and may be called multiple times without the need to
+create other data processors. However, <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>'s are not
+thread safe, requiring a unique instance per thread. An <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
+should call <a href="infoset/InfosetOutputter.html#reset():Unit" class="extmbr" name="org.apache.daffodil.sapi.infoset.InfosetOutputter#reset">InfosetOutputter.reset</a> before reuse (or a new one
+should be allocated). For example:</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 files.foreach { f <span class="kw">=&gt;</span> {
   outputter.reset
   <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(<span class="kw">new</span> FileInputStream(f))
   <span class="kw">val</span> pr = dp.parse(is, scalaOutputter)
   <span class="kw">val</span> node = scalaOutputter.getResult
-}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
+}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
 <span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 <span class="kw">val</span> keepParsing = <span class="kw">true</span>
 <span class="kw">while</span> (keepParsing) {
@@ -167,11 +188,70 @@ files.foreach { f <span class="kw">=&gt;</span> {
   <span class="kw">val</span> pr = dp.parse(is, jdomOutputter)
   ...
   keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError()
-}</pre><h6> Unparse </h6><p>The same <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> used for parse can be used to unparse an infoset
-via the <a href="DataProcessor.html#unparse(input:org.apache.daffodil.sapi.infoset.InfosetInputter,output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#unparse">DataProcessor.unparse</a> method. An <a href="infoset/InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a>
-provides the infoset to unparse, with the unparsed data written to the
-provided java.nio.channels.WritableByteChannel. For example:</p><pre><span class="kw">val</span> inputter = <span class="kw">new</span> ScalaXMLInfosetInputter(node)
-<span class="kw">val</span> ur = dp.unparse(inputter, wbc)</pre><h5> Failures and Diagnostics </h5><p>It is possible that failures could occur during the creation of the
+}</pre><h6> SAX Parse </h6><p>The <a href="DaffodilParseXMLReader.html#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse">DaffodilParseXMLReader.parse</a> method accepts input data to parse in the form of a
+<a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a>. The output representation of the
+infoset, as well as how parse errors are handled, are dependent on the content handler and the
+error handler provided to the <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a>. For example, the org.jdom2.input.sax.SAXHandler
+provides a JDOM representation, whereas other ContentHandlers may output directly to a
+java.io.OutputStream or java.io.Writer.</p><pre><span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+<span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(data)
+xmlReader.parse(is)
+<span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+<span class="kw">val</span> doc = saxHandler.getDocument</pre><p>The <a href="DaffodilParseXMLReader.html#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse">DaffodilParseXMLReader.parse</a> method is not thread-safe and may only be called again/reused once
+a parse operation is completed. This can be done multiple times without the need to create new
+DaffodilParseXMLReaders, ContentHandlers or ErrorHandlers. It might be necessary to reset whatever
+ContentHandler is used (or allocate a new one). A thread-safe implementation would require unique
+instances of the DaffodilParseXMLReader and its components. For example:</p><pre><span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+files.foreach { f <span class="kw">=&gt;</span> {
+  contentHandler.reset
+  <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(<span class="kw">new</span> FileInputStream(f))
+  xmlReader.parse(is)
+  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+  <span class="kw">val</span> doc = saxHandler.getDocument
+}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
+<span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+<span class="kw">val</span> keepParsing = <span class="kw">true</span>
+<span class="kw">while</span> (keepParsing) {
+  contentHandler.reset()
+  xmlReader.parse(is)
+  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+  ...
+  keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError()
+}</pre><h6> Unparse </h6><h6> Dataprocessor Unparse </h6><p>The same <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> used for parse can be used to unparse an infoset
+via the <a href="DataProcessor.html#unparse(input:org.apache.daffodil.sapi.infoset.InfosetInputter,output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#unparse">DataProcessor.unparse</a> method. An
+<a href="infoset/InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> provides the infoset to unparse, with the unparsed
+data written to the provided java.nio.channels.WritableByteChannel. For example:</p><pre><span class="kw">val</span> inputter = <span class="kw">new</span> ScalaXMLInfosetInputter(node)
+<span class="kw">val</span> ur = dp.unparse(inputter, wbc)</pre><h6> SAX Unparse </h6><p>In order to kick off an unparse via the SAX API, one must register the <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a>
+as the contentHandler for an XMLReader implementation. The call to the
+<a href="DataProcessor.html#newContentHandlerInstance(output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.DaffodilUnparseContentHandler" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#newContentHandlerInstance">DataProcessor.newContentHandlerInstance</a> method
+must be provided with the java.nio.channels.WritableByteChannel, where the unparsed data ought to
+be written to. Any XMLReader implementation is permissible, as long as they have XML
+Namespace support.</p><pre><span class="kw">val</span> is = <span class="kw">new</span> ByteArrayInputStream(data)
+<span class="kw">val</span> os = <span class="kw">new</span> ByteArrayOutputStream()
+<span class="kw">val</span> wbc = java.nio.channels.Channels.newChannel(os)
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(wbc)
+<span class="kw">val</span> xmlReader = SAXParserFactory.newInstance.newSAXParser.getXMLReader
+xmlReader.setContentHandler(unparseContentHandler)
+<span class="kw">try</span> {
+ xmlReader.parse(is)
+} <span class="kw">catch</span> {
+ <span class="kw">case</span> _: DaffodilUnparseErrorSAXException <span class="kw">=&gt;</span> ...
+ <span class="kw">case</span> _: DaffodilUnhandledSAXException <span class="kw">=&gt;</span> ...
+}</pre><p>The call to the XMLReader.parse method must be wrapped in a try/catch, as <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a>
+relies on throwing an exception to end processing in the case of anyerrors/failures.
+There are two kinds of errors to expect: <a href="DaffodilUnparseErrorSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseErrorSAXException">DaffodilUnparseErrorSAXException</a>, for the case when
+the <a href="UnparseResult.html#isError():Boolean" class="extmbr" name="org.apache.daffodil.sapi.UnparseResult#isError">UnparseResult.isError</a>, and <a href="DaffodilUnhandledSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException">DaffodilUnhandledSAXException</a>, for any other errors.</p><p>In the case of an <a href="DaffodilUnhandledSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException">DaffodilUnhandle [...]
+will return null.</p><pre><span class="kw">try</span> {
+  xmlReader.parse(<span class="kw">new</span> InputSource(is))
+} <span class="kw">catch</span> {
+  <span class="kw">case</span> _: DaffodilUnhandledSAXException <span class="kw">=&gt;</span> ...
+  <span class="kw">case</span> _: DaffodilUnparseErrorSAXException <span class="kw">=&gt;</span> ...
+}
+<span class="kw">val</span> ur = unparseContentHandler.getUnparseResult</pre><h5> Failures and Diagnostics </h5><p>It is possible that failures could occur during the creation of the
 <a href="ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>, or <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a>. However, rather than
 throwing an exception on error (e.g. invalid DFDL schema, parse
 error, etc), these classes extend <a href="WithDiagnostics.html" class="extype" name="org.apache.daffodil.sapi.WithDiagnostics">WithDiagnostics</a>, which is used to
@@ -188,8 +268,10 @@ determine if an error occurred, and any diagnostic information (see
 For example, when starting up, it may be quicker to reload an
 already compiled parser than to compile it from scratch. To save a
 <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)
-dp.save(saveFile);</pre><p>And to restore a saved <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = Daffodil.reload(saveFile);
-<span class="kw">val</span> pr = dp.parse(data, inputter);</pre></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a></dd></dl></div>
+dp.save(saveFile);</pre><p>And to restore a saved <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = Daffodil.reload(saveFile);</pre><p>And use like below:</p><pre><span class="kw">val</span> pr = dp.parse(data);</pre><p>or</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+... <span class="cmt">// setting appropriate handlers</span>
+xmlReader.parse(data)
+<span class="kw">val</span> pr = xmlReader.getProperty(<span class="lit">"...ParseResult"</span>)</pre></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a></dd></dl></div>
     </li><li name="org.apache.daffodil.sapi.debugger" visbl="pub" class="indented5 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="debugger"></a><a id="debugger:debugger"></a>
       <span class="permalink">
@@ -277,6 +359,22 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                         <a class="object" href="Daffodil$.html" title="Factory object to create a Compiler and set global configurations"></a>
                         <a href="Daffodil$.html" title="Factory object to create a Compiler and set global configurations">Daffodil</a>
                       </li><li class="current-entities indented4">
+                        <a class="object" href="DaffodilParseXMLReader$.html" title="The full URIs needed for setting/getting properties for the DaffodilParseXMLReader"></a>
+                        <a class="class" href="DaffodilParseXMLReader.html" title="SAX Method of parsing schema and getting the DFDL Infoset via designated org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface"></a>
+                        <a href="DaffodilParseXMLReader.html" title="SAX Method of parsing schema and getting the DFDL Infoset via designated org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface">DaffodilParseXMLReader</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnhandledSAXException.html" title="This exception will be thrown when an unexpected error occurs during the SAX unparse"></a>
+                        <a href="DaffodilUnhandledSAXException.html" title="This exception will be thrown when an unexpected error occurs during the SAX unparse">DaffodilUnhandledSAXException</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnparseContentHandler.html" title="Accepts SAX callback events from any SAX XMLReader for unparsing"></a>
+                        <a href="DaffodilUnparseContentHandler.html" title="Accepts SAX callback events from any SAX XMLReader for unparsing">DaffodilUnparseContentHandler</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnparseErrorSAXException.html" title="This exception will be thrown when unparseResult.isError returns true during a SAX Unparse"></a>
+                        <a href="DaffodilUnparseErrorSAXException.html" title="This exception will be thrown when unparseResult.isError returns true during a SAX Unparse">DaffodilUnparseErrorSAXException</a>
+                      </li><li class="current-entities indented4">
                         <span class="separator"></span>
                         <a class="class" href="DataLocation.html" title="Information related to a location in data"></a>
                         <a href="DataLocation.html" title="Information related to a location in data">DataLocation</a>
diff --git a/content/docs/latest/scaladoc/org/apache/daffodil/sapi/Daffodil$.html b/content/docs/latest/scaladoc/org/apache/daffodil/sapi/Daffodil$.html
index ffe9eb8..3fbdd1b 100644
--- a/content/docs/latest/scaladoc/org/apache/daffodil/sapi/Daffodil$.html
+++ b/content/docs/latest/scaladoc/org/apache/daffodil/sapi/Daffodil$.html
@@ -3,9 +3,9 @@
         <head>
           <meta http-equiv="X-UA-Compatible" content="IE=edge" />
           <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
-          <title>Apache Daffodil (incubating) 2.7.0 Scala API  - org.apache.daffodil.sapi.Daffodil</title>
-          <meta name="description" content="Apache Daffodil incubating 2.7.0 Scala API - org.apache.daffodil.sapi.Daffodil" />
-          <meta name="keywords" content="Apache Daffodil incubating 2.7.0 Scala API org.apache.daffodil.sapi.Daffodil" />
+          <title>Apache Daffodil (incubating) 3.0.0 Scala API  - org.apache.daffodil.sapi.Daffodil</title>
+          <meta name="description" content="Apache Daffodil incubating 3.0.0 Scala API - org.apache.daffodil.sapi.Daffodil" />
+          <meta name="keywords" content="Apache Daffodil incubating 3.0.0 Scala API org.apache.daffodil.sapi.Daffodil" />
           <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
           
       
@@ -28,7 +28,7 @@
         </head>
         <body>
       <div id="search">
-        <span id="doc-title">Apache Daffodil (incubating) 2.7.0 Scala API<span id="doc-version"></span></span>
+        <span id="doc-title">Apache Daffodil (incubating) 3.0.0 Scala API<span id="doc-version"></span></span>
         <span class="close-results"><span class="left">&lt;</span> Back</span>
         <div id="textfilter">
           <span class="input">
@@ -65,10 +65,10 @@
         <span class="kind">package</span>
       </span>
       <span class="symbol">
-        <a title="org.apache.daffodil.sapi - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics" href="../../../../index.html"><span class="name">root</span></a>
+        <a title="This is the documentation for the Apache Daffodil (incubating) Scala API." href="../../../../index.html"><span class="name">root</span></a>
       </span>
       
-      <p class="shortcomment cmt"><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><h4> Apache Daffodil (incubating) Scala API </h4><h5> Packages </h5><p><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daf [...]
+      <p class="shortcomment cmt">This is the documentation for the Apache Daffodil (incubating) Scala API.</p><div class="fullcomment"><div class="comment cmt"><p>This is the documentation for the Apache Daffodil (incubating) Scala API.</p><h5> Package structure </h5><p><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve  [...]
     </li><li name="_root_.org" visbl="pub" class="indented1 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="org"></a><a id="org:org"></a>
       <span class="permalink">
@@ -137,29 +137,50 @@ unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><p>Provides the classes necessary to compile DFDL schemas, parse and
 unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><h5> Overview </h5><p>The <a href="" class="extype" name="org.apache.daffodil.sapi.Daffodil">Daffodil</a> object is a factory object to create a <a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a>. The
-<a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compils a provided DFDL schema into a
+<a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compile a provided DFDL schema into a
 <a href="ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, which creates a <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> c = Daffodil.compiler()
 <span class="kw">val</span> pf = c.compileFile(file)
 <span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)</pre><p>The <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> provides the necessary functions to parse and unparse
 data, returning a <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> or <a href="UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>, respectively. These
 contain information about the parse/unparse, such as whether or not the
-processing succeeded any diagnostic information.</p><h6> Parse </h6><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form
-of a <a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a> and an <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
-to determine the output representation of the infoset (e.g. Scala XML Nodes,
-JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+processing succeeded with any diagnostic information.</p><p>The <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> also provides two functions that can be used to perform parsing/unparsing
+via the SAX API. The first creates a <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> which is used for parsing, and the
+second creates a <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> which is used for unparsing.</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(output)</pre><p>The <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> has several methods that allow one to set properties and handlers
+(such as ContentHandlers or ErrorHandlers) for the reader. One can use any
+contentHandler/errorHandler as long as they extend the org.xml.sax.ContentHandler and
+org.xml.sax.ErrorHandler interfaces respectively. One can also set properties for the
+<a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using <a href="DaffodilParseXMLReader.html#setProperty(name:String,value:AnyRef):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setProperty">DaffodilParseXMLReader.setProperty</a>.</p><p>The following properties can be set as follows:</p><p><i>The constants below have literal values starting with
+"urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:" and ending with "BlobDirectory",
+"BlobPrefix" and "BlobSuffix" respectively.</i></p><pre>xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBDIRECTORY,
+ Paths.get(System.getProperty(<span class="lit">"java.io.tmpdir"</span>))) <span class="cmt">// value type: java.nio.file.Paths</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBPREFIX, <span class="lit">"daffodil-sax-"</span>) <span class="cmt">// value type String</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBSUFFIX, <span class="lit">".bin"</span>) <span class="cmt">// value type String</span></pre><p>The properties can be retrieved using the same variables with
+<a href="DaffodilParseXMLReader.html#getProperty(name:String):AnyRef" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#getProperty">DaffodilParseXMLReader.getProperty</a> and casting
+to the appropriate type as listed above.</p><p>The following handlers can be set as follows:</p><pre>xmlReader.setContentHandler(contentHandler)
+xmlReader.setErrorHandler(errorHandler)</pre><p>The handlers above must implement the following interfaces respectively:</p><pre>org.xml.sax.ContentHandler
+org.xml.sax.ErrorHandler</pre><p>The <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> can be found as a property within the <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using this
+uri: &quot;urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:ParseResult&quot; or
+<a href="DaffodilParseXMLReader$.html#DAFFODIL_SAX_URN_PARSERESULT:String" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#DAFFODIL_SAX_URN_PARSERESULT">DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT</a></p><p>In order for a successful unparse to happen, the SAX API requires the
+unparse to be kicked off by a parse call to any org.xml.sax.XMLReader implementation that has the
+<a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> registered as its content handler. To retrieve the <a href="UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>,
+one can use <a href="DaffodilUnparseContentHandler.html#getUnparseResult:org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler#getUnparseResult">DaffodilUnparseContentHandler.getUnparseResult</a> once the XMLReader.parse run is
+complete.</p><h6> Parse </h6><h6> Dataprocessor Parse </h6><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form of a <a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.i [...]
+the output representation of the infoset (e.g. Scala XML Nodes, JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(data)
 <span class="kw">val</span> pr = dp.parse(is, scalaOutputter)
-<span class="kw">val</span> node = scalaOutputter.getResult</pre><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method is thread-safe and may be called multiple
-times without the need to create other data processors. However,
-<a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>'s are not thread safe, requiring a unique instance per
-thread. An <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> should call <a href="infoset/InfosetOutputter.html#reset():Unit" class="extmbr" name="org.apache.daffodil.sapi.infoset.InfosetOutputter#reset">InfosetOutputter.reset</a> before
-reuse (or a new one should be allocated). For example:</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+<span class="kw">val</span> node = scalaOutputter.getResult</pre><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method is thread-safe and may be called multiple times without the need to
+create other data processors. However, <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>'s are not
+thread safe, requiring a unique instance per thread. An <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
+should call <a href="infoset/InfosetOutputter.html#reset():Unit" class="extmbr" name="org.apache.daffodil.sapi.infoset.InfosetOutputter#reset">InfosetOutputter.reset</a> before reuse (or a new one
+should be allocated). For example:</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 files.foreach { f <span class="kw">=&gt;</span> {
   outputter.reset
   <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(<span class="kw">new</span> FileInputStream(f))
   <span class="kw">val</span> pr = dp.parse(is, scalaOutputter)
   <span class="kw">val</span> node = scalaOutputter.getResult
-}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
+}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
 <span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 <span class="kw">val</span> keepParsing = <span class="kw">true</span>
 <span class="kw">while</span> (keepParsing) {
@@ -167,11 +188,70 @@ files.foreach { f <span class="kw">=&gt;</span> {
   <span class="kw">val</span> pr = dp.parse(is, jdomOutputter)
   ...
   keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError()
-}</pre><h6> Unparse </h6><p>The same <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> used for parse can be used to unparse an infoset
-via the <a href="DataProcessor.html#unparse(input:org.apache.daffodil.sapi.infoset.InfosetInputter,output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#unparse">DataProcessor.unparse</a> method. An <a href="infoset/InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a>
-provides the infoset to unparse, with the unparsed data written to the
-provided java.nio.channels.WritableByteChannel. For example:</p><pre><span class="kw">val</span> inputter = <span class="kw">new</span> ScalaXMLInfosetInputter(node)
-<span class="kw">val</span> ur = dp.unparse(inputter, wbc)</pre><h5> Failures and Diagnostics </h5><p>It is possible that failures could occur during the creation of the
+}</pre><h6> SAX Parse </h6><p>The <a href="DaffodilParseXMLReader.html#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse">DaffodilParseXMLReader.parse</a> method accepts input data to parse in the form of a
+<a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a>. The output representation of the
+infoset, as well as how parse errors are handled, are dependent on the content handler and the
+error handler provided to the <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a>. For example, the org.jdom2.input.sax.SAXHandler
+provides a JDOM representation, whereas other ContentHandlers may output directly to a
+java.io.OutputStream or java.io.Writer.</p><pre><span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+<span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(data)
+xmlReader.parse(is)
+<span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+<span class="kw">val</span> doc = saxHandler.getDocument</pre><p>The <a href="DaffodilParseXMLReader.html#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse">DaffodilParseXMLReader.parse</a> method is not thread-safe and may only be called again/reused once
+a parse operation is completed. This can be done multiple times without the need to create new
+DaffodilParseXMLReaders, ContentHandlers or ErrorHandlers. It might be necessary to reset whatever
+ContentHandler is used (or allocate a new one). A thread-safe implementation would require unique
+instances of the DaffodilParseXMLReader and its components. For example:</p><pre><span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+files.foreach { f <span class="kw">=&gt;</span> {
+  contentHandler.reset
+  <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(<span class="kw">new</span> FileInputStream(f))
+  xmlReader.parse(is)
+  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+  <span class="kw">val</span> doc = saxHandler.getDocument
+}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
+<span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+<span class="kw">val</span> keepParsing = <span class="kw">true</span>
+<span class="kw">while</span> (keepParsing) {
+  contentHandler.reset()
+  xmlReader.parse(is)
+  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+  ...
+  keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError()
+}</pre><h6> Unparse </h6><h6> Dataprocessor Unparse </h6><p>The same <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> used for parse can be used to unparse an infoset
+via the <a href="DataProcessor.html#unparse(input:org.apache.daffodil.sapi.infoset.InfosetInputter,output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#unparse">DataProcessor.unparse</a> method. An
+<a href="infoset/InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> provides the infoset to unparse, with the unparsed
+data written to the provided java.nio.channels.WritableByteChannel. For example:</p><pre><span class="kw">val</span> inputter = <span class="kw">new</span> ScalaXMLInfosetInputter(node)
+<span class="kw">val</span> ur = dp.unparse(inputter, wbc)</pre><h6> SAX Unparse </h6><p>In order to kick off an unparse via the SAX API, one must register the <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a>
+as the contentHandler for an XMLReader implementation. The call to the
+<a href="DataProcessor.html#newContentHandlerInstance(output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.DaffodilUnparseContentHandler" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#newContentHandlerInstance">DataProcessor.newContentHandlerInstance</a> method
+must be provided with the java.nio.channels.WritableByteChannel, where the unparsed data ought to
+be written to. Any XMLReader implementation is permissible, as long as they have XML
+Namespace support.</p><pre><span class="kw">val</span> is = <span class="kw">new</span> ByteArrayInputStream(data)
+<span class="kw">val</span> os = <span class="kw">new</span> ByteArrayOutputStream()
+<span class="kw">val</span> wbc = java.nio.channels.Channels.newChannel(os)
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(wbc)
+<span class="kw">val</span> xmlReader = SAXParserFactory.newInstance.newSAXParser.getXMLReader
+xmlReader.setContentHandler(unparseContentHandler)
+<span class="kw">try</span> {
+ xmlReader.parse(is)
+} <span class="kw">catch</span> {
+ <span class="kw">case</span> _: DaffodilUnparseErrorSAXException <span class="kw">=&gt;</span> ...
+ <span class="kw">case</span> _: DaffodilUnhandledSAXException <span class="kw">=&gt;</span> ...
+}</pre><p>The call to the XMLReader.parse method must be wrapped in a try/catch, as <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a>
+relies on throwing an exception to end processing in the case of anyerrors/failures.
+There are two kinds of errors to expect: <a href="DaffodilUnparseErrorSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseErrorSAXException">DaffodilUnparseErrorSAXException</a>, for the case when
+the <a href="UnparseResult.html#isError():Boolean" class="extmbr" name="org.apache.daffodil.sapi.UnparseResult#isError">UnparseResult.isError</a>, and <a href="DaffodilUnhandledSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException">DaffodilUnhandledSAXException</a>, for any other errors.</p><p>In the case of an <a href="DaffodilUnhandledSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException">DaffodilUnhandle [...]
+will return null.</p><pre><span class="kw">try</span> {
+  xmlReader.parse(<span class="kw">new</span> InputSource(is))
+} <span class="kw">catch</span> {
+  <span class="kw">case</span> _: DaffodilUnhandledSAXException <span class="kw">=&gt;</span> ...
+  <span class="kw">case</span> _: DaffodilUnparseErrorSAXException <span class="kw">=&gt;</span> ...
+}
+<span class="kw">val</span> ur = unparseContentHandler.getUnparseResult</pre><h5> Failures and Diagnostics </h5><p>It is possible that failures could occur during the creation of the
 <a href="ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>, or <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a>. However, rather than
 throwing an exception on error (e.g. invalid DFDL schema, parse
 error, etc), these classes extend <a href="WithDiagnostics.html" class="extype" name="org.apache.daffodil.sapi.WithDiagnostics">WithDiagnostics</a>, which is used to
@@ -188,8 +268,10 @@ determine if an error occurred, and any diagnostic information (see
 For example, when starting up, it may be quicker to reload an
 already compiled parser than to compile it from scratch. To save a
 <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)
-dp.save(saveFile);</pre><p>And to restore a saved <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = Daffodil.reload(saveFile);
-<span class="kw">val</span> pr = dp.parse(data, inputter);</pre></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a></dd></dl></div>
+dp.save(saveFile);</pre><p>And to restore a saved <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = Daffodil.reload(saveFile);</pre><p>And use like below:</p><pre><span class="kw">val</span> pr = dp.parse(data);</pre><p>or</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+... <span class="cmt">// setting appropriate handlers</span>
+xmlReader.parse(data)
+<span class="kw">val</span> pr = xmlReader.getProperty(<span class="lit">"...ParseResult"</span>)</pre></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a></dd></dl></div>
     </li><li name="org.apache.daffodil.sapi.debugger" visbl="pub" class="indented5 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="debugger"></a><a id="debugger:debugger"></a>
       <span class="permalink">
@@ -277,6 +359,22 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                         <a class="object" href="" title="Factory object to create a Compiler and set global configurations"></a>
                         <a href="" title="Factory object to create a Compiler and set global configurations">Daffodil</a>
                       </li><li class="current-entities indented4">
+                        <a class="object" href="DaffodilParseXMLReader$.html" title="The full URIs needed for setting/getting properties for the DaffodilParseXMLReader"></a>
+                        <a class="class" href="DaffodilParseXMLReader.html" title="SAX Method of parsing schema and getting the DFDL Infoset via designated org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface"></a>
+                        <a href="DaffodilParseXMLReader.html" title="SAX Method of parsing schema and getting the DFDL Infoset via designated org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface">DaffodilParseXMLReader</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnhandledSAXException.html" title="This exception will be thrown when an unexpected error occurs during the SAX unparse"></a>
+                        <a href="DaffodilUnhandledSAXException.html" title="This exception will be thrown when an unexpected error occurs during the SAX unparse">DaffodilUnhandledSAXException</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnparseContentHandler.html" title="Accepts SAX callback events from any SAX XMLReader for unparsing"></a>
+                        <a href="DaffodilUnparseContentHandler.html" title="Accepts SAX callback events from any SAX XMLReader for unparsing">DaffodilUnparseContentHandler</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnparseErrorSAXException.html" title="This exception will be thrown when unparseResult.isError returns true during a SAX Unparse"></a>
+                        <a href="DaffodilUnparseErrorSAXException.html" title="This exception will be thrown when unparseResult.isError returns true during a SAX Unparse">DaffodilUnparseErrorSAXException</a>
+                      </li><li class="current-entities indented4">
                         <span class="separator"></span>
                         <a class="class" href="DataLocation.html" title="Information related to a location in data"></a>
                         <a href="DataLocation.html" title="Information related to a location in data">DataLocation</a>
diff --git a/content/docs/latest/scaladoc/org/apache/daffodil/sapi/InvalidUsageException.html b/content/docs/latest/scaladoc/org/apache/daffodil/sapi/DaffodilParseXMLReader$.html
similarity index 65%
copy from content/docs/latest/scaladoc/org/apache/daffodil/sapi/InvalidUsageException.html
copy to content/docs/latest/scaladoc/org/apache/daffodil/sapi/DaffodilParseXMLReader$.html
index fe2a0f7..036ac51 100644
--- a/content/docs/latest/scaladoc/org/apache/daffodil/sapi/InvalidUsageException.html
+++ b/content/docs/latest/scaladoc/org/apache/daffodil/sapi/DaffodilParseXMLReader$.html
@@ -3,9 +3,9 @@
         <head>
           <meta http-equiv="X-UA-Compatible" content="IE=edge" />
           <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
-          <title>Apache Daffodil (incubating) 2.7.0 Scala API  - org.apache.daffodil.sapi.InvalidUsageException</title>
-          <meta name="description" content="Apache Daffodil incubating 2.7.0 Scala API - org.apache.daffodil.sapi.InvalidUsageException" />
-          <meta name="keywords" content="Apache Daffodil incubating 2.7.0 Scala API org.apache.daffodil.sapi.InvalidUsageException" />
+          <title>Apache Daffodil (incubating) 3.0.0 Scala API  - org.apache.daffodil.sapi.DaffodilParseXMLReader</title>
+          <meta name="description" content="Apache Daffodil incubating 3.0.0 Scala API - org.apache.daffodil.sapi.DaffodilParseXMLReader" />
+          <meta name="keywords" content="Apache Daffodil incubating 3.0.0 Scala API org.apache.daffodil.sapi.DaffodilParseXMLReader" />
           <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
           
       
@@ -28,7 +28,7 @@
         </head>
         <body>
       <div id="search">
-        <span id="doc-title">Apache Daffodil (incubating) 2.7.0 Scala API<span id="doc-version"></span></span>
+        <span id="doc-title">Apache Daffodil (incubating) 3.0.0 Scala API<span id="doc-version"></span></span>
         <span class="close-results"><span class="left">&lt;</span> Back</span>
         <div id="textfilter">
           <span class="input">
@@ -65,10 +65,10 @@
         <span class="kind">package</span>
       </span>
       <span class="symbol">
-        <a title="org.apache.daffodil.sapi - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics" href="../../../../index.html"><span class="name">root</span></a>
+        <a title="This is the documentation for the Apache Daffodil (incubating) Scala API." href="../../../../index.html"><span class="name">root</span></a>
       </span>
       
-      <p class="shortcomment cmt"><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><h4> Apache Daffodil (incubating) Scala API </h4><h5> Packages </h5><p><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daf [...]
+      <p class="shortcomment cmt">This is the documentation for the Apache Daffodil (incubating) Scala API.</p><div class="fullcomment"><div class="comment cmt"><p>This is the documentation for the Apache Daffodil (incubating) Scala API.</p><h5> Package structure </h5><p><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve  [...]
     </li><li name="_root_.org" visbl="pub" class="indented1 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="org"></a><a id="org:org"></a>
       <span class="permalink">
@@ -137,29 +137,50 @@ unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><p>Provides the classes necessary to compile DFDL schemas, parse and
 unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><h5> Overview </h5><p>The <a href="Daffodil$.html" class="extype" name="org.apache.daffodil.sapi.Daffodil">Daffodil</a> object is a factory object to create a <a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a>. The
-<a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compils a provided DFDL schema into a
+<a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compile a provided DFDL schema into a
 <a href="ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, which creates a <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> c = Daffodil.compiler()
 <span class="kw">val</span> pf = c.compileFile(file)
 <span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)</pre><p>The <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> provides the necessary functions to parse and unparse
 data, returning a <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> or <a href="UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>, respectively. These
 contain information about the parse/unparse, such as whether or not the
-processing succeeded any diagnostic information.</p><h6> Parse </h6><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form
-of a <a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a> and an <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
-to determine the output representation of the infoset (e.g. Scala XML Nodes,
-JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+processing succeeded with any diagnostic information.</p><p>The <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> also provides two functions that can be used to perform parsing/unparsing
+via the SAX API. The first creates a <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> which is used for parsing, and the
+second creates a <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> which is used for unparsing.</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(output)</pre><p>The <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> has several methods that allow one to set properties and handlers
+(such as ContentHandlers or ErrorHandlers) for the reader. One can use any
+contentHandler/errorHandler as long as they extend the org.xml.sax.ContentHandler and
+org.xml.sax.ErrorHandler interfaces respectively. One can also set properties for the
+<a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using <a href="DaffodilParseXMLReader.html#setProperty(name:String,value:AnyRef):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setProperty">DaffodilParseXMLReader.setProperty</a>.</p><p>The following properties can be set as follows:</p><p><i>The constants below have literal values starting with
+"urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:" and ending with "BlobDirectory",
+"BlobPrefix" and "BlobSuffix" respectively.</i></p><pre>xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBDIRECTORY,
+ Paths.get(System.getProperty(<span class="lit">"java.io.tmpdir"</span>))) <span class="cmt">// value type: java.nio.file.Paths</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBPREFIX, <span class="lit">"daffodil-sax-"</span>) <span class="cmt">// value type String</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBSUFFIX, <span class="lit">".bin"</span>) <span class="cmt">// value type String</span></pre><p>The properties can be retrieved using the same variables with
+<a href="DaffodilParseXMLReader.html#getProperty(name:String):AnyRef" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#getProperty">DaffodilParseXMLReader.getProperty</a> and casting
+to the appropriate type as listed above.</p><p>The following handlers can be set as follows:</p><pre>xmlReader.setContentHandler(contentHandler)
+xmlReader.setErrorHandler(errorHandler)</pre><p>The handlers above must implement the following interfaces respectively:</p><pre>org.xml.sax.ContentHandler
+org.xml.sax.ErrorHandler</pre><p>The <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> can be found as a property within the <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using this
+uri: &quot;urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:ParseResult&quot; or
+<a href="#DAFFODIL_SAX_URN_PARSERESULT:String" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#DAFFODIL_SAX_URN_PARSERESULT">DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT</a></p><p>In order for a successful unparse to happen, the SAX API requires the
+unparse to be kicked off by a parse call to any org.xml.sax.XMLReader implementation that has the
+<a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> registered as its content handler. To retrieve the <a href="UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>,
+one can use <a href="DaffodilUnparseContentHandler.html#getUnparseResult:org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler#getUnparseResult">DaffodilUnparseContentHandler.getUnparseResult</a> once the XMLReader.parse run is
+complete.</p><h6> Parse </h6><h6> Dataprocessor Parse </h6><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form of a <a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.i [...]
+the output representation of the infoset (e.g. Scala XML Nodes, JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(data)
 <span class="kw">val</span> pr = dp.parse(is, scalaOutputter)
-<span class="kw">val</span> node = scalaOutputter.getResult</pre><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method is thread-safe and may be called multiple
-times without the need to create other data processors. However,
-<a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>'s are not thread safe, requiring a unique instance per
-thread. An <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> should call <a href="infoset/InfosetOutputter.html#reset():Unit" class="extmbr" name="org.apache.daffodil.sapi.infoset.InfosetOutputter#reset">InfosetOutputter.reset</a> before
-reuse (or a new one should be allocated). For example:</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+<span class="kw">val</span> node = scalaOutputter.getResult</pre><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method is thread-safe and may be called multiple times without the need to
+create other data processors. However, <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>'s are not
+thread safe, requiring a unique instance per thread. An <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
+should call <a href="infoset/InfosetOutputter.html#reset():Unit" class="extmbr" name="org.apache.daffodil.sapi.infoset.InfosetOutputter#reset">InfosetOutputter.reset</a> before reuse (or a new one
+should be allocated). For example:</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 files.foreach { f <span class="kw">=&gt;</span> {
   outputter.reset
   <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(<span class="kw">new</span> FileInputStream(f))
   <span class="kw">val</span> pr = dp.parse(is, scalaOutputter)
   <span class="kw">val</span> node = scalaOutputter.getResult
-}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
+}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
 <span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 <span class="kw">val</span> keepParsing = <span class="kw">true</span>
 <span class="kw">while</span> (keepParsing) {
@@ -167,11 +188,70 @@ files.foreach { f <span class="kw">=&gt;</span> {
   <span class="kw">val</span> pr = dp.parse(is, jdomOutputter)
   ...
   keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError()
-}</pre><h6> Unparse </h6><p>The same <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> used for parse can be used to unparse an infoset
-via the <a href="DataProcessor.html#unparse(input:org.apache.daffodil.sapi.infoset.InfosetInputter,output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#unparse">DataProcessor.unparse</a> method. An <a href="infoset/InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a>
-provides the infoset to unparse, with the unparsed data written to the
-provided java.nio.channels.WritableByteChannel. For example:</p><pre><span class="kw">val</span> inputter = <span class="kw">new</span> ScalaXMLInfosetInputter(node)
-<span class="kw">val</span> ur = dp.unparse(inputter, wbc)</pre><h5> Failures and Diagnostics </h5><p>It is possible that failures could occur during the creation of the
+}</pre><h6> SAX Parse </h6><p>The <a href="DaffodilParseXMLReader.html#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse">DaffodilParseXMLReader.parse</a> method accepts input data to parse in the form of a
+<a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a>. The output representation of the
+infoset, as well as how parse errors are handled, are dependent on the content handler and the
+error handler provided to the <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a>. For example, the org.jdom2.input.sax.SAXHandler
+provides a JDOM representation, whereas other ContentHandlers may output directly to a
+java.io.OutputStream or java.io.Writer.</p><pre><span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+<span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(data)
+xmlReader.parse(is)
+<span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+<span class="kw">val</span> doc = saxHandler.getDocument</pre><p>The <a href="DaffodilParseXMLReader.html#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse">DaffodilParseXMLReader.parse</a> method is not thread-safe and may only be called again/reused once
+a parse operation is completed. This can be done multiple times without the need to create new
+DaffodilParseXMLReaders, ContentHandlers or ErrorHandlers. It might be necessary to reset whatever
+ContentHandler is used (or allocate a new one). A thread-safe implementation would require unique
+instances of the DaffodilParseXMLReader and its components. For example:</p><pre><span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+files.foreach { f <span class="kw">=&gt;</span> {
+  contentHandler.reset
+  <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(<span class="kw">new</span> FileInputStream(f))
+  xmlReader.parse(is)
+  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+  <span class="kw">val</span> doc = saxHandler.getDocument
+}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
+<span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+<span class="kw">val</span> keepParsing = <span class="kw">true</span>
+<span class="kw">while</span> (keepParsing) {
+  contentHandler.reset()
+  xmlReader.parse(is)
+  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+  ...
+  keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError()
+}</pre><h6> Unparse </h6><h6> Dataprocessor Unparse </h6><p>The same <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> used for parse can be used to unparse an infoset
+via the <a href="DataProcessor.html#unparse(input:org.apache.daffodil.sapi.infoset.InfosetInputter,output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#unparse">DataProcessor.unparse</a> method. An
+<a href="infoset/InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> provides the infoset to unparse, with the unparsed
+data written to the provided java.nio.channels.WritableByteChannel. For example:</p><pre><span class="kw">val</span> inputter = <span class="kw">new</span> ScalaXMLInfosetInputter(node)
+<span class="kw">val</span> ur = dp.unparse(inputter, wbc)</pre><h6> SAX Unparse </h6><p>In order to kick off an unparse via the SAX API, one must register the <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a>
+as the contentHandler for an XMLReader implementation. The call to the
+<a href="DataProcessor.html#newContentHandlerInstance(output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.DaffodilUnparseContentHandler" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#newContentHandlerInstance">DataProcessor.newContentHandlerInstance</a> method
+must be provided with the java.nio.channels.WritableByteChannel, where the unparsed data ought to
+be written to. Any XMLReader implementation is permissible, as long as they have XML
+Namespace support.</p><pre><span class="kw">val</span> is = <span class="kw">new</span> ByteArrayInputStream(data)
+<span class="kw">val</span> os = <span class="kw">new</span> ByteArrayOutputStream()
+<span class="kw">val</span> wbc = java.nio.channels.Channels.newChannel(os)
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(wbc)
+<span class="kw">val</span> xmlReader = SAXParserFactory.newInstance.newSAXParser.getXMLReader
+xmlReader.setContentHandler(unparseContentHandler)
+<span class="kw">try</span> {
+ xmlReader.parse(is)
+} <span class="kw">catch</span> {
+ <span class="kw">case</span> _: DaffodilUnparseErrorSAXException <span class="kw">=&gt;</span> ...
+ <span class="kw">case</span> _: DaffodilUnhandledSAXException <span class="kw">=&gt;</span> ...
+}</pre><p>The call to the XMLReader.parse method must be wrapped in a try/catch, as <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a>
+relies on throwing an exception to end processing in the case of anyerrors/failures.
+There are two kinds of errors to expect: <a href="DaffodilUnparseErrorSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseErrorSAXException">DaffodilUnparseErrorSAXException</a>, for the case when
+the <a href="UnparseResult.html#isError():Boolean" class="extmbr" name="org.apache.daffodil.sapi.UnparseResult#isError">UnparseResult.isError</a>, and <a href="DaffodilUnhandledSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException">DaffodilUnhandledSAXException</a>, for any other errors.</p><p>In the case of an <a href="DaffodilUnhandledSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException">DaffodilUnhandle [...]
+will return null.</p><pre><span class="kw">try</span> {
+  xmlReader.parse(<span class="kw">new</span> InputSource(is))
+} <span class="kw">catch</span> {
+  <span class="kw">case</span> _: DaffodilUnhandledSAXException <span class="kw">=&gt;</span> ...
+  <span class="kw">case</span> _: DaffodilUnparseErrorSAXException <span class="kw">=&gt;</span> ...
+}
+<span class="kw">val</span> ur = unparseContentHandler.getUnparseResult</pre><h5> Failures and Diagnostics </h5><p>It is possible that failures could occur during the creation of the
 <a href="ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>, or <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a>. However, rather than
 throwing an exception on error (e.g. invalid DFDL schema, parse
 error, etc), these classes extend <a href="WithDiagnostics.html" class="extype" name="org.apache.daffodil.sapi.WithDiagnostics">WithDiagnostics</a>, which is used to
@@ -188,8 +268,10 @@ determine if an error occurred, and any diagnostic information (see
 For example, when starting up, it may be quicker to reload an
 already compiled parser than to compile it from scratch. To save a
 <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)
-dp.save(saveFile);</pre><p>And to restore a saved <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = Daffodil.reload(saveFile);
-<span class="kw">val</span> pr = dp.parse(data, inputter);</pre></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a></dd></dl></div>
+dp.save(saveFile);</pre><p>And to restore a saved <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = Daffodil.reload(saveFile);</pre><p>And use like below:</p><pre><span class="kw">val</span> pr = dp.parse(data);</pre><p>or</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+... <span class="cmt">// setting appropriate handlers</span>
+xmlReader.parse(data)
+<span class="kw">val</span> pr = xmlReader.getProperty(<span class="lit">"...ParseResult"</span>)</pre></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a></dd></dl></div>
     </li><li name="org.apache.daffodil.sapi.debugger" visbl="pub" class="indented5 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="debugger"></a><a id="debugger:debugger"></a>
       <span class="permalink">
@@ -277,6 +359,22 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                         <a class="object" href="Daffodil$.html" title="Factory object to create a Compiler and set global configurations"></a>
                         <a href="Daffodil$.html" title="Factory object to create a Compiler and set global configurations">Daffodil</a>
                       </li><li class="current-entities indented4">
+                        <a class="object" href="" title="The full URIs needed for setting/getting properties for the DaffodilParseXMLReader"></a>
+                        <a class="class" href="DaffodilParseXMLReader.html" title="SAX Method of parsing schema and getting the DFDL Infoset via designated org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface"></a>
+                        <a href="DaffodilParseXMLReader.html" title="SAX Method of parsing schema and getting the DFDL Infoset via designated org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface">DaffodilParseXMLReader</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnhandledSAXException.html" title="This exception will be thrown when an unexpected error occurs during the SAX unparse"></a>
+                        <a href="DaffodilUnhandledSAXException.html" title="This exception will be thrown when an unexpected error occurs during the SAX unparse">DaffodilUnhandledSAXException</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnparseContentHandler.html" title="Accepts SAX callback events from any SAX XMLReader for unparsing"></a>
+                        <a href="DaffodilUnparseContentHandler.html" title="Accepts SAX callback events from any SAX XMLReader for unparsing">DaffodilUnparseContentHandler</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnparseErrorSAXException.html" title="This exception will be thrown when unparseResult.isError returns true during a SAX Unparse"></a>
+                        <a href="DaffodilUnparseErrorSAXException.html" title="This exception will be thrown when unparseResult.isError returns true during a SAX Unparse">DaffodilUnparseErrorSAXException</a>
+                      </li><li class="current-entities indented4">
                         <span class="separator"></span>
                         <a class="class" href="DataLocation.html" title="Information related to a location in data"></a>
                         <a href="DataLocation.html" title="Information related to a location in data">DataLocation</a>
@@ -294,8 +392,8 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                         <a href="InvalidParserException.html" title="This exception will be thrown as a result of attempting to reload a saved parser that is invalid (not a parser file, corrupt, etc.) or is not in the GZIP format.">InvalidParserException</a>
                       </li><li class="current-entities indented4">
                         <span class="separator"></span>
-                        <a class="class" href="" title="This exception will be thrown as a result of an invalid usage of the Daffodil API"></a>
-                        <a href="" title="This exception will be thrown as a result of an invalid usage of the Daffodil API">InvalidUsageException</a>
+                        <a class="class" href="InvalidUsageException.html" title="This exception will be thrown as a result of an invalid usage of the Daffodil API"></a>
+                        <a href="InvalidUsageException.html" title="This exception will be thrown as a result of an invalid usage of the Daffodil API">InvalidUsageException</a>
                       </li><li class="current-entities indented4">
                         <span class="separator"></span>
                         <a class="class" href="LocationInSchemaFile.html" title="Information related to locations in DFDL schema files"></a>
@@ -325,35 +423,37 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
             </div>
           </div>
           <div id="content">
-            <body class="class type">
+            <body class="object value">
       <div id="definition">
-        <div class="big-circle class">c</div>
+        <a href="DaffodilParseXMLReader.html" title="See companion class"><div class="big-circle object-companion-class">o</div></a>
         <p id="owner"><a href="../../../index.html" class="extype" name="org">org</a>.<a href="../../index.html" class="extype" name="org.apache">apache</a>.<a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a>.<a href="index.html" class="extype" name="org.apache.daffodil.sapi">sapi</a></p>
-        <h1>InvalidUsageException<span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html" title="Permalink">
+        <h1><a href="DaffodilParseXMLReader.html" title="See companion class">DaffodilParseXMLReader</a><span class="permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span></h1>
-        <h3><span class="morelinks"></span></h3>
+        <h3><span class="morelinks"><div>
+            Companion <a href="DaffodilParseXMLReader.html" title="See companion class">class DaffodilParseXMLReader</a>
+          </div></span></h3>
       </div>
 
       <h4 id="signature" class="signature">
       <span class="modifier_kind">
         <span class="modifier"></span>
-        <span class="kind">class</span>
+        <span class="kind">object</span>
       </span>
       <span class="symbol">
-        <span class="name">InvalidUsageException</span><span class="result"> extends <span class="extype" name="scala.Exception">Exception</span></span>
+        <span class="name">DaffodilParseXMLReader</span>
       </span>
       </h4>
 
       
-          <div id="comment" class="fullcommenttop"><div class="comment cmt"><p>This exception will be thrown as a result of an invalid usage of the Daffodil API
+          <div id="comment" class="fullcommenttop"><div class="comment cmt"><p>The full URIs needed for setting/getting properties for the <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a>
 </p></div><div class="toggleContainer block">
           <span class="toggle">
             Linear Supertypes
           </span>
-          <div class="superTypes hiddenContent"><span class="extype" name="java.lang.Exception">Exception</span>, <span class="extype" name="java.lang.Throwable">Throwable</span>, <span class="extype" name="java.io.Serializable">Serializable</span>, <span class="extype" name="scala.AnyRef">AnyRef</span>, <span class="extype" name="scala.Any">Any</span></div>
+          <div class="superTypes hiddenContent"><span class="extype" name="scala.AnyRef">AnyRef</span>, <span class="extype" name="scala.Any">Any</span></div>
         </div></div>
         
 
@@ -379,7 +479,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                   <span class="filtertype">Inherited<br />
                   </span>
                   <ol id="linearization">
-                    <li class="in" name="org.apache.daffodil.sapi.InvalidUsageException"><span>InvalidUsageException</span></li><li class="in" name="java.lang.Exception"><span>Exception</span></li><li class="in" name="java.lang.Throwable"><span>Throwable</span></li><li class="in" name="java.io.Serializable"><span>Serializable</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li><li class="in" name="scala.Any"><span>Any</span></li>
+                    <li class="in" name="org.apache.daffodil.sapi.DaffodilParseXMLReader"><span>DaffodilParseXMLReader</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li><li class="in" name="scala.Any"><span>Any</span></li>
                   </ol>
                 </div><div class="ancestors">
               <span class="filtertype"></span>
@@ -397,26 +497,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
 
       <div id="template">
         <div id="allMembers">
-        <div id="constructors" class="members">
-              <h3>Instance Constructors</h3>
-              <ol><li name="org.apache.daffodil.sapi.InvalidUsageException#&lt;init&gt;" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
-      <a id="&lt;init&gt;(cause:org.apache.daffodil.processors.InvalidUsageException):org.apache.daffodil.sapi.InvalidUsageException"></a><a id="&lt;init&gt;:InvalidUsageException"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#&lt;init&gt;(cause:org.apache.daffodil.processors.InvalidUsageException):org.apache.daffodil.sapi.InvalidUsageException" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">new</span>
-      </span>
-      <span class="symbol">
-        <span class="name">InvalidUsageException</span><span class="params">(<span name="cause">cause: <span class="extype" name="org.apache.daffodil.processors.InvalidUsageException">processors.InvalidUsageException</span></span>)</span>
-      </span>
-      
-      
-    </li></ol>
-            </div>
+        
 
         
 
@@ -428,7 +509,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                 <li name="scala.AnyRef#!=" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="!=(x$1:Any):Boolean"></a><a id="!=(Any):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#!=(x$1:Any):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#!=(x$1:Any):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -444,7 +525,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef###" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="##():Int"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html###():Int" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html###():Int" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -460,7 +541,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#==" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="==(x$1:Any):Boolean"></a><a id="==(Any):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#==(x$1:Any):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#==(x$1:Any):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -473,26 +554,74 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
       </span>
       
       <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
-    </li><li name="java.lang.Throwable#addSuppressed" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="addSuppressed(x$1:Throwable):Unit"></a><a id="addSuppressed(Throwable):Unit"></a>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#DAFFODIL_SAX_URN_BLOBDIRECTORY" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
+      <a id="DAFFODIL_SAX_URN_BLOBDIRECTORY:String"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#addSuppressed(x$1:Throwable):Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#DAFFODIL_SAX_URN_BLOBDIRECTORY:String" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
-        <span class="kind">def</span>
+        <span class="modifier"></span>
+        <span class="kind">val</span>
       </span>
       <span class="symbol">
-        <span class="name">addSuppressed</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="java.lang.Throwable">Throwable</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
+        <span class="name">DAFFODIL_SAX_URN_BLOBDIRECTORY</span><span class="result">: <span class="extype" name="scala.Predef.String">String</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
+      
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#DAFFODIL_SAX_URN_BLOBPREFIX" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
+      <a id="DAFFODIL_SAX_URN_BLOBPREFIX:String"></a>
+      <span class="permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#DAFFODIL_SAX_URN_BLOBPREFIX:String" title="Permalink">
+        <i class="material-icons"></i>
+      </a>
+    </span>
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">val</span>
+      </span>
+      <span class="symbol">
+        <span class="name">DAFFODIL_SAX_URN_BLOBPREFIX</span><span class="result">: <span class="extype" name="scala.Predef.String">String</span></span>
+      </span>
+      
+      
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#DAFFODIL_SAX_URN_BLOBSUFFIX" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
+      <a id="DAFFODIL_SAX_URN_BLOBSUFFIX:String"></a>
+      <span class="permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#DAFFODIL_SAX_URN_BLOBSUFFIX:String" title="Permalink">
+        <i class="material-icons"></i>
+      </a>
+    </span>
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">val</span>
+      </span>
+      <span class="symbol">
+        <span class="name">DAFFODIL_SAX_URN_BLOBSUFFIX</span><span class="result">: <span class="extype" name="scala.Predef.String">String</span></span>
+      </span>
+      
+      
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#DAFFODIL_SAX_URN_PARSERESULT" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
+      <a id="DAFFODIL_SAX_URN_PARSERESULT:String"></a>
+      <span class="permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#DAFFODIL_SAX_URN_PARSERESULT:String" title="Permalink">
+        <i class="material-icons"></i>
+      </a>
+    </span>
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">val</span>
+      </span>
+      <span class="symbol">
+        <span class="name">DAFFODIL_SAX_URN_PARSERESULT</span><span class="result">: <span class="extype" name="scala.Predef.String">String</span></span>
+      </span>
+      
+      
     </li><li name="scala.Any#asInstanceOf" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="asInstanceOf[T0]:T0"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#asInstanceOf[T0]:T0" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#asInstanceOf[T0]:T0" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -508,7 +637,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#clone" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="clone():Object"></a><a id="clone():AnyRef"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#clone():Object" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#clone():Object" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -532,7 +661,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#eq" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="eq(x$1:AnyRef):Boolean"></a><a id="eq(AnyRef):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#eq(x$1:AnyRef):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#eq(x$1:AnyRef):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -548,7 +677,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#equals" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="equals(x$1:Any):Boolean"></a><a id="equals(Any):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#equals(x$1:Any):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#equals(x$1:Any):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -561,26 +690,10 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
       </span>
       
       <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
-    </li><li name="java.lang.Throwable#fillInStackTrace" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="fillInStackTrace():Throwable"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#fillInStackTrace():Throwable" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">def</span>
-      </span>
-      <span class="symbol">
-        <span class="name">fillInStackTrace</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.Throwable">Throwable</span></span>
-      </span>
-      
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
     </li><li name="scala.AnyRef#finalize" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="finalize():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#finalize():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#finalize():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -599,26 +712,10 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </span>)</span>
               
         </dd></dl></div>
-    </li><li name="java.lang.Throwable#getCause" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="getCause():Throwable"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#getCause():Throwable" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">def</span>
-      </span>
-      <span class="symbol">
-        <span class="name">getCause</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.Throwable">Throwable</span></span>
-      </span>
-      
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
     </li><li name="scala.AnyRef#getClass" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="getClass():Class[_]"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#getClass():Class[_]" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#getClass():Class[_]" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -634,74 +731,10 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                 <span class="name">@native</span><span class="args">()</span>
               
         </dd></dl></div>
-    </li><li name="java.lang.Throwable#getLocalizedMessage" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="getLocalizedMessage():String"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#getLocalizedMessage():String" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">def</span>
-      </span>
-      <span class="symbol">
-        <span class="name">getLocalizedMessage</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.String">String</span></span>
-      </span>
-      
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
-    </li><li name="java.lang.Throwable#getMessage" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="getMessage():String"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#getMessage():String" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">def</span>
-      </span>
-      <span class="symbol">
-        <span class="name">getMessage</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.String">String</span></span>
-      </span>
-      
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
-    </li><li name="java.lang.Throwable#getStackTrace" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="getStackTrace():Array[StackTraceElement]"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#getStackTrace():Array[StackTraceElement]" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">def</span>
-      </span>
-      <span class="symbol">
-        <span class="name">getStackTrace</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<span class="extype" name="java.lang.StackTraceElement">StackTraceElement</span>]</span>
-      </span>
-      
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
-    </li><li name="java.lang.Throwable#getSuppressed" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="getSuppressed():Array[Throwable]"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#getSuppressed():Array[Throwable]" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier">final </span>
-        <span class="kind">def</span>
-      </span>
-      <span class="symbol">
-        <span class="name">getSuppressed</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<span class="extype" name="java.lang.Throwable">Throwable</span>]</span>
-      </span>
-      
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
     </li><li name="scala.AnyRef#hashCode" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="hashCode():Int"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#hashCode():Int" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#hashCode():Int" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -717,26 +750,10 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                 <span class="name">@native</span><span class="args">()</span>
               
         </dd></dl></div>
-    </li><li name="java.lang.Throwable#initCause" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="initCause(x$1:Throwable):Throwable"></a><a id="initCause(Throwable):Throwable"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#initCause(x$1:Throwable):Throwable" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">def</span>
-      </span>
-      <span class="symbol">
-        <span class="name">initCause</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="java.lang.Throwable">Throwable</span></span>)</span><span class="result">: <span class="extype" name="java.lang.Throwable">Throwable</span></span>
-      </span>
-      
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
     </li><li name="scala.Any#isInstanceOf" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="isInstanceOf[T0]:Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#isInstanceOf[T0]:Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#isInstanceOf[T0]:Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -752,7 +769,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#ne" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="ne(x$1:AnyRef):Boolean"></a><a id="ne(AnyRef):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#ne(x$1:AnyRef):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#ne(x$1:AnyRef):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -768,7 +785,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#notify" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="notify():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#notify():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#notify():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -787,7 +804,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#notifyAll" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="notifyAll():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#notifyAll():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#notifyAll():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -803,74 +820,10 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                 <span class="name">@native</span><span class="args">()</span>
               
         </dd></dl></div>
-    </li><li name="java.lang.Throwable#printStackTrace" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="printStackTrace(x$1:java.io.PrintWriter):Unit"></a><a id="printStackTrace(PrintWriter):Unit"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#printStackTrace(x$1:java.io.PrintWriter):Unit" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">def</span>
-      </span>
-      <span class="symbol">
-        <span class="name">printStackTrace</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="java.io.PrintWriter">PrintWriter</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
-      </span>
-      
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
-    </li><li name="java.lang.Throwable#printStackTrace" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="printStackTrace(x$1:java.io.PrintStream):Unit"></a><a id="printStackTrace(PrintStream):Unit"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#printStackTrace(x$1:java.io.PrintStream):Unit" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">def</span>
-      </span>
-      <span class="symbol">
-        <span class="name">printStackTrace</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="java.io.PrintStream">PrintStream</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
-      </span>
-      
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
-    </li><li name="java.lang.Throwable#printStackTrace" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="printStackTrace():Unit"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#printStackTrace():Unit" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">def</span>
-      </span>
-      <span class="symbol">
-        <span class="name">printStackTrace</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
-      </span>
-      
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
-    </li><li name="java.lang.Throwable#setStackTrace" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="setStackTrace(x$1:Array[StackTraceElement]):Unit"></a><a id="setStackTrace(Array[StackTraceElement]):Unit"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#setStackTrace(x$1:Array[StackTraceElement]):Unit" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">def</span>
-      </span>
-      <span class="symbol">
-        <span class="name">setStackTrace</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Array">Array</span>[<span class="extype" name="java.lang.StackTraceElement">StackTraceElement</span>]</span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
-      </span>
-      
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
     </li><li name="scala.AnyRef#synchronized" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="synchronized[T0](x$1:=&gt;T0):T0"></a><a id="synchronized[T0](⇒T0):T0"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#synchronized[T0](x$1:=&gt;T0):T0" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#synchronized[T0](x$1:=&gt;T0):T0" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -883,10 +836,10 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
       </span>
       
       <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
-    </li><li name="java.lang.Throwable#toString" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+    </li><li name="scala.AnyRef#toString" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="toString():String"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#toString():String" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#toString():String" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -898,11 +851,11 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         <span class="name">toString</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.String">String</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable → AnyRef → Any</dd></dl></div>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
     </li><li name="scala.AnyRef#wait" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="wait():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#wait():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#wait():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -924,7 +877,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#wait" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="wait(x$1:Long,x$2:Int):Unit"></a><a id="wait(Long,Int):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#wait(x$1:Long,x$2:Int):Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#wait(x$1:Long,x$2:Int):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -946,7 +899,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#wait" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="wait(x$1:Long):Unit"></a><a id="wait(Long):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#wait(x$1:Long):Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader$.html#wait(x$1:Long):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -977,13 +930,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         </div>
 
         <div id="inheritedMembers">
-        <div class="parent" name="java.lang.Exception">
-              <h3>Inherited from <span class="extype" name="java.lang.Exception">Exception</span></h3>
-            </div><div class="parent" name="java.lang.Throwable">
-              <h3>Inherited from <span class="extype" name="java.lang.Throwable">Throwable</span></h3>
-            </div><div class="parent" name="java.io.Serializable">
-              <h3>Inherited from <span class="extype" name="java.io.Serializable">Serializable</span></h3>
-            </div><div class="parent" name="scala.AnyRef">
+        <div class="parent" name="scala.AnyRef">
               <h3>Inherited from <span class="extype" name="scala.AnyRef">AnyRef</span></h3>
             </div><div class="parent" name="scala.Any">
               <h3>Inherited from <span class="extype" name="scala.Any">Any</span></h3>
diff --git a/content/docs/latest/scaladoc/org/apache/daffodil/sapi/ValidationMode$.html b/content/docs/latest/scaladoc/org/apache/daffodil/sapi/DaffodilParseXMLReader.html
similarity index 54%
copy from content/docs/latest/scaladoc/org/apache/daffodil/sapi/ValidationMode$.html
copy to content/docs/latest/scaladoc/org/apache/daffodil/sapi/DaffodilParseXMLReader.html
index 22d6c64..a7a21dd 100644
--- a/content/docs/latest/scaladoc/org/apache/daffodil/sapi/ValidationMode$.html
+++ b/content/docs/latest/scaladoc/org/apache/daffodil/sapi/DaffodilParseXMLReader.html
@@ -3,9 +3,9 @@
         <head>
           <meta http-equiv="X-UA-Compatible" content="IE=edge" />
           <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
-          <title>Apache Daffodil (incubating) 2.7.0 Scala API  - org.apache.daffodil.sapi.ValidationMode</title>
-          <meta name="description" content="Apache Daffodil incubating 2.7.0 Scala API - org.apache.daffodil.sapi.ValidationMode" />
-          <meta name="keywords" content="Apache Daffodil incubating 2.7.0 Scala API org.apache.daffodil.sapi.ValidationMode" />
+          <title>Apache Daffodil (incubating) 3.0.0 Scala API  - org.apache.daffodil.sapi.DaffodilParseXMLReader</title>
+          <meta name="description" content="Apache Daffodil incubating 3.0.0 Scala API - org.apache.daffodil.sapi.DaffodilParseXMLReader" />
+          <meta name="keywords" content="Apache Daffodil incubating 3.0.0 Scala API org.apache.daffodil.sapi.DaffodilParseXMLReader" />
           <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
           
       
@@ -28,7 +28,7 @@
         </head>
         <body>
       <div id="search">
-        <span id="doc-title">Apache Daffodil (incubating) 2.7.0 Scala API<span id="doc-version"></span></span>
+        <span id="doc-title">Apache Daffodil (incubating) 3.0.0 Scala API<span id="doc-version"></span></span>
         <span class="close-results"><span class="left">&lt;</span> Back</span>
         <div id="textfilter">
           <span class="input">
@@ -65,10 +65,10 @@
         <span class="kind">package</span>
       </span>
       <span class="symbol">
-        <a title="org.apache.daffodil.sapi - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics" href="../../../../index.html"><span class="name">root</span></a>
+        <a title="This is the documentation for the Apache Daffodil (incubating) Scala API." href="../../../../index.html"><span class="name">root</span></a>
       </span>
       
-      <p class="shortcomment cmt"><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><h4> Apache Daffodil (incubating) Scala API </h4><h5> Packages </h5><p><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daf [...]
+      <p class="shortcomment cmt">This is the documentation for the Apache Daffodil (incubating) Scala API.</p><div class="fullcomment"><div class="comment cmt"><p>This is the documentation for the Apache Daffodil (incubating) Scala API.</p><h5> Package structure </h5><p><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve  [...]
     </li><li name="_root_.org" visbl="pub" class="indented1 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="org"></a><a id="org:org"></a>
       <span class="permalink">
@@ -137,29 +137,50 @@ unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><p>Provides the classes necessary to compile DFDL schemas, parse and
 unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><h5> Overview </h5><p>The <a href="Daffodil$.html" class="extype" name="org.apache.daffodil.sapi.Daffodil">Daffodil</a> object is a factory object to create a <a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a>. The
-<a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compils a provided DFDL schema into a
+<a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compile a provided DFDL schema into a
 <a href="ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, which creates a <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> c = Daffodil.compiler()
 <span class="kw">val</span> pf = c.compileFile(file)
 <span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)</pre><p>The <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> provides the necessary functions to parse and unparse
 data, returning a <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> or <a href="UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>, respectively. These
 contain information about the parse/unparse, such as whether or not the
-processing succeeded any diagnostic information.</p><h6> Parse </h6><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form
-of a <a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a> and an <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
-to determine the output representation of the infoset (e.g. Scala XML Nodes,
-JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+processing succeeded with any diagnostic information.</p><p>The <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> also provides two functions that can be used to perform parsing/unparsing
+via the SAX API. The first creates a <a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> which is used for parsing, and the
+second creates a <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> which is used for unparsing.</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(output)</pre><p>The <a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> has several methods that allow one to set properties and handlers
+(such as ContentHandlers or ErrorHandlers) for the reader. One can use any
+contentHandler/errorHandler as long as they extend the org.xml.sax.ContentHandler and
+org.xml.sax.ErrorHandler interfaces respectively. One can also set properties for the
+<a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using <a href="#setProperty(name:String,value:AnyRef):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setProperty">DaffodilParseXMLReader.setProperty</a>.</p><p>The following properties can be set as follows:</p><p><i>The constants below have literal values starting with
+"urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:" and ending with "BlobDirectory",
+"BlobPrefix" and "BlobSuffix" respectively.</i></p><pre>xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBDIRECTORY,
+ Paths.get(System.getProperty(<span class="lit">"java.io.tmpdir"</span>))) <span class="cmt">// value type: java.nio.file.Paths</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBPREFIX, <span class="lit">"daffodil-sax-"</span>) <span class="cmt">// value type String</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBSUFFIX, <span class="lit">".bin"</span>) <span class="cmt">// value type String</span></pre><p>The properties can be retrieved using the same variables with
+<a href="#getProperty(name:String):AnyRef" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#getProperty">DaffodilParseXMLReader.getProperty</a> and casting
+to the appropriate type as listed above.</p><p>The following handlers can be set as follows:</p><pre>xmlReader.setContentHandler(contentHandler)
+xmlReader.setErrorHandler(errorHandler)</pre><p>The handlers above must implement the following interfaces respectively:</p><pre>org.xml.sax.ContentHandler
+org.xml.sax.ErrorHandler</pre><p>The <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> can be found as a property within the <a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using this
+uri: &quot;urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:ParseResult&quot; or
+<a href="DaffodilParseXMLReader$.html#DAFFODIL_SAX_URN_PARSERESULT:String" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#DAFFODIL_SAX_URN_PARSERESULT">DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT</a></p><p>In order for a successful unparse to happen, the SAX API requires the
+unparse to be kicked off by a parse call to any org.xml.sax.XMLReader implementation that has the
+<a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> registered as its content handler. To retrieve the <a href="UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>,
+one can use <a href="DaffodilUnparseContentHandler.html#getUnparseResult:org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler#getUnparseResult">DaffodilUnparseContentHandler.getUnparseResult</a> once the XMLReader.parse run is
+complete.</p><h6> Parse </h6><h6> Dataprocessor Parse </h6><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form of a <a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.i [...]
+the output representation of the infoset (e.g. Scala XML Nodes, JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(data)
 <span class="kw">val</span> pr = dp.parse(is, scalaOutputter)
-<span class="kw">val</span> node = scalaOutputter.getResult</pre><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method is thread-safe and may be called multiple
-times without the need to create other data processors. However,
-<a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>'s are not thread safe, requiring a unique instance per
-thread. An <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> should call <a href="infoset/InfosetOutputter.html#reset():Unit" class="extmbr" name="org.apache.daffodil.sapi.infoset.InfosetOutputter#reset">InfosetOutputter.reset</a> before
-reuse (or a new one should be allocated). For example:</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+<span class="kw">val</span> node = scalaOutputter.getResult</pre><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method is thread-safe and may be called multiple times without the need to
+create other data processors. However, <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>'s are not
+thread safe, requiring a unique instance per thread. An <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
+should call <a href="infoset/InfosetOutputter.html#reset():Unit" class="extmbr" name="org.apache.daffodil.sapi.infoset.InfosetOutputter#reset">InfosetOutputter.reset</a> before reuse (or a new one
+should be allocated). For example:</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 files.foreach { f <span class="kw">=&gt;</span> {
   outputter.reset
   <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(<span class="kw">new</span> FileInputStream(f))
   <span class="kw">val</span> pr = dp.parse(is, scalaOutputter)
   <span class="kw">val</span> node = scalaOutputter.getResult
-}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
+}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
 <span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 <span class="kw">val</span> keepParsing = <span class="kw">true</span>
 <span class="kw">while</span> (keepParsing) {
@@ -167,11 +188,70 @@ files.foreach { f <span class="kw">=&gt;</span> {
   <span class="kw">val</span> pr = dp.parse(is, jdomOutputter)
   ...
   keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError()
-}</pre><h6> Unparse </h6><p>The same <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> used for parse can be used to unparse an infoset
-via the <a href="DataProcessor.html#unparse(input:org.apache.daffodil.sapi.infoset.InfosetInputter,output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#unparse">DataProcessor.unparse</a> method. An <a href="infoset/InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a>
-provides the infoset to unparse, with the unparsed data written to the
-provided java.nio.channels.WritableByteChannel. For example:</p><pre><span class="kw">val</span> inputter = <span class="kw">new</span> ScalaXMLInfosetInputter(node)
-<span class="kw">val</span> ur = dp.unparse(inputter, wbc)</pre><h5> Failures and Diagnostics </h5><p>It is possible that failures could occur during the creation of the
+}</pre><h6> SAX Parse </h6><p>The <a href="#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse">DaffodilParseXMLReader.parse</a> method accepts input data to parse in the form of a
+<a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a>. The output representation of the
+infoset, as well as how parse errors are handled, are dependent on the content handler and the
+error handler provided to the <a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a>. For example, the org.jdom2.input.sax.SAXHandler
+provides a JDOM representation, whereas other ContentHandlers may output directly to a
+java.io.OutputStream or java.io.Writer.</p><pre><span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+<span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(data)
+xmlReader.parse(is)
+<span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+<span class="kw">val</span> doc = saxHandler.getDocument</pre><p>The <a href="#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse">DaffodilParseXMLReader.parse</a> method is not thread-safe and may only be called again/reused once
+a parse operation is completed. This can be done multiple times without the need to create new
+DaffodilParseXMLReaders, ContentHandlers or ErrorHandlers. It might be necessary to reset whatever
+ContentHandler is used (or allocate a new one). A thread-safe implementation would require unique
+instances of the DaffodilParseXMLReader and its components. For example:</p><pre><span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+files.foreach { f <span class="kw">=&gt;</span> {
+  contentHandler.reset
+  <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(<span class="kw">new</span> FileInputStream(f))
+  xmlReader.parse(is)
+  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+  <span class="kw">val</span> doc = saxHandler.getDocument
+}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
+<span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+<span class="kw">val</span> keepParsing = <span class="kw">true</span>
+<span class="kw">while</span> (keepParsing) {
+  contentHandler.reset()
+  xmlReader.parse(is)
+  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+  ...
+  keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError()
+}</pre><h6> Unparse </h6><h6> Dataprocessor Unparse </h6><p>The same <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> used for parse can be used to unparse an infoset
+via the <a href="DataProcessor.html#unparse(input:org.apache.daffodil.sapi.infoset.InfosetInputter,output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#unparse">DataProcessor.unparse</a> method. An
+<a href="infoset/InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> provides the infoset to unparse, with the unparsed
+data written to the provided java.nio.channels.WritableByteChannel. For example:</p><pre><span class="kw">val</span> inputter = <span class="kw">new</span> ScalaXMLInfosetInputter(node)
+<span class="kw">val</span> ur = dp.unparse(inputter, wbc)</pre><h6> SAX Unparse </h6><p>In order to kick off an unparse via the SAX API, one must register the <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a>
+as the contentHandler for an XMLReader implementation. The call to the
+<a href="DataProcessor.html#newContentHandlerInstance(output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.DaffodilUnparseContentHandler" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#newContentHandlerInstance">DataProcessor.newContentHandlerInstance</a> method
+must be provided with the java.nio.channels.WritableByteChannel, where the unparsed data ought to
+be written to. Any XMLReader implementation is permissible, as long as they have XML
+Namespace support.</p><pre><span class="kw">val</span> is = <span class="kw">new</span> ByteArrayInputStream(data)
+<span class="kw">val</span> os = <span class="kw">new</span> ByteArrayOutputStream()
+<span class="kw">val</span> wbc = java.nio.channels.Channels.newChannel(os)
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(wbc)
+<span class="kw">val</span> xmlReader = SAXParserFactory.newInstance.newSAXParser.getXMLReader
+xmlReader.setContentHandler(unparseContentHandler)
+<span class="kw">try</span> {
+ xmlReader.parse(is)
+} <span class="kw">catch</span> {
+ <span class="kw">case</span> _: DaffodilUnparseErrorSAXException <span class="kw">=&gt;</span> ...
+ <span class="kw">case</span> _: DaffodilUnhandledSAXException <span class="kw">=&gt;</span> ...
+}</pre><p>The call to the XMLReader.parse method must be wrapped in a try/catch, as <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a>
+relies on throwing an exception to end processing in the case of anyerrors/failures.
+There are two kinds of errors to expect: <a href="DaffodilUnparseErrorSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseErrorSAXException">DaffodilUnparseErrorSAXException</a>, for the case when
+the <a href="UnparseResult.html#isError():Boolean" class="extmbr" name="org.apache.daffodil.sapi.UnparseResult#isError">UnparseResult.isError</a>, and <a href="DaffodilUnhandledSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException">DaffodilUnhandledSAXException</a>, for any other errors.</p><p>In the case of an <a href="DaffodilUnhandledSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException">DaffodilUnhandle [...]
+will return null.</p><pre><span class="kw">try</span> {
+  xmlReader.parse(<span class="kw">new</span> InputSource(is))
+} <span class="kw">catch</span> {
+  <span class="kw">case</span> _: DaffodilUnhandledSAXException <span class="kw">=&gt;</span> ...
+  <span class="kw">case</span> _: DaffodilUnparseErrorSAXException <span class="kw">=&gt;</span> ...
+}
+<span class="kw">val</span> ur = unparseContentHandler.getUnparseResult</pre><h5> Failures and Diagnostics </h5><p>It is possible that failures could occur during the creation of the
 <a href="ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>, or <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a>. However, rather than
 throwing an exception on error (e.g. invalid DFDL schema, parse
 error, etc), these classes extend <a href="WithDiagnostics.html" class="extype" name="org.apache.daffodil.sapi.WithDiagnostics">WithDiagnostics</a>, which is used to
@@ -188,8 +268,10 @@ determine if an error occurred, and any diagnostic information (see
 For example, when starting up, it may be quicker to reload an
 already compiled parser than to compile it from scratch. To save a
 <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)
-dp.save(saveFile);</pre><p>And to restore a saved <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = Daffodil.reload(saveFile);
-<span class="kw">val</span> pr = dp.parse(data, inputter);</pre></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a></dd></dl></div>
+dp.save(saveFile);</pre><p>And to restore a saved <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = Daffodil.reload(saveFile);</pre><p>And use like below:</p><pre><span class="kw">val</span> pr = dp.parse(data);</pre><p>or</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+... <span class="cmt">// setting appropriate handlers</span>
+xmlReader.parse(data)
+<span class="kw">val</span> pr = xmlReader.getProperty(<span class="lit">"...ParseResult"</span>)</pre></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a></dd></dl></div>
     </li><li name="org.apache.daffodil.sapi.debugger" visbl="pub" class="indented5 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="debugger"></a><a id="debugger:debugger"></a>
       <span class="permalink">
@@ -277,6 +359,22 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                         <a class="object" href="Daffodil$.html" title="Factory object to create a Compiler and set global configurations"></a>
                         <a href="Daffodil$.html" title="Factory object to create a Compiler and set global configurations">Daffodil</a>
                       </li><li class="current-entities indented4">
+                        <a class="object" href="DaffodilParseXMLReader$.html" title="The full URIs needed for setting/getting properties for the DaffodilParseXMLReader"></a>
+                        <a class="class" href="" title="SAX Method of parsing schema and getting the DFDL Infoset via designated org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface"></a>
+                        <a href="" title="SAX Method of parsing schema and getting the DFDL Infoset via designated org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface">DaffodilParseXMLReader</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnhandledSAXException.html" title="This exception will be thrown when an unexpected error occurs during the SAX unparse"></a>
+                        <a href="DaffodilUnhandledSAXException.html" title="This exception will be thrown when an unexpected error occurs during the SAX unparse">DaffodilUnhandledSAXException</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnparseContentHandler.html" title="Accepts SAX callback events from any SAX XMLReader for unparsing"></a>
+                        <a href="DaffodilUnparseContentHandler.html" title="Accepts SAX callback events from any SAX XMLReader for unparsing">DaffodilUnparseContentHandler</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnparseErrorSAXException.html" title="This exception will be thrown when unparseResult.isError returns true during a SAX Unparse"></a>
+                        <a href="DaffodilUnparseErrorSAXException.html" title="This exception will be thrown when unparseResult.isError returns true during a SAX Unparse">DaffodilUnparseErrorSAXException</a>
+                      </li><li class="current-entities indented4">
                         <span class="separator"></span>
                         <a class="class" href="DataLocation.html" title="Information related to a location in data"></a>
                         <a href="DataLocation.html" title="Information related to a location in data">DataLocation</a>
@@ -314,8 +412,8 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                         <a href="UnparseResult.html" title="Result of calling DataProcessor.unparse, containing diagnostic information">UnparseResult</a>
                       </li><li class="current-entities indented4">
                         <span class="separator"></span>
-                        <a class="object" href="" title="Validation modes for validating the resulting infoset against the DFDL schema"></a>
-                        <a href="" title="Validation modes for validating the resulting infoset against the DFDL schema">ValidationMode</a>
+                        <a class="object" href="ValidationMode$.html" title="Validation modes for validating the resulting infoset against the DFDL schema"></a>
+                        <a href="ValidationMode$.html" title="Validation modes for validating the resulting infoset against the DFDL schema">ValidationMode</a>
                       </li><li class="current-entities indented4">
                         <span class="separator"></span>
                         <a class="class" href="WithDiagnostics.html" title="Abstract class that adds diagnostic information to classes that extend it."></a>
@@ -325,35 +423,38 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
             </div>
           </div>
           <div id="content">
-            <body class="object value">
+            <body class="class type">
       <div id="definition">
-        <div class="big-circle object">o</div>
+        <a href="DaffodilParseXMLReader$.html" title="See companion object"><div class="big-circle class-companion-object">c</div></a>
         <p id="owner"><a href="../../../index.html" class="extype" name="org">org</a>.<a href="../../index.html" class="extype" name="org.apache">apache</a>.<a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a>.<a href="index.html" class="extype" name="org.apache.daffodil.sapi">sapi</a></p>
-        <h1>ValidationMode<span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html" title="Permalink">
+        <h1><a href="DaffodilParseXMLReader$.html" title="See companion object">DaffodilParseXMLReader</a><span class="permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span></h1>
-        <h3><span class="morelinks"></span></h3>
+        <h3><span class="morelinks"><div>
+            Companion <a href="DaffodilParseXMLReader$.html" title="See companion object">object DaffodilParseXMLReader</a>
+          </div></span></h3>
       </div>
 
       <h4 id="signature" class="signature">
       <span class="modifier_kind">
         <span class="modifier"></span>
-        <span class="kind">object</span>
+        <span class="kind">class</span>
       </span>
       <span class="symbol">
-        <span class="name">ValidationMode</span><span class="result"> extends <span class="extype" name="scala.Enumeration">Enumeration</span></span>
+        <span class="name">DaffodilParseXMLReader</span><span class="result"> extends <span class="extype" name="org.xml.sax.XMLReader">XMLReader</span></span>
       </span>
       </h4>
 
       
-          <div id="comment" class="fullcommenttop"><div class="comment cmt"><p>Validation modes for validating the resulting infoset against the DFDL schema
+          <div id="comment" class="fullcommenttop"><div class="comment cmt"><p>SAX Method of parsing schema and getting the DFDL Infoset via designated
+org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface
 </p></div><div class="toggleContainer block">
           <span class="toggle">
             Linear Supertypes
           </span>
-          <div class="superTypes hiddenContent"><span class="extype" name="scala.Enumeration">Enumeration</span>, <span class="extype" name="scala.Serializable">Serializable</span>, <span class="extype" name="java.io.Serializable">Serializable</span>, <span class="extype" name="scala.AnyRef">AnyRef</span>, <span class="extype" name="scala.Any">Any</span></div>
+          <div class="superTypes hiddenContent"><span class="extype" name="org.xml.sax.XMLReader">XMLReader</span>, <span class="extype" name="scala.AnyRef">AnyRef</span>, <span class="extype" name="scala.Any">Any</span></div>
         </div></div>
         
 
@@ -379,7 +480,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                   <span class="filtertype">Inherited<br />
                   </span>
                   <ol id="linearization">
-                    <li class="in" name="org.apache.daffodil.sapi.ValidationMode"><span>ValidationMode</span></li><li class="in" name="scala.Enumeration"><span>Enumeration</span></li><li class="in" name="scala.Serializable"><span>Serializable</span></li><li class="in" name="java.io.Serializable"><span>Serializable</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li><li class="in" name="scala.Any"><span>Any</span></li>
+                    <li class="in" name="org.apache.daffodil.sapi.DaffodilParseXMLReader"><span>DaffodilParseXMLReader</span></li><li class="in" name="org.xml.sax.XMLReader"><span>XMLReader</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li><li class="in" name="scala.Any"><span>Any</span></li>
                   </ol>
                 </div><div class="ancestors">
               <span class="filtertype"></span>
@@ -399,106 +500,105 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         <div id="allMembers">
         
 
-        <div id="types" class="types members">
-              <h3>Type Members</h3>
-              <ol><li name="scala.Enumeration.Val" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="ValextendsEnumeration.this.ValuewithSerializable"></a><a id="Val:Val"></a>
+        
+
+        
+
+        <div class="values members">
+              <h3>Value Members</h3>
+              <ol>
+                <li name="scala.AnyRef#!=" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="!=(x$1:Any):Boolean"></a><a id="!=(Any):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#ValextendsEnumeration.this.ValuewithSerializable" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#!=(x$1:Any):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">class</span>
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">Val</span><span class="result"> extends <span class="extype" name="scala.Enumeration.Value">Value</span> with <span class="extype" name="scala.Serializable">Serializable</span></span>
+        <span title="gt4s: $bang$eq" class="name">!=</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Any">Any</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected </dd><dt>Definition Classes</dt><dd>Enumeration</dd><dt>Annotations</dt><dd>
-                <span class="name">@SerialVersionUID</span><span class="args">()</span>
-              
-        </dd></dl></div>
-    </li><li name="org.apache.daffodil.sapi.ValidationMode.ValidationMode" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
-      <a id="ValidationMode=org.apache.daffodil.sapi.ValidationMode.Value"></a><a id="ValidationMode:ValidationMode"></a>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
+    </li><li name="scala.AnyRef###" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="##():Int"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#ValidationMode=org.apache.daffodil.sapi.ValidationMode.Value" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html###():Int" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">type</span>
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">ValidationMode</span><span class="result alias"> = <a href="#ValueextendsOrdered[Enumeration.this.Value]withSerializable" class="extmbr" name="org.apache.daffodil.sapi.ValidationMode.Value">Value</a></span>
+        <span title="gt4s: $hash$hash" class="name">##</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Int">Int</span></span>
       </span>
       
-      
-    </li><li name="scala.Enumeration.Value" visbl="pub" class="indented0 " data-isabs="true" fullComment="yes" group="Ungrouped">
-      <a id="ValueextendsOrdered[Enumeration.this.Value]withSerializable"></a><a id="Value:Value"></a>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
+    </li><li name="scala.AnyRef#==" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="==(x$1:Any):Boolean"></a><a id="==(Any):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#ValueextendsOrdered[Enumeration.this.Value]withSerializable" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#==(x$1:Any):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">abstract </span>
-        <span class="kind">class</span>
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">Value</span><span class="result"> extends <span class="extype" name="scala.Ordered">Ordered</span>[<span class="extype" name="scala.Enumeration.Value">Value</span>] with <span class="extype" name="scala.Serializable">Serializable</span></span>
+        <span title="gt4s: $eq$eq" class="name">==</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Any">Any</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Enumeration</dd><dt>Annotations</dt><dd>
-                <span class="name">@SerialVersionUID</span><span class="args">()</span>
-              
-        </dd></dl></div>
-    </li><li name="scala.Enumeration.ValueSet" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="ValueSetextendsAbstractSet[Enumeration.this.Value]withSortedSet[Enumeration.this.Value]withSortedSetLike[Enumeration.this.Value,Enumeration.this.ValueSet]withSerializable"></a><a id="ValueSet:ValueSet"></a>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
+    </li><li name="scala.Any#asInstanceOf" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="asInstanceOf[T0]:T0"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#ValueSetextendsAbstractSet[Enumeration.this.Value]withSortedSet[Enumeration.this.Value]withSortedSetLike[Enumeration.this.Value,Enumeration.this.ValueSet]withSerializable" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#asInstanceOf[T0]:T0" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">class</span>
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">ValueSet</span><span class="result"> extends <span class="extype" name="scala.collection.AbstractSet">AbstractSet</span>[<span class="extype" name="scala.Enumeration.Value">Value</span>] with <span class="extype" name="scala.collection.immutable.SortedSet">SortedSet</span>[<span class="extype" name="scala.Enumeration.Value">Value</span>] with <span class="extype" name="scala.collection.SortedSetLike">SortedSetLike</span>[<span class="extype" name="scala.Enumera [...]
+        <span class="name">asInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span class="extype" name="scala.Any.asInstanceOf.T0">T0</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Enumeration</dd></dl></div>
-    </li></ol>
-            </div>
-
-        
-
-        <div class="values members">
-              <h3>Value Members</h3>
-              <ol>
-                <li name="scala.AnyRef#!=" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="!=(x$1:Any):Boolean"></a><a id="!=(Any):Boolean"></a>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Any</dd></dl></div>
+    </li><li name="scala.AnyRef#clone" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="clone():Object"></a><a id="clone():AnyRef"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#!=(x$1:Any):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#clone():Object" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span title="gt4s: $bang$eq" class="name">!=</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Any">Any</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+        <span class="name">clone</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.AnyRef">AnyRef</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
-    </li><li name="scala.AnyRef###" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="##():Int"></a>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected[<span class="extype" name="java.lang">lang</span>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
+                <span class="name">@throws</span><span class="args">(<span>
+      
+      <span class="defval" name="classOf[java.lang.CloneNotSupportedException]">...</span>
+    </span>)</span>
+              
+                <span class="name">@native</span><span class="args">()</span>
+              
+        </dd></dl></div>
+    </li><li name="scala.AnyRef#eq" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="eq(x$1:AnyRef):Boolean"></a><a id="eq(AnyRef):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html###():Int" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#eq(x$1:AnyRef):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -507,198 +607,202 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span title="gt4s: $hash$hash" class="name">##</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Int">Int</span></span>
+        <span class="name">eq</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.AnyRef">AnyRef</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
-    </li><li name="scala.AnyRef#==" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="==(x$1:Any):Boolean"></a><a id="==(Any):Boolean"></a>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
+    </li><li name="scala.AnyRef#equals" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="equals(x$1:Any):Boolean"></a><a id="equals(Any):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#==(x$1:Any):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#equals(x$1:Any):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span title="gt4s: $eq$eq" class="name">==</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Any">Any</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+        <span class="name">equals</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Any">Any</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
       </span>
       
       <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
-    </li><li name="org.apache.daffodil.sapi.ValidationMode#Full" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
-      <a id="Full:org.apache.daffodil.sapi.ValidationMode.Value"></a><a id="Full:Value"></a>
+    </li><li name="scala.AnyRef#finalize" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="finalize():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#Full:org.apache.daffodil.sapi.ValidationMode.Value" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#finalize():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
         <span class="modifier"></span>
-        <span class="kind">val</span>
+        <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">Full</span><span class="result">: <a href="#ValueextendsOrdered[Enumeration.this.Value]withSerializable" class="extmbr" name="org.apache.daffodil.sapi.ValidationMode.Value">Value</a></span>
+        <span class="name">finalize</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
+      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected[<span class="extype" name="java.lang">lang</span>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
+                <span class="name">@throws</span><span class="args">(<span>
       
-    </li><li name="org.apache.daffodil.sapi.ValidationMode#Limited" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
-      <a id="Limited:org.apache.daffodil.sapi.ValidationMode.Value"></a><a id="Limited:Value"></a>
+      <span class="symbol">classOf[java.lang.Throwable]</span>
+    </span>)</span>
+              
+        </dd></dl></div>
+    </li><li name="scala.AnyRef#getClass" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="getClass():Class[_]"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#Limited:org.apache.daffodil.sapi.ValidationMode.Value" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#getClass():Class[_]" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">val</span>
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">Limited</span><span class="result">: <a href="#ValueextendsOrdered[Enumeration.this.Value]withSerializable" class="extmbr" name="org.apache.daffodil.sapi.ValidationMode.Value">Value</a></span>
+        <span class="name">getClass</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.Class">Class</span>[_]</span>
       </span>
       
-      
-    </li><li name="org.apache.daffodil.sapi.ValidationMode#Off" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
-      <a id="Off:org.apache.daffodil.sapi.ValidationMode.Value"></a><a id="Off:Value"></a>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd><dt>Annotations</dt><dd>
+                <span class="name">@native</span><span class="args">()</span>
+              
+        </dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#getContentHandler" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="getContentHandler():org.xml.sax.ContentHandler"></a><a id="getContentHandler():ContentHandler"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#Off:org.apache.daffodil.sapi.ValidationMode.Value" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#getContentHandler():org.xml.sax.ContentHandler" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
         <span class="modifier"></span>
-        <span class="kind">val</span>
+        <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">Off</span><span class="result">: <a href="#ValueextendsOrdered[Enumeration.this.Value]withSerializable" class="extmbr" name="org.apache.daffodil.sapi.ValidationMode.Value">Value</a></span>
+        <span class="name">getContentHandler</span><span class="params">()</span><span class="result">: <span class="extype" name="org.xml.sax.ContentHandler">ContentHandler</span></span>
       </span>
       
-      
-    </li><li name="scala.Enumeration#Value" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="Value(i:Int,name:String):Enumeration.this.Value"></a><a id="Value(Int,String):Value"></a>
+      <p class="shortcomment cmt">Retrieve registered content handler</p><div class="fullcomment"><div class="comment cmt"><p>Retrieve registered content handler</p></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>registered content handler or null</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> → XMLReader</dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#getDTDHandler" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="getDTDHandler():org.xml.sax.DTDHandler"></a><a id="getDTDHandler():DTDHandler"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#Value(i:Int,name:String):Enumeration.this.Value" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#getDTDHandler():org.xml.sax.DTDHandler" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">Value</span><span class="params">(<span name="i">i: <span class="extype" name="scala.Int">Int</span></span>, <span name="name">name: <span class="extype" name="scala.Predef.String">String</span></span>)</span><span class="result">: <a href="#ValueextendsOrdered[Enumeration.this.Value]withSerializable" class="extmbr" name="org.apache.daffodil.sapi.ValidationMode.Value">Value</a></span>
+        <span class="name">getDTDHandler</span><span class="params">()</span><span class="result">: <span class="extype" name="org.xml.sax.DTDHandler">DTDHandler</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected </dd><dt>Definition Classes</dt><dd>Enumeration</dd></dl></div>
-    </li><li name="scala.Enumeration#Value" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="Value(name:String):Enumeration.this.Value"></a><a id="Value(String):Value"></a>
+      <p class="shortcomment cmt">Retrieve registered DTD Handler</p><div class="fullcomment"><div class="comment cmt"><p>Retrieve registered DTD Handler</p></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>registered DTD Handler or null</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> → XMLReader</dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#getEntityResolver" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="getEntityResolver():org.xml.sax.EntityResolver"></a><a id="getEntityResolver():EntityResolver"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#Value(name:String):Enumeration.this.Value" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#getEntityResolver():org.xml.sax.EntityResolver" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">Value</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span></span>)</span><span class="result">: <a href="#ValueextendsOrdered[Enumeration.this.Value]withSerializable" class="extmbr" name="org.apache.daffodil.sapi.ValidationMode.Value">Value</a></span>
+        <span class="name">getEntityResolver</span><span class="params">()</span><span class="result">: <span class="extype" name="org.xml.sax.EntityResolver">EntityResolver</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected </dd><dt>Definition Classes</dt><dd>Enumeration</dd></dl></div>
-    </li><li name="scala.Enumeration#Value" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="Value(i:Int):Enumeration.this.Value"></a><a id="Value(Int):Value"></a>
+      <p class="shortcomment cmt">Return the registered entity resolver</p><div class="fullcomment"><div class="comment cmt"><p>Return the registered entity resolver</p></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>registered entity resolver or null</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> → XMLReader</dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#getErrorHandler" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="getErrorHandler():org.xml.sax.ErrorHandler"></a><a id="getErrorHandler():ErrorHandler"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#Value(i:Int):Enumeration.this.Value" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#getErrorHandler():org.xml.sax.ErrorHandler" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">Value</span><span class="params">(<span name="i">i: <span class="extype" name="scala.Int">Int</span></span>)</span><span class="result">: <a href="#ValueextendsOrdered[Enumeration.this.Value]withSerializable" class="extmbr" name="org.apache.daffodil.sapi.ValidationMode.Value">Value</a></span>
+        <span class="name">getErrorHandler</span><span class="params">()</span><span class="result">: <span class="extype" name="org.xml.sax.ErrorHandler">ErrorHandler</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected </dd><dt>Definition Classes</dt><dd>Enumeration</dd></dl></div>
-    </li><li name="scala.Enumeration#Value" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="Value:Enumeration.this.Value"></a><a id="Value:Value"></a>
+      <p class="shortcomment cmt">Retrieve registered error handler</p><div class="fullcomment"><div class="comment cmt"><p>Retrieve registered error handler</p></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>registered error handler or null</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> → XMLReader</dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#getFeature" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="getFeature(name:String):Boolean"></a><a id="getFeature(String):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#Value:Enumeration.this.Value" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#getFeature(name:String):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">Value</span><span class="result">: <a href="#ValueextendsOrdered[Enumeration.this.Value]withSerializable" class="extmbr" name="org.apache.daffodil.sapi.ValidationMode.Value">Value</a></span>
+        <span class="name">getFeature</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected </dd><dt>Definition Classes</dt><dd>Enumeration</dd></dl></div>
-    </li><li name="scala.Enumeration#apply" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="apply(x:Int):Enumeration.this.Value"></a><a id="apply(Int):Value"></a>
+      <p class="shortcomment cmt">Get the value of the feature flag</p><div class="fullcomment"><div class="comment cmt"><p>Get the value of the feature flag</p></div><dl class="paramcmts block"><dt class="param">name</dt><dd class="cmt"><p>feature flag whose value is to be retrieved</p></dd><dt>returns</dt><dd class="cmt"><p>value of the feature flag</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.Daffodi [...]
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#getProperty" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="getProperty(name:String):AnyRef"></a><a id="getProperty(String):AnyRef"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#apply(x:Int):Enumeration.this.Value" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#getProperty(name:String):AnyRef" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">apply</span><span class="params">(<span name="x">x: <span class="extype" name="scala.Int">Int</span></span>)</span><span class="result">: <a href="#ValueextendsOrdered[Enumeration.this.Value]withSerializable" class="extmbr" name="org.apache.daffodil.sapi.ValidationMode.Value">Value</a></span>
+        <span class="name">getProperty</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span></span>)</span><span class="result">: <span class="extype" name="scala.AnyRef">AnyRef</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Enumeration</dd></dl></div>
-    </li><li name="scala.Any#asInstanceOf" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="asInstanceOf[T0]:T0"></a>
+      <p class="shortcomment cmt">Get the value of the property</p><div class="fullcomment"><div class="comment cmt"><p>Get the value of the property</p></div><dl class="paramcmts block"><dt class="param">name</dt><dd class="cmt"><p>property whose value is to be retrieved</p></dd><dt>returns</dt><dd class="cmt"><p>value of the property</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader" [...]
+    </li><li name="scala.AnyRef#hashCode" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="hashCode():Int"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#asInstanceOf[T0]:T0" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#hashCode():Int" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">asInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span class="extype" name="scala.Any.asInstanceOf.T0">T0</span></span>
+        <span class="name">hashCode</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Int">Int</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Any</dd></dl></div>
-    </li><li name="scala.AnyRef#clone" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="clone():Object"></a><a id="clone():AnyRef"></a>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd><dt>Annotations</dt><dd>
+                <span class="name">@native</span><span class="args">()</span>
+              
+        </dd></dl></div>
+    </li><li name="scala.Any#isInstanceOf" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="isInstanceOf[T0]:Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#clone():Object" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#isInstanceOf[T0]:Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier"></span>
+        <span class="modifier">final </span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">clone</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.AnyRef">AnyRef</span></span>
+        <span class="name">isInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected[<span class="extype" name="java.lang">lang</span>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
-                <span class="name">@throws</span><span class="args">(<span>
-      
-      <span class="defval" name="classOf[java.lang.CloneNotSupportedException]">...</span>
-    </span>)</span>
-              
-                <span class="name">@native</span><span class="args">()</span>
-              
-        </dd></dl></div>
-    </li><li name="scala.AnyRef#eq" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="eq(x$1:AnyRef):Boolean"></a><a id="eq(AnyRef):Boolean"></a>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Any</dd></dl></div>
+    </li><li name="scala.AnyRef#ne" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="ne(x$1:AnyRef):Boolean"></a><a id="ne(AnyRef):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#eq(x$1:AnyRef):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#ne(x$1:AnyRef):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -707,71 +811,69 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">eq</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.AnyRef">AnyRef</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+        <span class="name">ne</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.AnyRef">AnyRef</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
       </span>
       
       <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
-    </li><li name="scala.AnyRef#equals" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="equals(x$1:Any):Boolean"></a><a id="equals(Any):Boolean"></a>
+    </li><li name="scala.AnyRef#notify" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="notify():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#equals(x$1:Any):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#notify():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier"></span>
+        <span class="modifier">final </span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">equals</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Any">Any</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+        <span class="name">notify</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
-    </li><li name="scala.AnyRef#finalize" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="finalize():Unit"></a>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
+                <span class="name">@native</span><span class="args">()</span>
+              
+        </dd></dl></div>
+    </li><li name="scala.AnyRef#notifyAll" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="notifyAll():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#finalize():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#notifyAll():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier"></span>
+        <span class="modifier">final </span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">finalize</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
+        <span class="name">notifyAll</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected[<span class="extype" name="java.lang">lang</span>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
-                <span class="name">@throws</span><span class="args">(<span>
-      
-      <span class="symbol">classOf[java.lang.Throwable]</span>
-    </span>)</span>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
+                <span class="name">@native</span><span class="args">()</span>
               
         </dd></dl></div>
-    </li><li name="scala.AnyRef#getClass" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="getClass():Class[_]"></a>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="parse(arr:Array[Byte]):Unit"></a><a id="parse(Array[Byte]):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#getClass():Class[_]" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#parse(arr:Array[Byte]):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">getClass</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.Class">Class</span>[_]</span>
+        <span class="name">parse</span><span class="params">(<span name="arr">arr: <span class="extype" name="scala.Array">Array</span>[<span class="extype" name="scala.Byte">Byte</span>]</span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd><dt>Annotations</dt><dd>
-                <span class="name">@native</span><span class="args">()</span>
-              
-        </dd></dl></div>
-    </li><li name="scala.AnyRef#hashCode" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="hashCode():Int"></a>
+      <p class="shortcomment cmt">Parse input data from an array of bytes.</p><div class="fullcomment"><div class="comment cmt"><p>Parse input data from an array of bytes. Infoset can retrieved via the registered
+contentHandler and diagnostics via the registered errorHandler</p></div><dl class="paramcmts block"><dt class="param">arr</dt><dd class="cmt"><p>data to be parsed</p></dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="parse(stream:java.io.InputStream):Unit"></a><a id="parse(InputStream):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#hashCode():Int" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#parse(stream:java.io.InputStream):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -780,135 +882,129 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">hashCode</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Int">Int</span></span>
+        <span class="name">parse</span><span class="params">(<span name="stream">stream: <span class="extype" name="java.io.InputStream">InputStream</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd><dt>Annotations</dt><dd>
-                <span class="name">@native</span><span class="args">()</span>
-              
-        </dd></dl></div>
-    </li><li name="scala.Any#isInstanceOf" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="isInstanceOf[T0]:Boolean"></a>
+      <p class="shortcomment cmt">Parse input data from an InputStream.</p><div class="fullcomment"><div class="comment cmt"><p>Parse input data from an InputStream. Infoset can retrieved via the registered contentHandler
+and diagnostics via the registered errorHandler</p></div><dl class="paramcmts block"><dt class="param">stream</dt><dd class="cmt"><p>data to be parsed</p></dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit"></a><a id="parse(InputSourceDataInputStream):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#isInstanceOf[T0]:Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">isInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+        <span class="name">parse</span><span class="params">(<span name="isdis">isdis: <a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Any</dd></dl></div>
-    </li><li name="scala.Enumeration#maxId" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="maxId:Int"></a>
+      <p class="shortcomment cmt">Parse input data from an InputSourceDataInputStream.</p><div class="fullcomment"><div class="comment cmt"><p>Parse input data from an InputSourceDataInputStream. Infoset can retrieved via the registered
+contentHandler and diagnostics via the registered errorHandler</p></div><dl class="paramcmts block"><dt class="param">isdis</dt><dd class="cmt"><p>data to be parsed</p></dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="parse(systemId:String):Unit"></a><a id="parse(String):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#maxId:Int" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#parse(systemId:String):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">maxId</span><span class="result">: <span class="extype" name="scala.Int">Int</span></span>
+        <span class="name">parse</span><span class="params">(<span name="systemId">systemId: <span class="extype" name="scala.Predef.String">String</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Enumeration</dd></dl></div>
-    </li><li name="scala.AnyRef#ne" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="ne(x$1:AnyRef):Boolean"></a><a id="ne(AnyRef):Boolean"></a>
+      <p class="shortcomment cmt">Parse data from a system identifier/URI.</p><div class="fullcomment"><div class="comment cmt"><p>Parse data from a system identifier/URI. This method is not supported by the API.</p></div><dl class="paramcmts block"><dt class="param">systemId</dt><dd class="cmt"><p>URI for data to be parsed</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilPar [...]
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="parse(input:org.xml.sax.InputSource):Unit"></a><a id="parse(InputSource):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#ne(x$1:AnyRef):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#parse(input:org.xml.sax.InputSource):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">ne</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.AnyRef">AnyRef</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+        <span class="name">parse</span><span class="params">(<span name="input">input: <span class="extype" name="org.xml.sax.InputSource">InputSource</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
-    </li><li name="scala.Enumeration#nextId" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="nextId:Int"></a>
+      <p class="shortcomment cmt">Parse input data from an InputSource.</p><div class="fullcomment"><div class="comment cmt"><p>Parse input data from an InputSource. Infoset can be retrieved via the registered
+contentHandler and diagnostics via the registered errorHandler</p></div><dl class="paramcmts block"><dt class="param">input</dt><dd class="cmt"><p>data to be parsed</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> → XMLReader</dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setContentHandler" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="setContentHandler(handler:org.xml.sax.ContentHandler):Unit"></a><a id="setContentHandler(ContentHandler):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#nextId:Int" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#setContentHandler(handler:org.xml.sax.ContentHandler):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
         <span class="modifier"></span>
-        <span class="kind">var</span>
+        <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">nextId</span><span class="result">: <span class="extype" name="scala.Int">Int</span></span>
+        <span class="name">setContentHandler</span><span class="params">(<span name="handler">handler: <span class="extype" name="org.xml.sax.ContentHandler">ContentHandler</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected </dd><dt>Definition Classes</dt><dd>Enumeration</dd></dl></div>
-    </li><li name="scala.Enumeration#nextName" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="nextName:Iterator[String]"></a>
+      <p class="shortcomment cmt">Register a content handler</p><div class="fullcomment"><div class="comment cmt"><p>Register a content handler</p></div><dl class="paramcmts block"><dt class="param">handler</dt><dd class="cmt"><p>content handler to be registered</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> → XMLReader</dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setDTDHandler" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="setDTDHandler(handler:org.xml.sax.DTDHandler):Unit"></a><a id="setDTDHandler(DTDHandler):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#nextName:Iterator[String]" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#setDTDHandler(handler:org.xml.sax.DTDHandler):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
         <span class="modifier"></span>
-        <span class="kind">var</span>
+        <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">nextName</span><span class="result">: <span class="extype" name="scala.Iterator">Iterator</span>[<span class="extype" name="scala.Predef.String">String</span>]</span>
+        <span class="name">setDTDHandler</span><span class="params">(<span name="handler">handler: <span class="extype" name="org.xml.sax.DTDHandler">DTDHandler</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected </dd><dt>Definition Classes</dt><dd>Enumeration</dd></dl></div>
-    </li><li name="scala.AnyRef#notify" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="notify():Unit"></a>
+      <p class="shortcomment cmt">Register a DTD Handler</p><div class="fullcomment"><div class="comment cmt"><p>Register a DTD Handler</p></div><dl class="paramcmts block"><dt class="param">handler</dt><dd class="cmt"><p>DTD Handler to be registered</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> → XMLReader</dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setEntityResolver" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="setEntityResolver(resolver:org.xml.sax.EntityResolver):Unit"></a><a id="setEntityResolver(EntityResolver):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#notify():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#setEntityResolver(resolver:org.xml.sax.EntityResolver):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">notify</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
+        <span class="name">setEntityResolver</span><span class="params">(<span name="resolver">resolver: <span class="extype" name="org.xml.sax.EntityResolver">EntityResolver</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
-                <span class="name">@native</span><span class="args">()</span>
-              
-        </dd></dl></div>
-    </li><li name="scala.AnyRef#notifyAll" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="notifyAll():Unit"></a>
+      <p class="shortcomment cmt">Register an entity resolver</p><div class="fullcomment"><div class="comment cmt"><p>Register an entity resolver</p></div><dl class="paramcmts block"><dt class="param">resolver</dt><dd class="cmt"><p>entity resolver to be registered</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> → XMLReader</dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setErrorHandler" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="setErrorHandler(handler:org.xml.sax.ErrorHandler):Unit"></a><a id="setErrorHandler(ErrorHandler):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#notifyAll():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#setErrorHandler(handler:org.xml.sax.ErrorHandler):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">notifyAll</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
+        <span class="name">setErrorHandler</span><span class="params">(<span name="handler">handler: <span class="extype" name="org.xml.sax.ErrorHandler">ErrorHandler</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
-                <span class="name">@native</span><span class="args">()</span>
-              
-        </dd></dl></div>
-    </li><li name="scala.Enumeration#readResolve" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="readResolve():AnyRef"></a>
+      <p class="shortcomment cmt">Register an error handler</p><div class="fullcomment"><div class="comment cmt"><p>Register an error handler</p></div><dl class="paramcmts block"><dt class="param">handler</dt><dd class="cmt"><p>error handler to be registered</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> → XMLReader</dd></dl></div>
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setFeature" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="setFeature(name:String,value:Boolean):Unit"></a><a id="setFeature(String,Boolean):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#readResolve():AnyRef" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#setFeature(name:String,value:Boolean):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -917,46 +1013,46 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">readResolve</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.AnyRef">AnyRef</span></span>
+        <span class="name">setFeature</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="value">value: <span class="extype" name="scala.Boolean">Boolean</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected </dd><dt>Definition Classes</dt><dd>Enumeration</dd></dl></div>
-    </li><li name="scala.AnyRef#synchronized" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="synchronized[T0](x$1:=&gt;T0):T0"></a><a id="synchronized[T0](⇒T0):T0"></a>
+      <p class="shortcomment cmt">Set the value of the feature flag</p><div class="fullcomment"><div class="comment cmt"><p>Set the value of the feature flag</p></div><dl class="paramcmts block"><dt class="param">name</dt><dd class="cmt"><p>feature flag to be set</p></dd><dt class="param">value</dt><dd class="cmt"><p>value to be assigned to feature flag</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.Daffo [...]
+    </li><li name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setProperty" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="setProperty(name:String,value:AnyRef):Unit"></a><a id="setProperty(String,AnyRef):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#synchronized[T0](x$1:=&gt;T0):T0" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#setProperty(name:String,value:AnyRef):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier">final </span>
+        <span class="modifier"></span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">synchronized</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="params">(<span name="arg0">arg0: ⇒ <span class="extype" name="java.lang.AnyRef.synchronized.T0">T0</span></span>)</span><span class="result">: <span class="extype" name="java.lang.AnyRef.synchronized.T0">T0</span></span>
+        <span class="name">setProperty</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="value">value: <span class="extype" name="scala.AnyRef">AnyRef</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
-    </li><li name="scala.Enumeration#toString" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="toString():String"></a>
+      <p class="shortcomment cmt">Set the value of the property</p><div class="fullcomment"><div class="comment cmt"><p>Set the value of the property</p></div><dl class="paramcmts block"><dt class="param">name</dt><dd class="cmt"><p>property whose value is to be set</p></dd><dt class="param">value</dt><dd class="cmt"><p>value to be assigned to the property</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="" class="extype" name="org.apache.daffodil.sapi.Da [...]
+    </li><li name="scala.AnyRef#synchronized" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="synchronized[T0](x$1:=&gt;T0):T0"></a><a id="synchronized[T0](⇒T0):T0"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#toString():String" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#synchronized[T0](x$1:=&gt;T0):T0" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
       <span class="modifier_kind">
-        <span class="modifier"></span>
+        <span class="modifier">final </span>
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">toString</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.String">String</span></span>
+        <span class="name">synchronized</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="params">(<span name="arg0">arg0: ⇒ <span class="extype" name="java.lang.AnyRef.synchronized.T0">T0</span></span>)</span><span class="result">: <span class="extype" name="java.lang.AnyRef.synchronized.T0">T0</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Enumeration → AnyRef → Any</dd></dl></div>
-    </li><li name="scala.Enumeration#values" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="values:Enumeration.this.ValueSet"></a><a id="values:ValueSet"></a>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
+    </li><li name="scala.AnyRef#toString" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="toString():String"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#values:Enumeration.this.ValueSet" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#toString():String" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -965,14 +1061,14 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         <span class="kind">def</span>
       </span>
       <span class="symbol">
-        <span class="name">values</span><span class="result">: <a href="#ValueSetextendsAbstractSet[Enumeration.this.Value]withSortedSet[Enumeration.this.Value]withSortedSetLike[Enumeration.this.Value,Enumeration.this.ValueSet]withSerializable" class="extmbr" name="org.apache.daffodil.sapi.ValidationMode.ValueSet">ValueSet</a></span>
+        <span class="name">toString</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.String">String</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Enumeration</dd></dl></div>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
     </li><li name="scala.AnyRef#wait" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="wait():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#wait():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#wait():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -994,7 +1090,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#wait" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="wait(x$1:Long,x$2:Int):Unit"></a><a id="wait(Long,Int):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#wait(x$1:Long,x$2:Int):Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#wait(x$1:Long,x$2:Int):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -1016,7 +1112,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#wait" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="wait(x$1:Long):Unit"></a><a id="wait(Long):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#wait(x$1:Long):Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilParseXMLReader.html#wait(x$1:Long):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -1037,22 +1133,6 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                 <span class="name">@native</span><span class="args">()</span>
               
         </dd></dl></div>
-    </li><li name="scala.Enumeration#withName" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
-      <a id="withName(s:String):Enumeration.this.Value"></a><a id="withName(String):Value"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/ValidationMode$.html#withName(s:String):Enumeration.this.Value" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier">final </span>
-        <span class="kind">def</span>
-      </span>
-      <span class="symbol">
-        <span class="name">withName</span><span class="params">(<span name="s">s: <span class="extype" name="scala.Predef.String">String</span></span>)</span><span class="result">: <a href="#ValueextendsOrdered[Enumeration.this.Value]withSerializable" class="extmbr" name="org.apache.daffodil.sapi.ValidationMode.Value">Value</a></span>
-      </span>
-      
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Enumeration</dd></dl></div>
     </li>
               </ol>
             </div>
@@ -1063,12 +1143,8 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         </div>
 
         <div id="inheritedMembers">
-        <div class="parent" name="scala.Enumeration">
-              <h3>Inherited from <span class="extype" name="scala.Enumeration">Enumeration</span></h3>
-            </div><div class="parent" name="scala.Serializable">
-              <h3>Inherited from <span class="extype" name="scala.Serializable">Serializable</span></h3>
-            </div><div class="parent" name="java.io.Serializable">
-              <h3>Inherited from <span class="extype" name="java.io.Serializable">Serializable</span></h3>
+        <div class="parent" name="org.xml.sax.XMLReader">
+              <h3>Inherited from <span class="extype" name="org.xml.sax.XMLReader">XMLReader</span></h3>
             </div><div class="parent" name="scala.AnyRef">
               <h3>Inherited from <span class="extype" name="scala.AnyRef">AnyRef</span></h3>
             </div><div class="parent" name="scala.Any">
diff --git a/content/docs/latest/scaladoc/org/apache/daffodil/sapi/InvalidUsageException.html b/content/docs/latest/scaladoc/org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html
similarity index 69%
copy from content/docs/latest/scaladoc/org/apache/daffodil/sapi/InvalidUsageException.html
copy to content/docs/latest/scaladoc/org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html
index fe2a0f7..703e07e 100644
--- a/content/docs/latest/scaladoc/org/apache/daffodil/sapi/InvalidUsageException.html
+++ b/content/docs/latest/scaladoc/org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html
@@ -3,9 +3,9 @@
         <head>
           <meta http-equiv="X-UA-Compatible" content="IE=edge" />
           <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
-          <title>Apache Daffodil (incubating) 2.7.0 Scala API  - org.apache.daffodil.sapi.InvalidUsageException</title>
-          <meta name="description" content="Apache Daffodil incubating 2.7.0 Scala API - org.apache.daffodil.sapi.InvalidUsageException" />
-          <meta name="keywords" content="Apache Daffodil incubating 2.7.0 Scala API org.apache.daffodil.sapi.InvalidUsageException" />
+          <title>Apache Daffodil (incubating) 3.0.0 Scala API  - org.apache.daffodil.sapi.DaffodilUnhandledSAXException</title>
+          <meta name="description" content="Apache Daffodil incubating 3.0.0 Scala API - org.apache.daffodil.sapi.DaffodilUnhandledSAXException" />
+          <meta name="keywords" content="Apache Daffodil incubating 3.0.0 Scala API org.apache.daffodil.sapi.DaffodilUnhandledSAXException" />
           <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
           
       
@@ -28,7 +28,7 @@
         </head>
         <body>
       <div id="search">
-        <span id="doc-title">Apache Daffodil (incubating) 2.7.0 Scala API<span id="doc-version"></span></span>
+        <span id="doc-title">Apache Daffodil (incubating) 3.0.0 Scala API<span id="doc-version"></span></span>
         <span class="close-results"><span class="left">&lt;</span> Back</span>
         <div id="textfilter">
           <span class="input">
@@ -65,10 +65,10 @@
         <span class="kind">package</span>
       </span>
       <span class="symbol">
-        <a title="org.apache.daffodil.sapi - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics" href="../../../../index.html"><span class="name">root</span></a>
+        <a title="This is the documentation for the Apache Daffodil (incubating) Scala API." href="../../../../index.html"><span class="name">root</span></a>
       </span>
       
-      <p class="shortcomment cmt"><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><h4> Apache Daffodil (incubating) Scala API </h4><h5> Packages </h5><p><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daf [...]
+      <p class="shortcomment cmt">This is the documentation for the Apache Daffodil (incubating) Scala API.</p><div class="fullcomment"><div class="comment cmt"><p>This is the documentation for the Apache Daffodil (incubating) Scala API.</p><h5> Package structure </h5><p><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve  [...]
     </li><li name="_root_.org" visbl="pub" class="indented1 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="org"></a><a id="org:org"></a>
       <span class="permalink">
@@ -137,29 +137,50 @@ unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><p>Provides the classes necessary to compile DFDL schemas, parse and
 unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><h5> Overview </h5><p>The <a href="Daffodil$.html" class="extype" name="org.apache.daffodil.sapi.Daffodil">Daffodil</a> object is a factory object to create a <a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a>. The
-<a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compils a provided DFDL schema into a
+<a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compile a provided DFDL schema into a
 <a href="ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, which creates a <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> c = Daffodil.compiler()
 <span class="kw">val</span> pf = c.compileFile(file)
 <span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)</pre><p>The <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> provides the necessary functions to parse and unparse
 data, returning a <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> or <a href="UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>, respectively. These
 contain information about the parse/unparse, such as whether or not the
-processing succeeded any diagnostic information.</p><h6> Parse </h6><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form
-of a <a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a> and an <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
-to determine the output representation of the infoset (e.g. Scala XML Nodes,
-JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+processing succeeded with any diagnostic information.</p><p>The <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> also provides two functions that can be used to perform parsing/unparsing
+via the SAX API. The first creates a <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> which is used for parsing, and the
+second creates a <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> which is used for unparsing.</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(output)</pre><p>The <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> has several methods that allow one to set properties and handlers
+(such as ContentHandlers or ErrorHandlers) for the reader. One can use any
+contentHandler/errorHandler as long as they extend the org.xml.sax.ContentHandler and
+org.xml.sax.ErrorHandler interfaces respectively. One can also set properties for the
+<a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using <a href="DaffodilParseXMLReader.html#setProperty(name:String,value:AnyRef):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setProperty">DaffodilParseXMLReader.setProperty</a>.</p><p>The following properties can be set as follows:</p><p><i>The constants below have literal values starting with
+"urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:" and ending with "BlobDirectory",
+"BlobPrefix" and "BlobSuffix" respectively.</i></p><pre>xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBDIRECTORY,
+ Paths.get(System.getProperty(<span class="lit">"java.io.tmpdir"</span>))) <span class="cmt">// value type: java.nio.file.Paths</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBPREFIX, <span class="lit">"daffodil-sax-"</span>) <span class="cmt">// value type String</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBSUFFIX, <span class="lit">".bin"</span>) <span class="cmt">// value type String</span></pre><p>The properties can be retrieved using the same variables with
+<a href="DaffodilParseXMLReader.html#getProperty(name:String):AnyRef" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#getProperty">DaffodilParseXMLReader.getProperty</a> and casting
+to the appropriate type as listed above.</p><p>The following handlers can be set as follows:</p><pre>xmlReader.setContentHandler(contentHandler)
+xmlReader.setErrorHandler(errorHandler)</pre><p>The handlers above must implement the following interfaces respectively:</p><pre>org.xml.sax.ContentHandler
+org.xml.sax.ErrorHandler</pre><p>The <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> can be found as a property within the <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using this
+uri: &quot;urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:ParseResult&quot; or
+<a href="DaffodilParseXMLReader$.html#DAFFODIL_SAX_URN_PARSERESULT:String" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#DAFFODIL_SAX_URN_PARSERESULT">DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT</a></p><p>In order for a successful unparse to happen, the SAX API requires the
+unparse to be kicked off by a parse call to any org.xml.sax.XMLReader implementation that has the
+<a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> registered as its content handler. To retrieve the <a href="UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>,
+one can use <a href="DaffodilUnparseContentHandler.html#getUnparseResult:org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler#getUnparseResult">DaffodilUnparseContentHandler.getUnparseResult</a> once the XMLReader.parse run is
+complete.</p><h6> Parse </h6><h6> Dataprocessor Parse </h6><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form of a <a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.i [...]
+the output representation of the infoset (e.g. Scala XML Nodes, JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(data)
 <span class="kw">val</span> pr = dp.parse(is, scalaOutputter)
-<span class="kw">val</span> node = scalaOutputter.getResult</pre><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method is thread-safe and may be called multiple
-times without the need to create other data processors. However,
-<a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>'s are not thread safe, requiring a unique instance per
-thread. An <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> should call <a href="infoset/InfosetOutputter.html#reset():Unit" class="extmbr" name="org.apache.daffodil.sapi.infoset.InfosetOutputter#reset">InfosetOutputter.reset</a> before
-reuse (or a new one should be allocated). For example:</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+<span class="kw">val</span> node = scalaOutputter.getResult</pre><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method is thread-safe and may be called multiple times without the need to
+create other data processors. However, <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>'s are not
+thread safe, requiring a unique instance per thread. An <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
+should call <a href="infoset/InfosetOutputter.html#reset():Unit" class="extmbr" name="org.apache.daffodil.sapi.infoset.InfosetOutputter#reset">InfosetOutputter.reset</a> before reuse (or a new one
+should be allocated). For example:</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 files.foreach { f <span class="kw">=&gt;</span> {
   outputter.reset
   <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(<span class="kw">new</span> FileInputStream(f))
   <span class="kw">val</span> pr = dp.parse(is, scalaOutputter)
   <span class="kw">val</span> node = scalaOutputter.getResult
-}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
+}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
 <span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
 <span class="kw">val</span> keepParsing = <span class="kw">true</span>
 <span class="kw">while</span> (keepParsing) {
@@ -167,11 +188,70 @@ files.foreach { f <span class="kw">=&gt;</span> {
   <span class="kw">val</span> pr = dp.parse(is, jdomOutputter)
   ...
   keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError()
-}</pre><h6> Unparse </h6><p>The same <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> used for parse can be used to unparse an infoset
-via the <a href="DataProcessor.html#unparse(input:org.apache.daffodil.sapi.infoset.InfosetInputter,output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#unparse">DataProcessor.unparse</a> method. An <a href="infoset/InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a>
-provides the infoset to unparse, with the unparsed data written to the
-provided java.nio.channels.WritableByteChannel. For example:</p><pre><span class="kw">val</span> inputter = <span class="kw">new</span> ScalaXMLInfosetInputter(node)
-<span class="kw">val</span> ur = dp.unparse(inputter, wbc)</pre><h5> Failures and Diagnostics </h5><p>It is possible that failures could occur during the creation of the
+}</pre><h6> SAX Parse </h6><p>The <a href="DaffodilParseXMLReader.html#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse">DaffodilParseXMLReader.parse</a> method accepts input data to parse in the form of a
+<a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a>. The output representation of the
+infoset, as well as how parse errors are handled, are dependent on the content handler and the
+error handler provided to the <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a>. For example, the org.jdom2.input.sax.SAXHandler
+provides a JDOM representation, whereas other ContentHandlers may output directly to a
+java.io.OutputStream or java.io.Writer.</p><pre><span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+<span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(data)
+xmlReader.parse(is)
+<span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+<span class="kw">val</span> doc = saxHandler.getDocument</pre><p>The <a href="DaffodilParseXMLReader.html#parse(isdis:org.apache.daffodil.sapi.io.InputSourceDataInputStream):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#parse">DaffodilParseXMLReader.parse</a> method is not thread-safe and may only be called again/reused once
+a parse operation is completed. This can be done multiple times without the need to create new
+DaffodilParseXMLReaders, ContentHandlers or ErrorHandlers. It might be necessary to reset whatever
+ContentHandler is used (or allocate a new one). A thread-safe implementation would require unique
+instances of the DaffodilParseXMLReader and its components. For example:</p><pre><span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+files.foreach { f <span class="kw">=&gt;</span> {
+  contentHandler.reset
+  <span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(<span class="kw">new</span> FileInputStream(f))
+  xmlReader.parse(is)
+  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+  <span class="kw">val</span> doc = saxHandler.getDocument
+}</pre><p>One can repeat calls to parse() using the same InputSourceDataInputStream to continue parsing
+where the previous parse ended. For example:</p><pre><span class="kw">val</span> is = <span class="kw">new</span> InputSourceDataInputStream(dataStream)
+<span class="kw">val</span> contentHandler = <span class="kw">new</span> SAXHandler()
+xmlReader.setContentHandler(contentHandler)
+<span class="kw">val</span> keepParsing = <span class="kw">true</span>
+<span class="kw">while</span> (keepParsing) {
+  contentHandler.reset()
+  xmlReader.parse(is)
+  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
+  ...
+  keepParsing = !pr.location().isAtEnd() &amp;&amp; !pr.isError()
+}</pre><h6> Unparse </h6><h6> Dataprocessor Unparse </h6><p>The same <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> used for parse can be used to unparse an infoset
+via the <a href="DataProcessor.html#unparse(input:org.apache.daffodil.sapi.infoset.InfosetInputter,output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#unparse">DataProcessor.unparse</a> method. An
+<a href="infoset/InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> provides the infoset to unparse, with the unparsed
+data written to the provided java.nio.channels.WritableByteChannel. For example:</p><pre><span class="kw">val</span> inputter = <span class="kw">new</span> ScalaXMLInfosetInputter(node)
+<span class="kw">val</span> ur = dp.unparse(inputter, wbc)</pre><h6> SAX Unparse </h6><p>In order to kick off an unparse via the SAX API, one must register the <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a>
+as the contentHandler for an XMLReader implementation. The call to the
+<a href="DataProcessor.html#newContentHandlerInstance(output:java.nio.channels.WritableByteChannel):org.apache.daffodil.sapi.DaffodilUnparseContentHandler" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#newContentHandlerInstance">DataProcessor.newContentHandlerInstance</a> method
+must be provided with the java.nio.channels.WritableByteChannel, where the unparsed data ought to
+be written to. Any XMLReader implementation is permissible, as long as they have XML
+Namespace support.</p><pre><span class="kw">val</span> is = <span class="kw">new</span> ByteArrayInputStream(data)
+<span class="kw">val</span> os = <span class="kw">new</span> ByteArrayOutputStream()
+<span class="kw">val</span> wbc = java.nio.channels.Channels.newChannel(os)
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(wbc)
+<span class="kw">val</span> xmlReader = SAXParserFactory.newInstance.newSAXParser.getXMLReader
+xmlReader.setContentHandler(unparseContentHandler)
+<span class="kw">try</span> {
+ xmlReader.parse(is)
+} <span class="kw">catch</span> {
+ <span class="kw">case</span> _: DaffodilUnparseErrorSAXException <span class="kw">=&gt;</span> ...
+ <span class="kw">case</span> _: DaffodilUnhandledSAXException <span class="kw">=&gt;</span> ...
+}</pre><p>The call to the XMLReader.parse method must be wrapped in a try/catch, as <a href="DaffodilUnparseContentHandler.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a>
+relies on throwing an exception to end processing in the case of anyerrors/failures.
+There are two kinds of errors to expect: <a href="DaffodilUnparseErrorSAXException.html" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseErrorSAXException">DaffodilUnparseErrorSAXException</a>, for the case when
+the <a href="UnparseResult.html#isError():Boolean" class="extmbr" name="org.apache.daffodil.sapi.UnparseResult#isError">UnparseResult.isError</a>, and <a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException">DaffodilUnhandledSAXException</a>, for any other errors.</p><p>In the case of an <a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException">DaffodilUnhandledSAXException</a>,<a href="DaffodilUnparseContentHandler.html#getUnp [...]
+will return null.</p><pre><span class="kw">try</span> {
+  xmlReader.parse(<span class="kw">new</span> InputSource(is))
+} <span class="kw">catch</span> {
+  <span class="kw">case</span> _: DaffodilUnhandledSAXException <span class="kw">=&gt;</span> ...
+  <span class="kw">case</span> _: DaffodilUnparseErrorSAXException <span class="kw">=&gt;</span> ...
+}
+<span class="kw">val</span> ur = unparseContentHandler.getUnparseResult</pre><h5> Failures and Diagnostics </h5><p>It is possible that failures could occur during the creation of the
 <a href="ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>, or <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a>. However, rather than
 throwing an exception on error (e.g. invalid DFDL schema, parse
 error, etc), these classes extend <a href="WithDiagnostics.html" class="extype" name="org.apache.daffodil.sapi.WithDiagnostics">WithDiagnostics</a>, which is used to
@@ -188,8 +268,10 @@ determine if an error occurred, and any diagnostic information (see
 For example, when starting up, it may be quicker to reload an
 already compiled parser than to compile it from scratch. To save a
 <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)
-dp.save(saveFile);</pre><p>And to restore a saved <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = Daffodil.reload(saveFile);
-<span class="kw">val</span> pr = dp.parse(data, inputter);</pre></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a></dd></dl></div>
+dp.save(saveFile);</pre><p>And to restore a saved <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> dp = Daffodil.reload(saveFile);</pre><p>And use like below:</p><pre><span class="kw">val</span> pr = dp.parse(data);</pre><p>or</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+... <span class="cmt">// setting appropriate handlers</span>
+xmlReader.parse(data)
+<span class="kw">val</span> pr = xmlReader.getProperty(<span class="lit">"...ParseResult"</span>)</pre></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a></dd></dl></div>
     </li><li name="org.apache.daffodil.sapi.debugger" visbl="pub" class="indented5 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="debugger"></a><a id="debugger:debugger"></a>
       <span class="permalink">
@@ -277,6 +359,22 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                         <a class="object" href="Daffodil$.html" title="Factory object to create a Compiler and set global configurations"></a>
                         <a href="Daffodil$.html" title="Factory object to create a Compiler and set global configurations">Daffodil</a>
                       </li><li class="current-entities indented4">
+                        <a class="object" href="DaffodilParseXMLReader$.html" title="The full URIs needed for setting/getting properties for the DaffodilParseXMLReader"></a>
+                        <a class="class" href="DaffodilParseXMLReader.html" title="SAX Method of parsing schema and getting the DFDL Infoset via designated org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface"></a>
+                        <a href="DaffodilParseXMLReader.html" title="SAX Method of parsing schema and getting the DFDL Infoset via designated org.xml.sax.ContentHandler, based on the org.xml.sax.XMLReader interface">DaffodilParseXMLReader</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="" title="This exception will be thrown when an unexpected error occurs during the SAX unparse"></a>
+                        <a href="" title="This exception will be thrown when an unexpected error occurs during the SAX unparse">DaffodilUnhandledSAXException</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnparseContentHandler.html" title="Accepts SAX callback events from any SAX XMLReader for unparsing"></a>
+                        <a href="DaffodilUnparseContentHandler.html" title="Accepts SAX callback events from any SAX XMLReader for unparsing">DaffodilUnparseContentHandler</a>
+                      </li><li class="current-entities indented4">
+                        <span class="separator"></span>
+                        <a class="class" href="DaffodilUnparseErrorSAXException.html" title="This exception will be thrown when unparseResult.isError returns true during a SAX Unparse"></a>
+                        <a href="DaffodilUnparseErrorSAXException.html" title="This exception will be thrown when unparseResult.isError returns true during a SAX Unparse">DaffodilUnparseErrorSAXException</a>
+                      </li><li class="current-entities indented4">
                         <span class="separator"></span>
                         <a class="class" href="DataLocation.html" title="Information related to a location in data"></a>
                         <a href="DataLocation.html" title="Information related to a location in data">DataLocation</a>
@@ -294,8 +392,8 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                         <a href="InvalidParserException.html" title="This exception will be thrown as a result of attempting to reload a saved parser that is invalid (not a parser file, corrupt, etc.) or is not in the GZIP format.">InvalidParserException</a>
                       </li><li class="current-entities indented4">
                         <span class="separator"></span>
-                        <a class="class" href="" title="This exception will be thrown as a result of an invalid usage of the Daffodil API"></a>
-                        <a href="" title="This exception will be thrown as a result of an invalid usage of the Daffodil API">InvalidUsageException</a>
+                        <a class="class" href="InvalidUsageException.html" title="This exception will be thrown as a result of an invalid usage of the Daffodil API"></a>
+                        <a href="InvalidUsageException.html" title="This exception will be thrown as a result of an invalid usage of the Daffodil API">InvalidUsageException</a>
                       </li><li class="current-entities indented4">
                         <span class="separator"></span>
                         <a class="class" href="LocationInSchemaFile.html" title="Information related to locations in DFDL schema files"></a>
@@ -329,8 +427,8 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
       <div id="definition">
         <div class="big-circle class">c</div>
         <p id="owner"><a href="../../../index.html" class="extype" name="org">org</a>.<a href="../../index.html" class="extype" name="org.apache">apache</a>.<a href="../index.html" class="extype" name="org.apache.daffodil">daffodil</a>.<a href="index.html" class="extype" name="org.apache.daffodil.sapi">sapi</a></p>
-        <h1>InvalidUsageException<span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html" title="Permalink">
+        <h1>DaffodilUnhandledSAXException<span class="permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span></h1>
@@ -343,17 +441,17 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         <span class="kind">class</span>
       </span>
       <span class="symbol">
-        <span class="name">InvalidUsageException</span><span class="result"> extends <span class="extype" name="scala.Exception">Exception</span></span>
+        <span class="name">DaffodilUnhandledSAXException</span><span class="result"> extends <span class="extype" name="org.xml.sax.SAXException">SAXException</span></span>
       </span>
       </h4>
 
       
-          <div id="comment" class="fullcommenttop"><div class="comment cmt"><p>This exception will be thrown as a result of an invalid usage of the Daffodil API
+          <div id="comment" class="fullcommenttop"><div class="comment cmt"><p>This exception will be thrown when an unexpected error occurs during the SAX unparse
 </p></div><div class="toggleContainer block">
           <span class="toggle">
             Linear Supertypes
           </span>
-          <div class="superTypes hiddenContent"><span class="extype" name="java.lang.Exception">Exception</span>, <span class="extype" name="java.lang.Throwable">Throwable</span>, <span class="extype" name="java.io.Serializable">Serializable</span>, <span class="extype" name="scala.AnyRef">AnyRef</span>, <span class="extype" name="scala.Any">Any</span></div>
+          <div class="superTypes hiddenContent"><span class="extype" name="org.xml.sax.SAXException">SAXException</span>, <span class="extype" name="java.lang.Exception">Exception</span>, <span class="extype" name="java.lang.Throwable">Throwable</span>, <span class="extype" name="java.io.Serializable">Serializable</span>, <span class="extype" name="scala.AnyRef">AnyRef</span>, <span class="extype" name="scala.Any">Any</span></div>
         </div></div>
         
 
@@ -379,7 +477,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                   <span class="filtertype">Inherited<br />
                   </span>
                   <ol id="linearization">
-                    <li class="in" name="org.apache.daffodil.sapi.InvalidUsageException"><span>InvalidUsageException</span></li><li class="in" name="java.lang.Exception"><span>Exception</span></li><li class="in" name="java.lang.Throwable"><span>Throwable</span></li><li class="in" name="java.io.Serializable"><span>Serializable</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li><li class="in" name="scala.Any"><span>Any</span></li>
+                    <li class="in" name="org.apache.daffodil.sapi.DaffodilUnhandledSAXException"><span>DaffodilUnhandledSAXException</span></li><li class="in" name="org.xml.sax.SAXException"><span>SAXException</span></li><li class="in" name="java.lang.Exception"><span>Exception</span></li><li class="in" name="java.lang.Throwable"><span>Throwable</span></li><li class="in" name="java.io.Serializable"><span>Serializable</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li>< [...]
                   </ol>
                 </div><div class="ancestors">
               <span class="filtertype"></span>
@@ -397,26 +495,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
 
       <div id="template">
         <div id="allMembers">
-        <div id="constructors" class="members">
-              <h3>Instance Constructors</h3>
-              <ol><li name="org.apache.daffodil.sapi.InvalidUsageException#&lt;init&gt;" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
-      <a id="&lt;init&gt;(cause:org.apache.daffodil.processors.InvalidUsageException):org.apache.daffodil.sapi.InvalidUsageException"></a><a id="&lt;init&gt;:InvalidUsageException"></a>
-      <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#&lt;init&gt;(cause:org.apache.daffodil.processors.InvalidUsageException):org.apache.daffodil.sapi.InvalidUsageException" title="Permalink">
-        <i class="material-icons"></i>
-      </a>
-    </span>
-      <span class="modifier_kind">
-        <span class="modifier"></span>
-        <span class="kind">new</span>
-      </span>
-      <span class="symbol">
-        <span class="name">InvalidUsageException</span><span class="params">(<span name="cause">cause: <span class="extype" name="org.apache.daffodil.processors.InvalidUsageException">processors.InvalidUsageException</span></span>)</span>
-      </span>
-      
-      
-    </li></ol>
-            </div>
+        
 
         
 
@@ -428,7 +507,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                 <li name="scala.AnyRef#!=" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="!=(x$1:Any):Boolean"></a><a id="!=(Any):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#!=(x$1:Any):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#!=(x$1:Any):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -444,7 +523,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef###" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="##():Int"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html###():Int" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html###():Int" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -460,7 +539,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#==" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="==(x$1:Any):Boolean"></a><a id="==(Any):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#==(x$1:Any):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#==(x$1:Any):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -476,7 +555,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="java.lang.Throwable#addSuppressed" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="addSuppressed(x$1:Throwable):Unit"></a><a id="addSuppressed(Throwable):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#addSuppressed(x$1:Throwable):Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#addSuppressed(x$1:Throwable):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -492,7 +571,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.Any#asInstanceOf" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="asInstanceOf[T0]:T0"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#asInstanceOf[T0]:T0" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#asInstanceOf[T0]:T0" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -508,7 +587,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#clone" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="clone():Object"></a><a id="clone():AnyRef"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#clone():Object" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#clone():Object" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -532,7 +611,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#eq" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="eq(x$1:AnyRef):Boolean"></a><a id="eq(AnyRef):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#eq(x$1:AnyRef):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#eq(x$1:AnyRef):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -548,7 +627,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#equals" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="equals(x$1:Any):Boolean"></a><a id="equals(Any):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#equals(x$1:Any):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#equals(x$1:Any):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -564,7 +643,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="java.lang.Throwable#fillInStackTrace" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="fillInStackTrace():Throwable"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#fillInStackTrace():Throwable" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#fillInStackTrace():Throwable" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -580,7 +659,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#finalize" visbl="prt" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="finalize():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#finalize():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#finalize():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -599,10 +678,10 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </span>)</span>
               
         </dd></dl></div>
-    </li><li name="java.lang.Throwable#getCause" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+    </li><li name="org.xml.sax.SAXException#getCause" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="getCause():Throwable"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#getCause():Throwable" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#getCause():Throwable" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -614,11 +693,11 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         <span class="name">getCause</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.Throwable">Throwable</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>SAXException → Throwable</dd></dl></div>
     </li><li name="scala.AnyRef#getClass" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="getClass():Class[_]"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#getClass():Class[_]" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#getClass():Class[_]" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -634,10 +713,26 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
                 <span class="name">@native</span><span class="args">()</span>
               
         </dd></dl></div>
+    </li><li name="org.xml.sax.SAXException#getException" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="getException():Exception"></a>
+      <span class="permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#getException():Exception" title="Permalink">
+        <i class="material-icons"></i>
+      </a>
+    </span>
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">getException</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.Exception">Exception</span></span>
+      </span>
+      
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>SAXException</dd></dl></div>
     </li><li name="java.lang.Throwable#getLocalizedMessage" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="getLocalizedMessage():String"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#getLocalizedMessage():String" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#getLocalizedMessage():String" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -650,10 +745,10 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
       </span>
       
       <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
-    </li><li name="java.lang.Throwable#getMessage" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+    </li><li name="org.xml.sax.SAXException#getMessage" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="getMessage():String"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#getMessage():String" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#getMessage():String" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -665,11 +760,11 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         <span class="name">getMessage</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.String">String</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable</dd></dl></div>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>SAXException → Throwable</dd></dl></div>
     </li><li name="java.lang.Throwable#getStackTrace" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="getStackTrace():Array[StackTraceElement]"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#getStackTrace():Array[StackTraceElement]" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#getStackTrace():Array[StackTraceElement]" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -685,7 +780,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="java.lang.Throwable#getSuppressed" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="getSuppressed():Array[Throwable]"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#getSuppressed():Array[Throwable]" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#getSuppressed():Array[Throwable]" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -701,7 +796,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#hashCode" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="hashCode():Int"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#hashCode():Int" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#hashCode():Int" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -720,7 +815,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="java.lang.Throwable#initCause" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="initCause(x$1:Throwable):Throwable"></a><a id="initCause(Throwable):Throwable"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#initCause(x$1:Throwable):Throwable" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#initCause(x$1:Throwable):Throwable" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -736,7 +831,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.Any#isInstanceOf" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="isInstanceOf[T0]:Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#isInstanceOf[T0]:Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#isInstanceOf[T0]:Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -752,7 +847,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#ne" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="ne(x$1:AnyRef):Boolean"></a><a id="ne(AnyRef):Boolean"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#ne(x$1:AnyRef):Boolean" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#ne(x$1:AnyRef):Boolean" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -768,7 +863,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#notify" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="notify():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#notify():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#notify():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -787,7 +882,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#notifyAll" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="notifyAll():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#notifyAll():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#notifyAll():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -806,7 +901,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="java.lang.Throwable#printStackTrace" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="printStackTrace(x$1:java.io.PrintWriter):Unit"></a><a id="printStackTrace(PrintWriter):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#printStackTrace(x$1:java.io.PrintWriter):Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#printStackTrace(x$1:java.io.PrintWriter):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -822,7 +917,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="java.lang.Throwable#printStackTrace" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="printStackTrace(x$1:java.io.PrintStream):Unit"></a><a id="printStackTrace(PrintStream):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#printStackTrace(x$1:java.io.PrintStream):Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#printStackTrace(x$1:java.io.PrintStream):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -838,7 +933,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="java.lang.Throwable#printStackTrace" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="printStackTrace():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#printStackTrace():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#printStackTrace():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -854,7 +949,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="java.lang.Throwable#setStackTrace" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="setStackTrace(x$1:Array[StackTraceElement]):Unit"></a><a id="setStackTrace(Array[StackTraceElement]):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#setStackTrace(x$1:Array[StackTraceElement]):Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#setStackTrace(x$1:Array[StackTraceElement]):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -870,7 +965,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#synchronized" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="synchronized[T0](x$1:=&gt;T0):T0"></a><a id="synchronized[T0](⇒T0):T0"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#synchronized[T0](x$1:=&gt;T0):T0" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#synchronized[T0](x$1:=&gt;T0):T0" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -883,10 +978,10 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
       </span>
       
       <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
-    </li><li name="java.lang.Throwable#toString" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
+    </li><li name="org.xml.sax.SAXException#toString" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="toString():String"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#toString():String" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#toString():String" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -898,11 +993,11 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         <span class="name">toString</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.String">String</span></span>
       </span>
       
-      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Throwable → AnyRef → Any</dd></dl></div>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>SAXException → Throwable → AnyRef → Any</dd></dl></div>
     </li><li name="scala.AnyRef#wait" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="wait():Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#wait():Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#wait():Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -924,7 +1019,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#wait" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="wait(x$1:Long,x$2:Int):Unit"></a><a id="wait(Long,Int):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#wait(x$1:Long,x$2:Int):Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#wait(x$1:Long,x$2:Int):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -946,7 +1041,7 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
     </li><li name="scala.AnyRef#wait" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="wait(x$1:Long):Unit"></a><a id="wait(Long):Unit"></a>
       <span class="permalink">
-      <a href="../../../../org/apache/daffodil/sapi/InvalidUsageException.html#wait(x$1:Long):Unit" title="Permalink">
+      <a href="../../../../org/apache/daffodil/sapi/DaffodilUnhandledSAXException.html#wait(x$1:Long):Unit" title="Permalink">
         <i class="material-icons"></i>
       </a>
     </span>
@@ -977,7 +1072,9 @@ level to <a href="logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.
         </div>
 
         <div id="inheritedMembers">
-        <div class="parent" name="java.lang.Exception">
+        <div class="parent" name="org.xml.sax.SAXException">
+              <h3>Inherited from <span class="extype" name="org.xml.sax.SAXException">SAXException</span></h3>
+            </div><div class="parent" name="java.lang.Exception">
               <h3>Inherited from <span class="extype" name="java.lang.Exception">Exception</span></h3>
             </div><div class="parent" name="java.lang.Throwable">
               <h3>Inherited from <span class="extype" name="java.lang.Throwable">Throwable</span></h3>
diff --git a/content/docs/latest/scaladoc/org/apache/daffodil/sapi/InvalidUsageException.html b/content/docs/latest/scaladoc/org/apache/daffodil/sapi/DaffodilUnparseContentHandler.html
similarity index 60%
copy from content/docs/latest/scaladoc/org/apache/daffodil/sapi/InvalidUsageException.html
copy to content/docs/latest/scaladoc/org/apache/daffodil/sapi/DaffodilUnparseContentHandler.html
index fe2a0f7..34ac5de 100644
--- a/content/docs/latest/scaladoc/org/apache/daffodil/sapi/InvalidUsageException.html
+++ b/content/docs/latest/scaladoc/org/apache/daffodil/sapi/DaffodilUnparseContentHandler.html
@@ -3,9 +3,9 @@
         <head>
           <meta http-equiv="X-UA-Compatible" content="IE=edge" />
           <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
-          <title>Apache Daffodil (incubating) 2.7.0 Scala API  - org.apache.daffodil.sapi.InvalidUsageException</title>
-          <meta name="description" content="Apache Daffodil incubating 2.7.0 Scala API - org.apache.daffodil.sapi.InvalidUsageException" />
-          <meta name="keywords" content="Apache Daffodil incubating 2.7.0 Scala API org.apache.daffodil.sapi.InvalidUsageException" />
+          <title>Apache Daffodil (incubating) 3.0.0 Scala API  - org.apache.daffodil.sapi.DaffodilUnparseContentHandler</title>
+          <meta name="description" content="Apache Daffodil incubating 3.0.0 Scala API - org.apache.daffodil.sapi.DaffodilUnparseContentHandler" />
+          <meta name="keywords" content="Apache Daffodil incubating 3.0.0 Scala API org.apache.daffodil.sapi.DaffodilUnparseContentHandler" />
           <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
           
       
@@ -28,7 +28,7 @@
         </head>
         <body>
       <div id="search">
-        <span id="doc-title">Apache Daffodil (incubating) 2.7.0 Scala API<span id="doc-version"></span></span>
+        <span id="doc-title">Apache Daffodil (incubating) 3.0.0 Scala API<span id="doc-version"></span></span>
         <span class="close-results"><span class="left">&lt;</span> Back</span>
         <div id="textfilter">
           <span class="input">
@@ -65,10 +65,10 @@
         <span class="kind">package</span>
       </span>
       <span class="symbol">
-        <a title="org.apache.daffodil.sapi - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics" href="../../../../index.html"><span class="name">root</span></a>
+        <a title="This is the documentation for the Apache Daffodil (incubating) Scala API." href="../../../../index.html"><span class="name">root</span></a>
       </span>
       
-      <p class="shortcomment cmt"><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><h4> Apache Daffodil (incubating) Scala API </h4><h5> Packages </h5><p><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daf [...]
+      <p class="shortcomment cmt">This is the documentation for the Apache Daffodil (incubating) Scala API.</p><div class="fullcomment"><div class="comment cmt"><p>This is the documentation for the Apache Daffodil (incubating) Scala API.</p><h5> Package structure </h5><p><a href="index.html" class="extype" name="org.apache.daffodil.sapi">org.apache.daffodil.sapi</a> - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve  [...]
     </li><li name="_root_.org" visbl="pub" class="indented1 " data-isabs="false" fullComment="yes" group="Ungrouped">
       <a id="org"></a><a id="org:org"></a>
       <span class="permalink">
@@ -137,29 +137,50 @@ unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><div class="fullcomment"><div class="comment cmt"><p>Provides the classes necessary to compile DFDL schemas, parse and
 unparse files using the compiled objects, and retrieve results and
 parsing diagnostics</p><h5> Overview </h5><p>The <a href="Daffodil$.html" class="extype" name="org.apache.daffodil.sapi.Daffodil">Daffodil</a> object is a factory object to create a <a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a>. The
-<a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compils a provided DFDL schema into a
+<a href="Compiler.html" class="extype" name="org.apache.daffodil.sapi.Compiler">Compiler</a> provides a method to compile a provided DFDL schema into a
 <a href="ProcessorFactory.html" class="extype" name="org.apache.daffodil.sapi.ProcessorFactory">ProcessorFactory</a>, which creates a <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a>:</p><pre><span class="kw">val</span> c = Daffodil.compiler()
 <span class="kw">val</span> pf = c.compileFile(file)
 <span class="kw">val</span> dp = pf.onPath(<span class="lit">"/"</span>)</pre><p>The <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> provides the necessary functions to parse and unparse
 data, returning a <a href="ParseResult.html" class="extype" name="org.apache.daffodil.sapi.ParseResult">ParseResult</a> or <a href="UnparseResult.html" class="extype" name="org.apache.daffodil.sapi.UnparseResult">UnparseResult</a>, respectively. These
 contain information about the parse/unparse, such as whether or not the
-processing succeeded any diagnostic information.</p><h6> Parse </h6><p>The <a href="DataProcessor.html#parse(input:org.apache.daffodil.sapi.io.InputSourceDataInputStream,output:org.apache.daffodil.sapi.infoset.InfosetOutputter):org.apache.daffodil.sapi.ParseResult" class="extmbr" name="org.apache.daffodil.sapi.DataProcessor#parse">DataProcessor.parse</a> method accepts input data to parse in the form
-of a <a href="io/InputSourceDataInputStream.html" class="extype" name="org.apache.daffodil.sapi.io.InputSourceDataInputStream">InputSourceDataInputStream</a> and an <a href="infoset/InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
-to determine the output representation of the infoset (e.g. Scala XML Nodes,
-JDOM2 Documents, etc.):</p><pre><span class="kw">val</span> scalaOutputter = <span class="kw">new</span> ScalaXMLInfosetOutputter()
+processing succeeded with any diagnostic information.</p><p>The <a href="DataProcessor.html" class="extype" name="org.apache.daffodil.sapi.DataProcessor">DataProcessor</a> also provides two functions that can be used to perform parsing/unparsing
+via the SAX API. The first creates a <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> which is used for parsing, and the
+second creates a <a href="" class="extype" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler">DaffodilUnparseContentHandler</a> which is used for unparsing.</p><pre><span class="kw">val</span> xmlReader = dp.newXMLReaderInstance
+<span class="kw">val</span> unparseContentHandler = dp.newContentHandlerInstance(output)</pre><p>The <a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> has several methods that allow one to set properties and handlers
+(such as ContentHandlers or ErrorHandlers) for the reader. One can use any
+contentHandler/errorHandler as long as they extend the org.xml.sax.ContentHandler and
+org.xml.sax.ErrorHandler interfaces respectively. One can also set properties for the
+<a href="DaffodilParseXMLReader.html" class="extype" name="org.apache.daffodil.sapi.DaffodilParseXMLReader">DaffodilParseXMLReader</a> using <a href="DaffodilParseXMLReader.html#setProperty(name:String,value:AnyRef):Unit" class="extmbr" name="org.apache.daffodil.sapi.DaffodilParseXMLReader#setProperty">DaffodilParseXMLReader.setProperty</a>.</p><p>The following properties can be set as follows:</p><p><i>The constants below have literal values starting with
+"urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:sax:" and ending with "BlobDirectory",
+"BlobPrefix" and "BlobSuffix" respectively.</i></p><pre>xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBDIRECTORY,
+ Paths.get(System.getProperty(<span class="lit">"java.io.tmpdir"</span>))) <span class="cmt">// value type: java.nio.file.Paths</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBPREFIX, <span class="lit">"daffodil-sax-"</span>) <span class="cmt">// value type String</span>
+xmlReader.setProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_BLOBSUFFIX, <span class="lit">".bin"</span>) <span class="cmt">// value type String</span></pre><p>The properties can be retrieved using the same variables with
... 14240 lines suppressed ...