<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="../make-menu.xsl" type="text/xsl"?><html>
   <head>
      <this-is section="sourcedocs" page="builder-api" subpage=""/>
      <!--
           Generated at 2011-12-09T20:47:22.916Z--><title>Saxonica: XSLT and XQuery Processing: Building a Source Document from an application</title>
      <meta name="coverage" content="Worldwide"/>
      <meta name="copyright" content="Copyright Saxonica Ltd"/>
      <meta name="title"
            content="Saxonica: XSLT and XQuery Processing: Building a Source Document from an application"/>
      <meta name="robots" content="noindex,nofollow"/>
      <link rel="stylesheet" href="../saxondocs.css" type="text/css"/>
   </head>
   <body class="main">
      <h1>Building a Source Document from an application</h1>
      <p>With the Java s9api interface, a source document can be built using the <a class="bodylink" href="../javadoc/net/sf/saxon/s9api/DocumentBuilder.html"><code>DocumentBuilder</code></a> class,
which is created using the factory method <code>newDocumentBuilder</code> on the <a class="bodylink" href="../javadoc/net/sf/saxon/s9api/Processor.html"><code>Processor</code></a> object. Various
 options for document building are available as methods on the <code>DocumentBuilder</code>, for example options
 to perform schema or DTD validation, to strip whitespace, to expand XInclude directives, and also to choose the
 tree implementation model to be used.</p>
      <p>Similarly in the .NET API, there is a <code>DocumentBuilder</code> object that can be created from the processor. This allows options
to be set controlling the way documents are built, and provides an overloaded <code>Build</code> method allowing a tree to
be built from various kinds of source.</p>
      <p>It is also possible to build a Saxon tree in memory by using the <code>buildDocument</code> method
of the <a class="bodylink" href="../javadoc/net/sf/saxon/Configuration.html"><code>Configuration</code></a> object. (When using the JAXP Transformation API, the <code>Configuration</code>
can be obtained from the <code>TransformerFactory</code> as the value of the attribute named <a class="bodylink"
            href="../javadoc/net/sf/saxon/lib/FeatureKeys.html#CONFIGURATION"><code>FeatureKeys.CONFIGURATION</code></a>.)</p>
      <p>The <a class="bodylink"
            href="../javadoc/net/sf/saxon/Configuration.html#buildDocument"><code>buildDocument()</code></a> method takes a single argument, a JAXP <code>Source</code>. This can be any of the standard
kinds of JAXP <code>Source</code>. See <a class="bodylink" href="../sourcedocs/jaxpsources.xml">JAXP Sources</a> for more information.</p>
      <p>All the documents processed in a single transformation or query must be loaded using the same
 <a class="bodylink" href="../javadoc/net/sf/saxon/Configuration.html"><code>Configuration</code></a>. However, it is possible to copy a document from one <code>Configuration</code>
 into another by supplying the <a class="bodylink" href="../javadoc/net/sf/saxon/om/DocumentInfo.html"><code>DocumentInfo</code></a> at the root of the existing document
 as the <code>Source</code> supplied to the <code>buildDocument()</code> method of the new Configuration.
 </p>
      <table width="100%">
         <tr>
            <td>
               <p align="right"><a class="nav" href="preloading.xml">Next</a></p>
            </td>
         </tr>
      </table>
   </body>
</html>