Example 17-22: XSQL page to create/edit user preferences

<?xml version="1.0"?>
<!-- Prefs.xsql: Create form for displaying/editing user preferences -->
<?xml-stylesheet type="text/xsl" href="Prefs.xsl"?>
<page connection="xmlbook" xmlns:xsql="urn:oracle-xsql">
  <dataform target="News.xsql" submit="Save Preferences">
    <item type="hidden" name="userid">
      <xsql:include-param name="forumuser"/>
    </item>
    <item type="checkboxlist" name="categories" label="News Categories">
      <xsql:query>
        SELECT nc.id AS VALUE,
               nc.name AS DISPLAY,
               DECODE(uc.category,NULL,'N','Y') as SELECTED
          FROM site_newscategory nc,
               user_news_categories uc
          WHERE NVL('{@forumuser}','DEFAULT') = uc.userid (+)
            AND                         nc.id = uc.category (+)
         order by name
      </xsql:query>
    </item>
    <item type="list" name="headlines" label="Headlines Per Category">
      <xsql:query rowset-element="" row-element="">
        SELECT headlines as "default"
          FROM user_prefs
         WHERE userid = NVL('{@forumuser}','DEFAULT')
      </xsql:query>
      <ROWSET>
        <ROW><VALUE>4</VALUE><DISPLAY>4</DISPLAY></ROW>
        <ROW><VALUE>5</VALUE><DISPLAY>5</DISPLAY></ROW>
        <ROW><VALUE>6</VALUE><DISPLAY>6</DISPLAY></ROW>
      </ROWSET>
    </item>
    <item type="textarea" name="stocks" size="40" label="Stocks">
      <xsql:query>
        SELECT ticker||' ' as ticker
          FROM user_stocks
         WHERE userid = NVL('{@forumuser}','DEFAULT')
      </xsql:query>
    </item>
  </dataform>
</page>