Custom Web Publishing with XML and XSLT

Table Of Contents
Chapter 4
|
Accessing XML data with the Web Publishing Engine 39
Switching layouts for an XML response
The –lay query parameter specifies the layout you want to use when requesting XML data. Often, the same
layout is appropriate for processing the data that results from the request. In some cases, you might want to
search for data using a layout which contains fields that, for security reasons, don’t exist in another layout
you want to use for displaying the results. (To do a search for data in a field, the field must be placed on the
layout you specify in the XML request.)
To specify a different layout for displaying an XML response than the layout used for processing the XML
request, you can use the optional –lay.response query parameter.
For example, the following request searches for values greater than 100,000 in the Salary field on the Budget
layout. The resulting data is displayed using the ExecList layout, which does not include the Salary field.
http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=Budget&Salary=100000&Salary.op=gt&–find
&–lay.response=ExecList
Understanding how an XML request is processed
There are several query parameters that affect the processing of an XML request and the generation of an
XML document.
Here is the order in which FileMaker Server and the Web Publishing Engine process an XML request:
1. Process the –lay query parameter.
2. Set the global field values specified in the query (the “.global=” portion of a URL).
3. Process the –script.prefind query parameter, if specified.
4. Process the query commands, such –find or –new.
5. Process the –script.presort query parameter, if specified.
6. Sort the resulting data, if a sort was specified.
7. Process the –lay.response query parameter to switch to a different layout, if this is specified.
8. Process the –script query parameter, if specified.
9. Generate the XML document.
–script.prefind.param (pass a parameter value
to the script specified by –script.prefind)
Optional with –script.prefind
–script.presort (perform script before sort) Optional with –find, –findall
–script.presort.param (pass a parameter
value to the script specified by
–script.presort)
Optional with –script.presort
–skip (skip records) Optional with –find, –findall
–sortfield.[1-9] (sort field) Optional with –find, –findall
–sortorder.[1-9] (sort order) Optional with –find, –findall
–stylehref (stylesheet HREF) Optional with all query commands (to specify a stylesheet URL for
–styletype)
–styletype (stylesheet type) Optional with all query commands (to specify client-side stylesheet)
Use these query parameter names With these query commands