Custom Web Publishing with XML and XSLT

Table Of Contents
30 FileMaker Server Custom Web Publishing with XML and XSLT
Depending on the grammar you specify in the URL request, the Web Publishing Engine will generate an
XML document using one of the grammars. Each XML document contains a default XML namespace
declaration for the grammar. See the next section,
About namespaces for FileMaker XML. Use one of
these grammars in your document or web page to display and work with FileMaker data in XML format.
Note XML data generated by the Web Publishing Engine is encoded using UTF-8 format (Unicode
Transformation Format 8). See
“About UTF-8 encoded data” on page 37.
About namespaces for FileMaker XML
Unique XML namespaces help distinguish XML tags by the application they were designed for. For
example, if your XML document contains two <DATABASE> elements, one for FileMaker XML data and
another for Oracle XML data, the namespaces will identify the <DATABASE> element for each.
The Web Publishing Engine generates a default namespace for each grammar.
About FileMaker database error codes
The Web Publishing Engine returns an error code in the error code elements at the beginning of each XML
document that represents the error, if any, in the execution of the most recently executed query command.
A value of zero (0) is returned for no error.
The error code element in the XML document indicates errors related to the database and query strings.
Other types of errors can also occur for XSLT stylesheets and are handled differently. See
appendix B,
“Error codes for Custom Web Publishing.
Retrieving the document type definitions for the FileMaker grammars
You can retrieve the document type definitions (DTDs) for the FileMaker grammars by using an HTTP request.
For this grammar This default namespace is generated
fmresultset xmlns="http://www.filemaker.com/xml/fmresultset"
FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult"
FMPXMLLAYOUT xmlns="http://www.filemaker.com/fmpxmllayout"
For this grammar This syntax is used
fmresultset <error code="0"></error>
FMPXMLRESULT <ERRORCODE>0</ERRORCODE>
FMPDSORESULT <ERRORCODE>0</ERRORCODE>
For this grammar Use this HTTP request
fmresultset http://<host>[:<port]/fmi/xml/fmresultset.dtd
FMPXMLRESULT http://<host>[:<port]/fmi/xml/FMPXMLRESULT.dtd
FMPXMLLAYOUT http://<host>[:<port]/fmi/xml/FMPXMLLAYOUT.dtd
FMPDSORESULT http://<host>[:<port]/fmi/xml/FMPDSORESULT.dtd?–db=<database>&–lay=<layout>