<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="../../make-menu.xsl" type="text/xsl"?><html>
   <head>
      <this-is section="extensions" page="output-extras" subpage="require-well-formed"/>
      <!--
           Generated at 2010-10-29T18:20:48.427+01:00--><title>Saxonica: XSLT and XQuery Processing: The saxon:require-well-formed attribute</title>
      <meta name="coverage" content="Worldwide"/>
      <meta name="copyright" content="Copyright Saxonica Ltd"/>
      <meta name="title"
            content="Saxonica: XSLT and XQuery Processing: The saxon:require-well-formed attribute"/>
      <meta name="robots" content="noindex,nofollow"/>
      <link rel="stylesheet" href="../../saxondocs.css" type="text/css"/>
   </head>
   <body class="main">
      <h1>The saxon:require-well-formed attribute</h1>
      <p>This attribute affects the handling of result documents that contain multiple top-level elements or
top-level text nodes. The W3C specifications allow such a result document, even though it is not a well-formed 
XML document. It is, however, a well-formed <i>external general parsed entity</i>, which means it can be
incorporated into a well-formed XML document by means of an entity reference.</p>
      <p>The attribute <code>saxon:require-well-formed</code> is available, with
values "yes" or "no". The default is "no". If the value is set to "yes", and a SAX destination 
(for example a <code>SAXResult</code>, a <code>JDOMResult</code>, or a user-written
<code>ContentHandler</code>) is supplied to receive the results of the transformation, then Saxon will report an
error rather than sending a non-well-formed stream of SAX events to the <code>ContentHandler</code>.
This attribute is useful when the output of the stylesheet is sent to a component (for example an XSL-FO
rendering engine) that is not designed to accept non-well-formed XML result trees.</p>
      <p>Note also that namespace undeclarations of the form <code>xmlns:p=""</code> (as permitted
by XML Namespaces 1.1) are passed to the <code>startPrefixMapping()</code> method of  
a user-defined <code>ContentHandler</code> only if
<code>undeclare-prefixes="yes"</code> is specified on <code>xsl:output</code>.</p>
      <table width="100%">
         <tr>
            <td>
               <p align="right"><a class="nav" href="supply-source-locator.xml">Next</a></p>
            </td>
         </tr>
      </table>
   </body>
</html>