Example 14-3: Transforming for multi-table insert

<INSERT xsl:version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <ROWSET table="dept">
    <xsl:for-each select="Department">
      <ROW>
        <DEPTNO><xsl:value-of select="Id"/></DEPTNO>
        <DNAME><xsl:value-of select="Name"/></DNAME>
      </ROW>
    </xsl:for-each>
  </ROWSET>
  <ROWSET table="budget_plan_assignment">
    <xsl:for-each select="Department/BudgetPlan">
      <ROW>
        <DEPTNO><xsl:value-of select="../Id"/></DEPTNO>
        <BUDGETCODE><xsl:value-of select="."/></BUDGETCODE>
      </ROW>
    </xsl:for-each>
  </ROWSET>
  <ROWSET table="emp">
    <xsl:for-each select="Department/Employee">
      <ROW>
        <EMPNO><xsl:value-of select="Id"/></EMPNO>
        <ENAME><xsl:value-of select="Name"/></ENAME>
        <SAL><xsl:value-of select="Salary"/></SAL>
        <DEPTNO><xsl:value-of select="../Id"/></DEPTNO>
      </ROW>
    </xsl:for-each>
  </ROWSET>
  <ROWSET table="dependent">
    <xsl:for-each select="Department/Employee/Dependent">
      <ROW>
        <EMPNO><xsl:value-of select="../Id"/></EMPNO>
        <NAME><xsl:value-of select="Name"/></NAME>
      </ROW>
    </xsl:for-each>
  </ROWSET>
</INSERT>