<!DOCTYPE html >
<html>
        <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 3.1.0 Scala API  - org.apache.daffodil.sapi.infoset</title>
          <meta name="description" content="Apache Daffodil 3.1.0 Scala API - org.apache.daffodil.sapi.infoset" />
          <meta name="keywords" content="Apache Daffodil 3.1.0 Scala API org.apache.daffodil.sapi.infoset" />
          <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
          
      
      <link href="../../../../../lib/index.css" media="screen" type="text/css" rel="stylesheet" />
      <link href="../../../../../lib/template.css" media="screen" type="text/css" rel="stylesheet" />
      <link href="../../../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css" />
      <script type="text/javascript" src="../../../../../lib/jquery.min.js"></script>
      <script type="text/javascript" src="../../../../../lib/jquery.panzoom.min.js"></script>
      <script type="text/javascript" src="../../../../../lib/jquery.mousewheel.min.js"></script>
      <script type="text/javascript" src="../../../../../lib/index.js"></script>
      <script type="text/javascript" src="../../../../../index.js"></script>
      <script type="text/javascript" src="../../../../../lib/scheduler.js"></script>
      <script type="text/javascript" src="../../../../../lib/template.js"></script>
      
      <script type="text/javascript">
        /* this variable can be used by the JS to determine the path to the root document */
        var toRoot = '../../../../../';
      </script>
    
        </head>
        <body>
      <div id="search">
        <span id="doc-title">Apache Daffodil 3.1.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">
            <input autocapitalize="none" placeholder="Search" id="index-input" type="text" accesskey="/" />
            <i class="clear material-icons"></i>
            <i id="search-icon" class="material-icons"></i>
          </span>
        </div>
    </div>
      <div id="search-results">
        <div id="search-progress">
          <div id="progress-fill"></div>
        </div>
        <div id="results-content">
          <div id="entity-results"></div>
          <div id="member-results"></div>
        </div>
      </div>
      <div id="content-scroll-container" style="-webkit-overflow-scrolling: touch;">
        <div id="content-container" style="-webkit-overflow-scrolling: touch;">
          <div id="subpackage-spacer">
            <div id="packages">
              <h1>Packages</h1>
              <ul>
                <li name="_root_.root" visbl="pub" class="indented0 " data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="_root_"></a><a id="root:_root_"></a>
      <span class="permalink">
      <a href="../../../../../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="This is the documentation for the Apache Daffodil Scala API." href="../../../../../index.html"><span class="name">root</span></a>
      </span>
      
      <p class="shortcomment cmt">This is the documentation for the Apache Daffodil Scala API.</p><div class="fullcomment"><div class="comment cmt"><p>This is the documentation for the Apache Daffodil 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 results and parsing diagnostics</p><p><a href="../../udf/index.html" class="extype" name="org.apache.daffodil.udf">org.apache.daffodil.udf</a> - Provides the classes necessary to create User Defined Functions to extend the DFDL expression language</p></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../../../../../index.html" class="extype" name="_root_">root</a></dd></dl></div>
    </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">
      <a href="../../../../../org/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="../../../../index.html"><span class="name">org</span></a>
      </span>
      
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../../../../../index.html" class="extype" name="_root_">root</a></dd></dl></div>
    </li><li name="org.apache" visbl="pub" class="indented2 " data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="apache"></a><a id="apache:apache"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/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="../../../index.html"><span class="name">apache</span></a>
      </span>
      
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../../../../index.html" class="extype" name="org">org</a></dd></dl></div>
    </li><li name="org.apache.daffodil" visbl="pub" class="indented3 " data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="daffodil"></a><a id="daffodil:daffodil"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/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="../../index.html"><span class="name">daffodil</span></a>
      </span>
      
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../../../index.html" class="extype" name="org.apache">apache</a></dd></dl></div>
    </li><li name="org.apache.daffodil.sapi" visbl="pub" class="indented4 " data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="sapi"></a><a id="sapi:sapi"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/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="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">sapi</span></a>
      </span>
      
      <p class="shortcomment cmt">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"><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 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 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.io.InputSourceDataInputStream">InputSourceDataInputStream</a> and an <a href="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()
<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="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="InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a>
should call <a href="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)
<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 &amp;&amp; is.hasData()) {
  scalaOutputter.reset()
  <span class="kw">val</span> pr = dp.parse(is, jdomOutputter)
  ...
  keepParsing = !pr.isError()
}</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>The value of the supported features cannot be changed during a parse, and the parse will run
with the value of the features as they were when the parse was kicked off. To run a parse with
different feature values, one must wait until the running parse finishes, set the feature values
using the XMLReader's setFeature and run the parse again.</p><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 &amp;&amp; is.hasData()) {
  contentHandler.reset()
  xmlReader.parse(is)
  <span class="kw">val</span> pr = xmlReader.getProperty(DaffodilParseXMLReader.DAFFODIL_SAX_URN_PARSERESULT)
  ...
  keepParsing = !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="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">DaffodilUnhandledSAXException</a>,<a href="../DaffodilUnparseContentHandler.html#getUnparseResult:org.apache.daffodil.sapi.UnparseResult" class="extmbr" name="org.apache.daffodil.sapi.DaffodilUnparseContentHandler#getUnparseResult">DaffodilUnparseContentHandler.getUnparseResult</a>
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
determine if an error occurred, and any diagnostic information (see
<a href="../Diagnostic.html" class="extype" name="org.apache.daffodil.sapi.Diagnostic">Diagnostic</a>) related to the step. Thus, before continuing, one must check
<a href="../WithDiagnostics.html#isError():Boolean" class="extmbr" name="org.apache.daffodil.sapi.WithDiagnostics#isError">WithDiagnostics.isError</a>. For example:</p><pre><span class="kw">val</span> pf = c.compile(file)
<span class="kw">if</span> (pf.isError()) {
  <span class="kw">val</span> diags = pf.getDiagnostics()
  diags.foreach { d <span class="kw">=&gt;</span>
    System.out.println(d.toString())
  }
  <span class="kw">return</span> -<span class="num">1</span>;
}</pre><h5> Saving and Reloading Parsers </h5><p>In some cases, it may be beneficial to save a parser and reload it.
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);</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">
      <a href="../../../../../org/apache/daffodil/sapi/debugger/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="Provides the classes necessary to perform parse tracing or create a custom debugger" href="../debugger/index.html"><span class="name">debugger</span></a>
      </span>
      
      <p class="shortcomment cmt">Provides the classes necessary to perform parse tracing or create a custom debugger</p><div class="fullcomment"><div class="comment cmt"><p>Provides the classes necessary to perform parse tracing or create a custom debugger</p><h5> Overview </h5><p>Daffodil comes with one prebuilt debugger, the <a href="../debugger/TraceDebuggerRunner.html" class="extype" name="org.apache.daffodil.sapi.debugger.TraceDebuggerRunner">TraceDebuggerRunner</a>, which outputs
verbose information during the parsing processes, which can be used to aid
in debugging a DFDL schema. For example, the <a href="../debugger/TraceDebuggerRunner.html" class="extype" name="org.apache.daffodil.sapi.debugger.TraceDebuggerRunner">TraceDebuggerRunner</a> can be use like so:</p><pre><span class="kw">val</span> tdr = <span class="kw">new</span> TraceDebuggerRunner()
Daffodil.setDebugger(tdr)</pre><p>Additionally, one may create their own debugger runner by implementing the
methods in the <a href="../debugger/DebuggerRunner.html" class="extype" name="org.apache.daffodil.sapi.debugger.DebuggerRunner">DebuggerRunner</a>.</p><p>Once the debugger is set, it must then be turned on, like so:</p><pre>Daffodil.setDebugging(<span class="kw">true</span>);</pre></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil.sapi">sapi</a></dd></dl></div>
    </li><li name="org.apache.daffodil.sapi.infoset" visbl="pub" class="indented5 current" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="infoset"></a><a id="infoset:infoset"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/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">
        <span class="name">infoset</span>
      </span>
      
      <p class="shortcomment cmt">Defines various classes used control the representation of the infoset for parse and unparse.</p><div class="fullcomment"><div class="comment cmt"><p>Defines various classes used control the representation of the infoset for parse and unparse.
Classes that extend <a href="InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> are provided to 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 to deteremine how to output an infoset. These classes are not
guaranteed to be thread-safe. Classes that extend <a href="InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> are
provided to 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 to determine how to read in
an infoset. A new InfosetOutputter is required for each call to unparse().
</p></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil.sapi">sapi</a></dd></dl></div>
    </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="InfosetInputter.html" title="Abstract class used to determine how the infoset representation should be input from a call to DataProcessor.unparse."></a>
                        <a href="InfosetInputter.html" title="Abstract class used to determine how the infoset representation should be input from a call to DataProcessor.unparse.">InfosetInputter</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="InfosetInputterProxy.html" title="A proxy for InfosetInputters that are internal to Daffodil"></a>
                        <a href="InfosetInputterProxy.html" title="A proxy for InfosetInputters that are internal to Daffodil">InfosetInputterProxy</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="InfosetOutputter.html" title="Abstract class used to determine how the infoset representation should be output from a call to DataProcessor.parse."></a>
                        <a href="InfosetOutputter.html" title="Abstract class used to determine how the infoset representation should be output from a call to DataProcessor.parse.">InfosetOutputter</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="InfosetOutputterProxy.html" title="A proxy for InfosetOutputters that are internal to Daffodil"></a>
                        <a href="InfosetOutputterProxy.html" title="A proxy for InfosetOutputters that are internal to Daffodil">InfosetOutputterProxy</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="JDOMInfosetInputter.html" title="InfosetInputter to read an infoset represented as an org.jdom2.Document"></a>
                        <a href="JDOMInfosetInputter.html" title="InfosetInputter to read an infoset represented as an org.jdom2.Document">JDOMInfosetInputter</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="JDOMInfosetOutputter.html" title="InfosetOutputter to build an infoset represented as an org.jdom2.Document"></a>
                        <a href="JDOMInfosetOutputter.html" title="InfosetOutputter to build an infoset represented as an org.jdom2.Document">JDOMInfosetOutputter</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="JsonInfosetInputter.html" title="InfosetInputter to read an infoset represented as JSON from a java.io.InputStream"></a>
                        <a href="JsonInfosetInputter.html" title="InfosetInputter to read an infoset represented as JSON from a java.io.InputStream">JsonInfosetInputter</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="JsonInfosetOutputter.html" title="InfosetOutputter to build an infoset represented as JSON written to a java.io.OutputStream"></a>
                        <a href="JsonInfosetOutputter.html" title="InfosetOutputter to build an infoset represented as JSON written to a java.io.OutputStream">JsonInfosetOutputter</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="NullInfosetOutputter.html" title="InfosetOutputter that does not build an infoset represention, ignoring all InfosetOutputter events"></a>
                        <a href="NullInfosetOutputter.html" title="InfosetOutputter that does not build an infoset represention, ignoring all InfosetOutputter events">NullInfosetOutputter</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="ScalaXMLInfosetInputter.html" title="InfosetInputter to read an infoset represented as a scala.xml.Node"></a>
                        <a href="ScalaXMLInfosetInputter.html" title="InfosetInputter to read an infoset represented as a scala.xml.Node">ScalaXMLInfosetInputter</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="ScalaXMLInfosetOutputter.html" title="InfosetOutputter to build an infoset represented as a scala.xml.Node"></a>
                        <a href="ScalaXMLInfosetOutputter.html" title="InfosetOutputter to build an infoset represented as a scala.xml.Node">ScalaXMLInfosetOutputter</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="W3CDOMInfosetInputter.html" title="InfosetInputter to read an infoset represented as an org.w3c.dom.Document"></a>
                        <a href="W3CDOMInfosetInputter.html" title="InfosetInputter to read an infoset represented as an org.w3c.dom.Document">W3CDOMInfosetInputter</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="W3CDOMInfosetOutputter.html" title="InfosetOutputter to build an infoset represented as an org.w3c.dom.Document"></a>
                        <a href="W3CDOMInfosetOutputter.html" title="InfosetOutputter to build an infoset represented as an org.w3c.dom.Document">W3CDOMInfosetOutputter</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="XMLTextInfosetInputter.html" title="InfosetInputter to read an infoset represented as XML from a java.io.InputStream"></a>
                        <a href="XMLTextInfosetInputter.html" title="InfosetInputter to read an infoset represented as XML from a java.io.InputStream">XMLTextInfosetInputter</a>
                      </li><li class="current-entities indented5">
                        <span class="separator"></span>
                        <a class="class" href="XMLTextInfosetOutputter.html" title="InfosetOutputter to build an infoset represented as XML written to a java.io.OutputStream"></a>
                        <a href="XMLTextInfosetOutputter.html" title="InfosetOutputter to build an infoset represented as XML written to a java.io.OutputStream">XMLTextInfosetOutputter</a>
                      </li><li name="org.apache.daffodil.sapi.io" visbl="pub" class="indented5 " data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="io"></a><a id="io:io"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/io/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="../io/index.html"><span class="name">io</span></a>
      </span>
      
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil.sapi">sapi</a></dd></dl></div>
    </li><li name="org.apache.daffodil.sapi.logger" visbl="pub" class="indented5 " data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="logger"></a><a id="logger:logger"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/logger/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="Provides the classes necessary to receive logging messages from Daffodil." href="../logger/index.html"><span class="name">logger</span></a>
      </span>
      
      <p class="shortcomment cmt">Provides the classes necessary to receive logging messages from Daffodil.</p><div class="fullcomment"><div class="comment cmt"><p>Provides the classes necessary to receive logging messages from Daffodil.</p><h5> Overview </h5><p>Daffodil comes with three prebuilt log writers:</p><ul><li><a href="../logger/ConsoleLogWriter.html" class="extype" name="org.apache.daffodil.sapi.logger.ConsoleLogWriter">ConsoleLogWriter</a> - writes all log messages to stdout</li><li><a href="../logger/FileLogWriter.html" class="extype" name="org.apache.daffodil.sapi.logger.FileLogWriter">FileLogWriter</a> - writes all log messages to file</li><li><a href="../logger/NullLogWriter.html" class="extype" name="org.apache.daffodil.sapi.logger.NullLogWriter">NullLogWriter</a> - drop all log messages</li></ul><p>To use one of these log writers, create and instance of it and pass it to
<a href="../Daffodil$.html#setLogWriter(lw:org.apache.daffodil.sapi.logger.LogWriter):Unit" class="extmbr" name="org.apache.daffodil.sapi.Daffodil#setLogWriter">Daffodil.setLogWriter</a>. For example, to write all logs to <code>/var/log/daffodil.log</code>:</p><pre><span class="kw">val</span> lw = <span class="kw">new</span> FileLogWriter(<span class="kw">new</span> File(<span class="lit">"/var/log/daffodil.log"</span>))
Daffodil.setLogWriter(lw)</pre><p>One may also change the log level using <a href="../Daffodil$.html#setLoggingLevel(lvl:org.apache.daffodil.sapi.logger.LogLevel.Value):Unit" class="extmbr" name="org.apache.daffodil.sapi.Daffodil#setLoggingLevel">Daffodil.setLoggingLevel</a>, which
defaults to <a href="../logger/LogLevel$.html#Info:org.apache.daffodil.sapi.logger.LogLevel.Value" class="extmbr" name="org.apache.daffodil.sapi.logger.LogLevel#Info">LogLevel.Info</a> if not set. For example, to change the log
level to <a href="../logger/LogLevel$.html#Warning:org.apache.daffodil.sapi.logger.LogLevel.Value" class="extmbr" name="org.apache.daffodil.sapi.logger.LogLevel#Warning">LogLevel.Warning</a>:</p><pre>Daffodil.setLoggingLevel(LogLevel.Warning);</pre></div><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="../index.html" class="extype" name="org.apache.daffodil.sapi">sapi</a></dd></dl></div>
    </li>
              </ul>
            </div>
          </div>
          <div id="content">
            <body class="package value">
      <div id="definition">
        <div class="big-circle package">p</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>infoset<span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/index.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span></h1>
        
      </div>

      <h4 id="signature" class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">package</span>
      </span>
      <span class="symbol">
        <span class="name">infoset</span>
      </span>
      </h4>

      
          <div id="comment" class="fullcommenttop"><div class="comment cmt"><p>Defines various classes used control the representation of the infoset for parse and unparse.
Classes that extend <a href="InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> are provided to 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 to deteremine how to output an infoset. These classes are not
guaranteed to be thread-safe. Classes that extend <a href="InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> are
provided to 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 to determine how to read in
an infoset. A new InfosetOutputter is required for each call to unparse().
</p></div><div class="toggleContainer block">
          <span class="toggle">
            Linear Supertypes
          </span>
          <div class="superTypes hiddenContent"><span class="extype" name="scala.AnyRef">AnyRef</span>, <span class="extype" name="scala.Any">Any</span></div>
        </div></div>
        

      

      <div id="template">
        <div id="allMembers">
        

        <div id="types" class="types members">
              <h3>Type Members</h3>
              <ol><li name="org.apache.daffodil.sapi.infoset.InfosetInputter" visbl="pub" class="indented0 " data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="InfosetInputterextendsInfosetInputter"></a><a id="InfosetInputter:InfosetInputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/InfosetInputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="Abstract class used to determine how the infoset representation should be input from a call to DataProcessor.unparse." href="InfosetInputter.html"><span class="name">InfosetInputter</span></a><span class="result"> extends <span class="extype" name="org.apache.daffodil.infoset.InfosetInputter">infoset.InfosetInputter</span></span>
      </span>
      
      <p class="shortcomment cmt">Abstract class used to determine how the infoset representation should be
input from a call to <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>.</p><div class="fullcomment"><div class="comment cmt"><p>Abstract class used to determine how the infoset representation should be
input from a call to <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>. This uses a Cursor API, such
that each call to advance/inspect must update a cursor value, minimizing
allocations. Callers of advance/inspect are expected to copy out any
information from advanceAccessor and inspectAccessor if they need to retain
the information after a call to advance/inspect.
</p></div></div>
    </li><li name="org.apache.daffodil.sapi.infoset.InfosetInputterProxy" visbl="pub" class="indented0 " data-isabs="true" fullComment="no" group="Ungrouped">
      <a id="InfosetInputterProxyextendsInfosetInputter"></a><a id="InfosetInputterProxy:InfosetInputterProxy"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/InfosetInputterProxy.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="A proxy for InfosetInputters that are internal to Daffodil" href="InfosetInputterProxy.html"><span class="name">InfosetInputterProxy</span></a><span class="result"> extends <a href="InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a></span>
      </span>
      
      <p class="shortcomment cmt">A proxy for InfosetInputters that are internal to Daffodil
</p>
    </li><li name="org.apache.daffodil.sapi.infoset.InfosetOutputter" visbl="pub" class="indented0 " data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="InfosetOutputterextendsInfosetOutputter"></a><a id="InfosetOutputter:InfosetOutputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/InfosetOutputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="Abstract class used to determine how the infoset representation should be output from a call to DataProcessor.parse." href="InfosetOutputter.html"><span class="name">InfosetOutputter</span></a><span class="result"> extends <span class="extype" name="org.apache.daffodil.infoset.InfosetOutputter">infoset.InfosetOutputter</span></span>
      </span>
      
      <p class="shortcomment cmt">Abstract class used to determine how the infoset representation should be
output from a call to <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>.</p><div class="fullcomment"><div class="comment cmt"><p>Abstract class used to determine how the infoset representation should be
output from a call to <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>. The Daffodil core will call
the various methods of this class in an order appropriate to create an
infoset representation.</p><p>Classes that extend InfosetOutputter are not guaranteed to be thread-safe.
</p></div></div>
    </li><li name="org.apache.daffodil.sapi.infoset.InfosetOutputterProxy" visbl="pub" class="indented0 " data-isabs="true" fullComment="no" group="Ungrouped">
      <a id="InfosetOutputterProxyextendsInfosetOutputter"></a><a id="InfosetOutputterProxy:InfosetOutputterProxy"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/InfosetOutputterProxy.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="A proxy for InfosetOutputters that are internal to Daffodil" href="InfosetOutputterProxy.html"><span class="name">InfosetOutputterProxy</span></a><span class="result"> extends <a href="InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a></span>
      </span>
      
      <p class="shortcomment cmt">A proxy for InfosetOutputters that are internal to Daffodil
</p>
    </li><li name="org.apache.daffodil.sapi.infoset.JDOMInfosetInputter" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="JDOMInfosetInputterextendsInfosetInputterProxy"></a><a id="JDOMInfosetInputter:JDOMInfosetInputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/JDOMInfosetInputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="InfosetInputter to read an infoset represented as an org.jdom2.Document" href="JDOMInfosetInputter.html"><span class="name">JDOMInfosetInputter</span></a><span class="result"> extends <a href="InfosetInputterProxy.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputterProxy">InfosetInputterProxy</a></span>
      </span>
      
      <p class="shortcomment cmt"><a href="InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> to read an infoset represented as an org.jdom2.Document
</p>
    </li><li name="org.apache.daffodil.sapi.infoset.JDOMInfosetOutputter" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="JDOMInfosetOutputterextendsInfosetOutputterProxy"></a><a id="JDOMInfosetOutputter:JDOMInfosetOutputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/JDOMInfosetOutputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="InfosetOutputter to build an infoset represented as an org.jdom2.Document" href="JDOMInfosetOutputter.html"><span class="name">JDOMInfosetOutputter</span></a><span class="result"> extends <a href="InfosetOutputterProxy.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputterProxy">InfosetOutputterProxy</a></span>
      </span>
      
      <p class="shortcomment cmt"><a href="InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> to build an infoset represented as an org.jdom2.Document
</p>
    </li><li name="org.apache.daffodil.sapi.infoset.JsonInfosetInputter" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="JsonInfosetInputterextendsInfosetInputterProxy"></a><a id="JsonInfosetInputter:JsonInfosetInputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/JsonInfosetInputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="InfosetInputter to read an infoset represented as JSON from a java.io.InputStream" href="JsonInfosetInputter.html"><span class="name">JsonInfosetInputter</span></a><span class="result"> extends <a href="InfosetInputterProxy.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputterProxy">InfosetInputterProxy</a></span>
      </span>
      
      <p class="shortcomment cmt"><a href="InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> to read an infoset represented as JSON from a java.io.InputStream
</p>
    </li><li name="org.apache.daffodil.sapi.infoset.JsonInfosetOutputter" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="JsonInfosetOutputterextendsInfosetOutputterProxy"></a><a id="JsonInfosetOutputter:JsonInfosetOutputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/JsonInfosetOutputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="InfosetOutputter to build an infoset represented as JSON written to a java.io.OutputStream" href="JsonInfosetOutputter.html"><span class="name">JsonInfosetOutputter</span></a><span class="result"> extends <a href="InfosetOutputterProxy.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputterProxy">InfosetOutputterProxy</a></span>
      </span>
      
      <p class="shortcomment cmt"><a href="InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> to build an infoset represented as JSON written to a java.io.OutputStream
</p>
    </li><li name="org.apache.daffodil.sapi.infoset.NullInfosetOutputter" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="NullInfosetOutputterextendsInfosetOutputterProxy"></a><a id="NullInfosetOutputter:NullInfosetOutputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/NullInfosetOutputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="InfosetOutputter that does not build an infoset represention, ignoring all InfosetOutputter events" href="NullInfosetOutputter.html"><span class="name">NullInfosetOutputter</span></a><span class="result"> extends <a href="InfosetOutputterProxy.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputterProxy">InfosetOutputterProxy</a></span>
      </span>
      
      <p class="shortcomment cmt"><a href="InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> that does not build an infoset represention, ignoring
all <a href="InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> events
</p>
    </li><li name="org.apache.daffodil.sapi.infoset.ScalaXMLInfosetInputter" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="ScalaXMLInfosetInputterextendsInfosetInputterProxy"></a><a id="ScalaXMLInfosetInputter:ScalaXMLInfosetInputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/ScalaXMLInfosetInputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="InfosetInputter to read an infoset represented as a scala.xml.Node" href="ScalaXMLInfosetInputter.html"><span class="name">ScalaXMLInfosetInputter</span></a><span class="result"> extends <a href="InfosetInputterProxy.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputterProxy">InfosetInputterProxy</a></span>
      </span>
      
      <p class="shortcomment cmt"><a href="InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> to read an infoset represented as a scala.xml.Node
</p>
    </li><li name="org.apache.daffodil.sapi.infoset.ScalaXMLInfosetOutputter" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="ScalaXMLInfosetOutputterextendsInfosetOutputterProxy"></a><a id="ScalaXMLInfosetOutputter:ScalaXMLInfosetOutputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/ScalaXMLInfosetOutputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="InfosetOutputter to build an infoset represented as a scala.xml.Node" href="ScalaXMLInfosetOutputter.html"><span class="name">ScalaXMLInfosetOutputter</span></a><span class="result"> extends <a href="InfosetOutputterProxy.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputterProxy">InfosetOutputterProxy</a></span>
      </span>
      
      <p class="shortcomment cmt"><a href="InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> to build an infoset represented as a scala.xml.Node
</p>
    </li><li name="org.apache.daffodil.sapi.infoset.W3CDOMInfosetInputter" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="W3CDOMInfosetInputterextendsInfosetInputterProxy"></a><a id="W3CDOMInfosetInputter:W3CDOMInfosetInputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/W3CDOMInfosetInputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="InfosetInputter to read an infoset represented as an org.w3c.dom.Document" href="W3CDOMInfosetInputter.html"><span class="name">W3CDOMInfosetInputter</span></a><span class="result"> extends <a href="InfosetInputterProxy.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputterProxy">InfosetInputterProxy</a></span>
      </span>
      
      <p class="shortcomment cmt"><a href="InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> to read an infoset represented as an org.w3c.dom.Document
</p>
    </li><li name="org.apache.daffodil.sapi.infoset.W3CDOMInfosetOutputter" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="W3CDOMInfosetOutputterextendsInfosetOutputterProxy"></a><a id="W3CDOMInfosetOutputter:W3CDOMInfosetOutputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/W3CDOMInfosetOutputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="InfosetOutputter to build an infoset represented as an org.w3c.dom.Document" href="W3CDOMInfosetOutputter.html"><span class="name">W3CDOMInfosetOutputter</span></a><span class="result"> extends <a href="InfosetOutputterProxy.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputterProxy">InfosetOutputterProxy</a></span>
      </span>
      
      <p class="shortcomment cmt"><a href="InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> to build an infoset represented as an org.w3c.dom.Document
</p>
    </li><li name="org.apache.daffodil.sapi.infoset.XMLTextInfosetInputter" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="XMLTextInfosetInputterextendsInfosetInputterProxy"></a><a id="XMLTextInfosetInputter:XMLTextInfosetInputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/XMLTextInfosetInputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="InfosetInputter to read an infoset represented as XML from a java.io.InputStream" href="XMLTextInfosetInputter.html"><span class="name">XMLTextInfosetInputter</span></a><span class="result"> extends <a href="InfosetInputterProxy.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputterProxy">InfosetInputterProxy</a></span>
      </span>
      
      <p class="shortcomment cmt"><a href="InfosetInputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetInputter">InfosetInputter</a> to read an infoset represented as XML from a java.io.InputStream
</p>
    </li><li name="org.apache.daffodil.sapi.infoset.XMLTextInfosetOutputter" visbl="pub" class="indented0 " data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="XMLTextInfosetOutputterextendsInfosetOutputterProxy"></a><a id="XMLTextInfosetOutputter:XMLTextInfosetOutputter"></a>
      <span class="permalink">
      <a href="../../../../../org/apache/daffodil/sapi/infoset/XMLTextInfosetOutputter.html" title="Permalink">
        <i class="material-icons"></i>
      </a>
    </span>
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a title="InfosetOutputter to build an infoset represented as XML written to a java.io.OutputStream" href="XMLTextInfosetOutputter.html"><span class="name">XMLTextInfosetOutputter</span></a><span class="result"> extends <a href="InfosetOutputterProxy.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputterProxy">InfosetOutputterProxy</a></span>
      </span>
      
      <p class="shortcomment cmt"><a href="InfosetOutputter.html" class="extype" name="org.apache.daffodil.sapi.infoset.InfosetOutputter">InfosetOutputter</a> to build an infoset represented as XML written to a java.io.OutputStream
</p>
    </li></ol>
            </div>

        

        

        

        
        </div>

        <div id="inheritedMembers">
        <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>
            </div>
        
        </div>

        <div id="groupedMembers">
        <div class="group" name="Ungrouped">
              <h3>Ungrouped</h3>
              
            </div>
        </div>

      </div>

      <div id="tooltip"></div>

      <div id="footer">  </div>
    </body>
          </div>
        </div>
      </div>
    </body>
      </html>
