Tutorial XML and XSLT files
From Plex-XML
STOP! Wait a minute. Don't go away in an instant. On the first glance it looks much more complicated that it really is.
After a while it will read like a page-turning thriller;-) Give it a try!
In the next steps on this page you can have a closer look at the necessary configuration files. They are already prepared for this tutorial.
If you would like to enhance the tutorial and create a new entity or a new function you will need to enhance these files or create new ones accordingly as described in the tutorial next steps....
- Open the 'web/WEB-INF/tutorial' directory in your Eclipse project.
- Open the 'controller.xml' with a double click in your Eclipse editor window.
- This XML file is used by the servlet and defines the Plex-XML functions that exists and the request name that is used to map a function to the request configuration file.
- See Controller Configuration for details.
- ToDo: XSL-Description and more documentation on row level
<?xml version="1.0" ?>
<controller-config>
<!-- Employee -->
<request-handler>
<class>com.plexxml.xml.handler.Employee_FBHandler</class>
<request>EmployeeFB</request>
</request-handler>
<request-handler>
<class>com.plexxml.xml.handler.Employee_INHandler</class>
<request>EmployeeIN</request>
</request-handler>
<request-handler>
<class>com.plexxml.xml.handler.Employee_UDHandler</class>
<request>EmployeeUD</request>
</request-handler>
<!-- Project -->
<request-handler>
<class>com.plexxml.xml.handler.Project_FBHandler</class>
<request>ProjectFB</request>
</request-handler>
<request-handler>
<class>com.plexxml.xml.handler.Project_INHandler</class>
<request>ProjectIN</request>
</request-handler>
<request-handler>
<class>com.plexxml.xml.handler.Project_UDHandler</class>
<request>ProjectUD</request>
</request-handler>
</controller-config>
- Open the 'request.xml' with a double click in your Eclipse editor window.
- See Request Configuration for details.
- ToDo: XSL-Description and more documentation on row level
<?xml version="1.0"?>
<request-config>
<!-- Employee -->
<webrequest name="EmployeeFB">
<request name="EmployeeFB" extends="FindBrowse"/>
<response>
<error type="default" name="DEFAULT"/>
<reaction type="DEFAULT" target="DISPLAY" localized="true" name="/WEB-INF/tutorial/filter/EmployeeFB.xsl"/>
</response>
</webrequest>
<webrequest name="EmployeeIN">
<request name="EmployeeIN" extends="Insert"/>
<response>
<error type="default" name="DEFAULT"/>
<error type="reaction" name="READY" response="EmployeeIN" value="OK"/>
<reaction type="DEFAULT" target="DISPLAY" localized="true" name="/WEB-INF/resources/common/DictionaryEdit.xslt"/>
<reaction type="READY" target="DISPLAY" usedefaultstyle="false" name="/WEB-INF/resources/@common_html@/ready.xslt"/>
</response>
</webrequest>
<webrequest name="EmployeeUD">
<request name="EmployeeUD" extends="Update">
<plex-parameter type="web" name="UpdateKey_EmployeeID">EmployeeID</plex-parameter>
</request>
<response>
<error type="default" name="DEFAULT"/>
<error type="reaction" name="READY" response="EmployeeUD" value="OK"/>
<reaction type="DEFAULT" target="DISPLAY" localized="true" name="/WEB-INF/resources/common/DictionaryEdit.xslt"/>
<reaction type="READY" target="DISPLAY" usedefaultstyle="false" name="/WEB-INF/resources/@common_html@/ready.xslt"/>
</response>
</webrequest>
<!-- Project -->
<webrequest name="ProjectFB">
<request name="ProjectFB" extends="FindBrowse"/>
<response>
<error type="default" name="DEFAULT"/>
<reaction type="DEFAULT" target="DISPLAY" localized="true" name="/WEB-INF/tutorial/filter/ProjectFB.xsl"/>
</response>
</webrequest>
<webrequest name="ProjectIN">
<request name="ProjectIN" extends="Insert"/>
<response>
<error type="default" name="DEFAULT"/>
<error type="reaction" name="READY" response="ProjectIN" value="OK"/>
<reaction type="DEFAULT" target="DISPLAY" localized="true" name="/WEB-INF/resources/common/DictionaryEdit.xslt"/>
<reaction type="READY" target="DISPLAY" usedefaultstyle="false" name="/WEB-INF/resources/@common_html@/ready.xslt"/>
</response>
</webrequest>
<webrequest name="ProjectUD">
<request name="ProjectUD" extends="Update">
<plex-parameter type="web" name="UpdateKey_ProjectID">ProjectID</plex-parameter>
</request>
<response>
<error type="default" name="DEFAULT"/>
<error type="reaction" name="READY" response="ProjectUD" value="OK"/>
<reaction type="DEFAULT" target="DISPLAY" localized="true" name="/WEB-INF/resources/common/DictionaryEdit.xslt"/>
<reaction type="READY" target="DISPLAY" usedefaultstyle="false" name="/WEB-INF/resources/@common_html@/ready.xslt"/>
</response>
</webrequest>
</request-config>
- Click the 'filter' directory and open the 'EmployeeFB.xsl' with a double click in your Eclipse editor window.
- ToDo: XSL-Description and more documentation on row level
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="/WEB-INF/resources/common/DictionaryFindBrowse.xslt"/>
<xsl:include href="/WEB-INF/resources/locale/messages-{0}.xslt"/>
<!-- GridRowOnClick -->
<xsl:template name="gridRowOnClick">
<xsl:variable name="EmployeeID"><xsl:value-of select="returnvalue[@name='EmployeeID']/@unformatted" /></xsl:variable>
<gridrowonclick>
<xsl:call-template name="onClickNewWindow">
<xsl:with-param name="param">
<formName>EmployeeUD</formName>
<param value="{$EmployeeID}">EmployeeID</param>
<action>P</action>
<width>700</width>
<height>350</height>
</xsl:with-param>
</xsl:call-template>
</gridrowonclick>
</xsl:template>
<!-- ToolBar -->
<xsl:template name="toolbar">
<toolbar>
<xsl:call-template name="gridtoolbar"/>
<button row="false" text="{$t_InsertText}" alt="{$t_Insert}" image="add.gif">
<xsl:call-template name="onClickNewWindow">
<xsl:with-param name="param">
<formName>EmployeeIN</formName>
<width>700</width>
<height>350</height>
</xsl:with-param>
</xsl:call-template>
</button>
</toolbar>
</xsl:template>
</xsl:stylesheet>
- Open the 'ProjectFB.xsl' with a double click in your Eclipse editor window.
- ToDo: XSL-Description
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="/WEB-INF/resources/common/DictionaryFindBrowse.xslt"/>
<xsl:include href="/WEB-INF/resources/locale/messages-{0}.xslt"/>
<!-- GridRowOnClick -->
<xsl:template name="gridRowOnClick">
<xsl:variable name="ProjectID"><xsl:value-of select="returnvalue[@name='ProjectID']/@unformatted" /></xsl:variable>
<gridrowonclick>
<xsl:call-template name="onClickNewWindow">
<xsl:with-param name="param">
<formName>ProjectUD</formName>
<param value="{$ProjectID}">ProjectID</param>
<action>P</action>
<width>700</width>
<height>350</height>
</xsl:with-param>
</xsl:call-template>
</gridrowonclick>
</xsl:template>
<!-- ToolBar -->
<xsl:template name="toolbar">
<toolbar>
<xsl:call-template name="gridtoolbar"/>
<button row="false" text="{$t_InsertText}" alt="{$t_Insert}" image="add.gif">
<xsl:call-template name="onClickNewWindow">
<xsl:with-param name="param">
<formName>ProjectIN</formName>
<width>700</width>
<height>350</height>
</xsl:with-param>
</xsl:call-template>
</button>
</toolbar>
</xsl:template>
</xsl:stylesheet>

