Custom Web Publishing with XML and XSLT
Table Of Contents
- Preface
- Chapter 1 Introducing Custom Web Publishing
- Chapter 2 About Custom Web Publishing with XML and XSLT
- Chapter 3 Preparing databases for Custom Web Publishing
- Chapter 4 Accessing XML data with the Web Publishing Engine
- Using Custom Web Publishing with XML
- General process for accessing XML data from the Web Publishing Engine
- About the URL syntax for XML data and container objects
- Accessing XML data via the Web Publishing Engine
- Using the fmsresultset grammar
- Using other FileMaker XML grammars
- About UTF-8 encoded data
- Using FileMaker query strings to request XML data
- Switching layouts for an XML response
- Understanding how an XML request is processed
- Using server-side and client-side processing of stylesheets
- Troubleshooting XML document access
- Chapter 5 Introduction to Custom Web Publishing with XSLT
- Chapter 6 Developing FileMaker XSLT stylesheets
- Using XSLT stylesheets with the Web Publishing Engine
- About the FileMaker XSLT Extension Function Reference
- About the FileMaker XSLT Starter Solution
- About the URL syntax for FileMaker XSLT stylesheets
- About the URL syntax for FileMaker container objects in XSLT solutions
- Using query strings in FileMaker XSLT stylesheets
- Specifying an XML grammar for a FileMaker XSLT stylesheet
- About namespaces and prefixes for FileMaker XSLT stylesheets
- Using statically defined query commands and query parameters
- Setting text encoding for requests
- Specifying an output method and encoding
- About the encoding of XSLT stylesheets
- Processing XSLT requests that do not query FileMaker Server
- Using tokens to pass information between stylesheets
- Using the FileMaker XSLT extension functions and parameters
- About the FileMaker-specific XSLT parameters set by the Web Publishing Engine
- Accessing the query information in a request
- Obtaining client information
- Using the Web Publishing Engine base URI parameter
- Using the authenticated base URI parameter
- Loading additional documents
- Using the layout information for a database in a stylesheet
- Using content buffering
- Using Web Publishing Engine sessions to store information between requests
- Using the session extension functions
- Sending email messages from the Web Publishing Engine
- Using the header functions
- Using the cookie extension functions
- Using the string manipulation extension functions
- Comparing strings using Perl 5 regular expressions
- Checking for values in a field formatted as a checkbox
- Using the date, time, and day extension functions
- Checking the error status of extension functions
- Using logging
- Using server-side processing of scripting languages
- Chapter 7 Staging, testing, and monitoring a site
- Appendix A Valid names used in query strings
- About the query commands and parameters
- Query command reference
- -dbnames (Database names) query command
- -delete (Delete record) query command
- -dup (Duplicate record) query command
- -edit (Edit record) query command
- -find, -findall, or -findany (Find records) query commands
- -findquery (Compound find) query command
- -layoutnames (Layout names) query command
- -new (New record) query command
- -process (Process XSLT stylesheets)
- -scriptnames (Script names) query command
- -view (View layout information) query command
- Query parameter reference
- -db (Database name) query parameter
- -delete.related (Portal records delete) query parameter
- -encoding (Encoding XSLT request) query parameter
- -field (Container field name) query parameter
- fieldname (Non-container field name) query parameter
- fieldname.op (Comparison operator) query parameter
- -grammar (Grammar for XSLT stylesheets) query parameter
- -lay (Layout) query parameter
- -lay.response (Switch layout for response) query parameter
- -lop (Logical operator) query parameter
- -max (Maximum records) query parameter
- -modid (Modification ID) query parameter
- -query (Compound find request) query parameter
- -recid (Record ID) query parameter
- -relatedsets.filter (Filter portal records) query parameter
- -relatedsets.max (Limit portal records) query parameter
- -script (Script) query parameter
- -script.param (Pass parameter to Script) query parameter
- -script.prefind (Script before Find) query parameter
- -script.prefind.param (Pass parameter to Script before Find) query parameter
- -script.presort (Script before Sort) query parameter
- -script.presort.param (Pass parameter to Script before Sort) query parameter
- -skip (Skip records) query parameter
- -sortfield (Sort field) query parameter
- -sortorder (Sort order) query parameter
- -stylehref (Style href) query parameter
- -styletype (Style type) query parameter
- -token.[string] (Pass values between XSLT stylesheets) query parameter
- Appendix B Error codes for Custom Web Publishing
- Index
Chapter 4
|
Accessing XML data with the Web Publishing Engine 37
About UTF-8 encoded data
All XML data generated by the Web Publishing Engine is encoded in UTF-8 (Unicode Transformation 8
Bit) format. This format compresses data from the standard Unicode format of 16 bits to 8 bits for ASCII
characters. XML parsers are required to support Unicode and UTF-8 encoding.
UTF-8 encoding includes direct representations of the values of 0-127 for the standard ASCII set of
characters used in English, and provides multibyte encodings for Unicode characters with higher values.
Note Be sure to use a web browser or text editor program that supports UTF-8 files.
The UTF-8 encoding format includes the following features:
1 All ASCII characters are one-byte UTF-8 characters. A legal ASCII string is a legal UTF-8 string.
1 Any non-ASCII character (any character with the high-order bit set) is part of a multibyte character.
1 The first byte of any UTF-8 character indicates the number of additional bytes in the character.
1 The first byte of a multibyte character is easily distinguished from the subsequent byte, which makes it
is easy to locate the start of a character from an arbitrary position in a data stream.
1 It is easy to convert between UTF-8 and Unicode.
1 The UTF-8 encoding is relatively compact. For text with a large percentage of ASCII characters, it is
more compact than Unicode. In the worst case, a UTF-8 string is only 50% larger than the corresponding
Unicode string.
Using FileMaker query strings to request XML data
To request XML data from a FileMaker database, you use the FileMaker query commands and parameters
in a query string. For example, you can use the –findall query command in the following query string in a
URL to request a list of all products in a FileMaker database named “products”:
http://192.168.123.101/fmi/xml/fmresultset.xml?–db=products–lay=sales&–findall
A query string must contain only one query command, such as –new. Most query commands also require
various matching query parameters in the query string. For example, all query commands except –dbnames
require the –db parameter that specifies the database to query.
You can also use query commands and parameters in a URL or in a <?xslt–cwp–query?> processing
instruction in a FileMaker XSLT stylesheet. See
chapter 6, “Developing FileMaker XSLT stylesheets.”
This section contains a summary of the FileMaker query commands and parameters. For more information
about using them in a query string, see
appendix A, “Valid names used in query strings.”
Note The Web Publishing Engine also supports an additional query command (–process) and three query
parameters that are defined for use only with FileMaker XSLT stylesheets. See
“Using query strings in
FileMaker XSLT stylesheets” on page 54.
Use this query command name To execute this command
–dbnames Retrieve names of all hosted and web-shared databases.
–delete Delete record.
–dup Duplicate record.
–edit Edit record.