NAME
fdxml - convert an FDXML document to XHTML
SYNOPSIS
fdxml filename [ query ]
This reads an FDXML document and produces an XHTML document. FDXML is actually a superset of XHTML, which can be extended by new elements implemented by Scheme procedures.
DESCRIPTION
This is designed primarily to be called by a web server to dynamically render FDXML documents into HTML.
When started, it uses both the execution environment and the standard input to set up a slotmap containing information about the request for the document. It then reads the XML document in filename which may read certain special processing instructions to define specialized element types. These element types invoke FDScript code to translate themselves into HTML. They can also access the variables of the document request.
DIRECTIVES
The fdxml preprocessor handles the following processing instructions:
<?framerd module module_name >
loads the module module_name and uses its exported symbols to implement elements in the document.
<?framerd pool pool_spec >
access the pool specified by pool_spec
<?framerd index index_spec >
adds the index specified by index_spec to the background
<?framerd load filename >
loads the file filename interpreting the path relative to the directory where the .fdxml file is located. The file will be loaded into its own module and the symbols exported from the module will be available as elements in the FDXML file.
CONVENTIONS
The procedure implementing an element takes a single argument, which is a parsed XML object. The following primitives can be applied to this argument:
- xml-attributes
-
Returns the attributs of the XML element as an alternating list of keyword and values.
- xml-content
-
Returns the content of the XML element
- xml-get
-
Returns the attribute named TAG of the parsed xml data XML. If there is no such attribute, the subelement name SLOT (of the items content) is returned
- xml-getall
-
Returns all the subelements of XML with element type SLOT
ENVIRONMENT
The following variables are typically bound and accessible on the (CGI-DATA) slotmap as well as through (CGI-INIT) and (CGI-VAR)
- SERVER_SOFTWARE
-
The type and version of the web server passing on this CGI request
- SERVER_NAME
-
The name of the server passing on the request
- SERVER_PORT
-
The port on which the server is listening
- SCRIPT_NAME
-
The name of the script being run
- HTTP_REFERER
-
If provided, this is the document from which this script was invoked
- HTTP_USER_AGENT
-
The kind of program making the request, often the web browser being used by the human requestor
- REMOTE_IDENT
-
Rarely provided, this is an identifier of the individual making the reauest
- REMOTE_HOST
-
This is the hostname of the machine from which the request apparently originated.
- REMOTE_ADDR
-
This is the IP address (dd.dd.dd.dd) of the machine from which the request apparently originated.
- PATH_INFO
-
This is the part of the URL which occurs after the script name but before any parameters
- DOCUMENT_ROOT
-
This is the document root
- PATH_TRANSLATED
-
This is the local file to which this request was translated
- AUTH_TYPE
-
This describes how the user authenticated her/him/itself.
- REMOTE_USER
-
This describes who the user authenticated her/him/itself as.
- HTTP_COOKIE
-
This is the "cookie" passed with this request. The individual components of this cookie are separated out into separate fields in the CGI-DATA slotmap
- SERVER_HOST
-
This is host on which the server is running. This will differ from SERVER_NAME only if virtual hosts are being used
- HTTPS
-
This is true if the connection with client is a secure (SSL) connection.
- HTTP_ACCEPT
- HTTP_ACCEPT_CHARSET
- HTTP_ACCEPT_ENCODING
- HTTP_ACCEPT_LANGUAGE
- REQUEST_METHOD
-
This is the request method. Only GET and POST are currently handled
- CONTENT_TYPE
-
This is the mime time of any data sent with the request
- CONTENT_LENGTH
-
This is the number of bytes of data sent along with the request
- QUERY_STRING
-
This is the query string passed with the request. If it provides form variables (common when the REQUEST_METHOD is GET), these variables are each broken out and assigned to the slotmap.
- POST_DATA
-
This is the actual data sent along with the request. If the mime type is a text type, this is a string; otherwise, it is a packet. If the post data contains form variables (either url-encoded or mime-encoded), these are broken out
- PARSED_POST
-
When the posted data is a multi-part mime document, this is the parsed document.
BUGS
Revision Info
$Id: fdxml.1,v 1.1 2002/05/29 18:38:01 haase Exp $
AUTHOR
Ken Haase < [email protected] >