<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <meta name="copyright" content=
    "Copyright (c) IBM Corporation and others 2009, 2011. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." />
    <meta http-equiv="Content-Type" content=
    "text/html; charset=utf-8" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link rel="stylesheet" href="../../../apache_style.css" type=
    "text/css" />
    <title>
      API Use Report Conversion Ant Task
    </title>
    <script language="JavaScript" src=
    "PLUGINS_ROOT/org.eclipse.help/livehelp.js" type=
    "text/javascript">

</script>
  </head>
  <body>
    <h1>
      API Use Report Conversion Ant Task
    </h1>
    <h2>
      Purpose
    </h2>

    <p>
      This task converts the XML report created by the
      <code>apitooling.apiuse</code> Ant task into HTML files. The
      HTML report will organize the references by the bundle that
      produced them (i.e. the bundle that contains the api/type
      being referenced).
    </p>
    <h2>
      Usage
    </h2>
    <h3>
      Description
    </h3>

    <p>
      The name of the Ant task is:
      <code>apitooling.apiuse_reportconversion</code>. To be used,
      the jar file <code>apitooling-ant.jar</code> has to be on the
      Ant classpath.
    </p>
    <div class="c4">
      <pre class="c3">
<b><span class="c2">&lt;apitooling.apiuse_reportconversion
	xmlfiles=<span class="c1">"..."</span>
	htmlfiles=<span class="c1">"..."</span>
	xsltfile=<span class="c1">"..."</span>
	filterpatterns=<span class="c1">"..."</span>
	tofilterpatterns=<span class="c1">"..."</span>
	debug=<span class="c1">"..."</span>
 /&gt;</span></b>
</pre>
    </div>
    <h3>
      Parameters
    </h3>
    <table border="1" cellpadding="2" cellspacing="0">
      <tr>
        <td valign="top">

          <b>Attribute</b>
        </td>
        <td valign="top">
          <b>Description</b>
        </td>
        <td align="center" valign="top">
          <b>Required</b>

        </td>
      </tr>
      <tr>
        <td valign="top">
          xmlfiles
        </td>
        <td valign="top">
          This attribute specifies the location of the xml files to
          convert.<br />
          <br />

          The location is specified using an absolute path.
        </td>
        <td align="center" valign="top">
          Yes
        </td>
      </tr>
      <tr>
        <td valign="top">
          htmlfiles
        </td>

        <td valign="top">
          This attribute specifies the location of the html files
          to generate.<br />
          <br />
          The location is specified using an absolute path.
        </td>
        <td align="center" valign="top">
          Yes
        </td>
      </tr>

      <tr>
        <td valign="top">
          xsltfile
        </td>
        <td valign="top">
          This attribute specifies the location of an XSLT file to
          be used to generate the reference details pages in a
          desired ordering.<br />
          <br />
          A default XSLT file is available in the
          <code>apitooling-ant.jar</code> JAR file.<br />

          <br />
          The location is specified using an absolute path.
        </td>
        <td align="center" valign="top">
          No
        </td>
      </tr>
      <tr>
        <td valign="top">
          filterpatterns
        </td>

        <td valign="top">
          This attribute specifies a comma separated listing of
          regular expression patterns used to prune references
          <em>from</em> matching name patterns from the final
          report.<br />
          <br />
          The pattern must be a well-formatted regular expression
          as defined <a href=
          "https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html">
          here</a>.
        </td>

        <td align="center" valign="top">
          No
        </td>
      </tr>
      <tr>
        <td valign="top">
          tofilterpatterns
        </td>
        <td valign="top">
          This attribute specifies a comma separated listing of
          regular expression patterns used to prune references
          <em>to</em> matching name patterns from the final
          report.<br />

          <br />
          The pattern must be a well-formatted regular expression
          as defined <a href=
          "https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html">
          here</a>.
        </td>
        <td align="center" valign="top">
          No
        </td>
      </tr>
      <tr>

        <td valign="top">
          debug
        </td>
        <td valign="top">
          Set the debug value.<br />
          <br />
          The possible values are: <code>true</code>,
          <code>false</code><br />

          Default is <code>false</code>.
        </td>
        <td align="center" valign="top">
          No
        </td>
      </tr>
    </table>
    <h3>
      Examples
    </h3>

    <pre>
 <b><span class="c2">&lt;apitooling.apiuse_reportconversion
  xmlfiles=<span class="c1">"/eclipse/apiuse-both/XML"</span>
  htmlfiles=<span class="c1">"/eclipse/apiuse-both/HTML"</span>
  xsltfile=<span class="c1">"/eclipse/references.xsl"</span>
  debug=<span class="c1">"true"</span>

 /&gt;</span></b>
</pre>
    <p>
      This will run the task creating <code>*.html</code> files
      inside the folder <code>/eclipse/apiuse-both/HTML</code>
      corresponding to the folder structure of the XML file
      location
    </p>
    <p>

      If debug is enabled, some debug tracing will show up in the
      Ant console.
    </p>
    <p>
      <img src="../../../images/ngrelr.png" alt="Related reference"
      border="0" />
    </p>
    <p>
      <a href="apiconsumeruse-reportconversion-ant-task.htm">API
      Consumer Use Report Conversion Ant Task</a><br />
      <a href="analysis-ant-task.htm">Analysis Ant Task</a><br />

      <a href="filegeneration-ant-task.htm">File Generation Ant
      Task</a><br />
      <a href="apiuse-ant-task.htm">API Use Ant Task</a><br />
      <a href="apifreeze-ant-task.htm">API Freeze Ant
      Task</a><br />
      <a href="deprecation-ant-task.htm">API Deprecation Ant
      Task</a><br />
      <a href="deprecation-reportconversion-ant-task.htm">API
      Deprecation Report Conversion Ant Task</a><br />
      <a href="analysis-reportconversion-ant-task.htm">Analysis
      Report Conversion Ant Task</a>

    </p>
  </body>
</html>
