User Guide

Editing EDML files 261
The EDML tag <searchPatterns whereToSearch="directive"> declares that runtime code
needs to be searched. Each
<searchPattern>...</searchPattern> subtag defines one pattern
in the runtime code that must be identified. For the Redirect If Empty example, there are
two patterns.
In the following example, to extract parameter values from
<% if (@@rs@@.EOF)
Response.Redirect("@@new__url@@"); %>,
write a regular expression that identifies any string
rs and new__url:
<searchPattern paramNames="rs,new__url">
/if d ((\w+)\.EOF\) Response\.Redirect\("([^\r\n]*)"\)/i
</searchPattern>
This process searches the users document, and if there is a match, extracts the parameter values.
The first parenthetical subexpression (
\w+) extracts the value for rs. The second subexpression
(
[^\r\n]*) extracts the value for new_url.
Note: The character sequence "[^\r\n]*" matches any character that is not a linefeed, for the
Macintosh and Windows.
Notes about EDML structure
You should use a unique filename to identify your server behavior group. If only one group file
uses an associated participant file, match the participant filename with the group name. Using
this convention, the server behavior group file
updateRecord.edml works with the participant
file
updateRecord_init.edml. When participant files might be shared among server behavior
groups, assign unique descriptive names.
Note: The EDML name space is shared, regardless of folder structure, make sure you use unique
filenames. Filenames should not exceed 31 characters (including the .edml extension), due to
Macintosh limitations.
The runtime code for your server behavior resides inside the EDML files. The EDML parser
should not confuse any of your runtime code with EDML markup, so the
CDATA tag must wrap
around your runtime code. The CDATA tag represents character data and is any text that is not
EDML markup. When you use the
CDATA tag, the EDML parser wont try to interpret it as
markup, but instead, considers it as a block of plain text. The CDATA-marked blocks begin with
<![CDATA[ and end with ]]>.
If you insert the text
Hello, World, it is simple to specify your EDML, as shown in the
following example:
<insertText>Hello, World</insertText>
However, if you insert content that has tags in it, such as <img src='foo.gif'>, it can confuse
the EDML parser. In that case, embed it in the
CDATA construct, as shown in the following
example:
<insertText><![CDATA[<img src='foo.gif'>]]></insertText>
( ...) Creates a parenthetical subexpression within the metasequence
\s* Searches for white spaces
Regular Expression Description