Tutorial XML and XSLT files

From Plex-XML
Jump to: navigation, search

STOP! Wait a minute. Don't go away in an instant. At first glance, it looks much more complicated than 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>
Personal tools