<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"><xsd:element name="alias"><xsd:annotation><xsd:documentation><![CDATA[Declares new variables which are aliases of other variables.
 Takes a "map"-Parameter which is an associative array which defines the shorthand mapping.

 The variables are only declared inside the <f:alias>...</f:alias>-tag. After the
 closing tag, all declared variables are removed again.

 = Examples =

 <code title="Single alias">
 <f:alias map="{x: 'foo'}">{x}</f:alias>
 </code>
 <output>
 foo
 </output>

 <code title="Multiple mappings">
 <f:alias map="{x: foo.bar.baz, y: foo.bar.baz.name}">
   {x.name} or {y}
 </f:alias>
 </code>
 <output>
 [name] or [name]
 depending on {foo.bar.baz}
 </output>

 Note: Using this view helper can be a sign of weak architecture. If you end up using it extensively
 you might want to fine-tune your "view model" (the data you assign to the view).]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="map" use="required"><xsd:annotation><xsd:documentation><![CDATA[Array that specifies which variables should be mapped to which alias]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="cache.disable"><xsd:annotation><xsd:documentation><![CDATA[ViewHelper to disable template compiling

 Inserting this ViewHelper at any point in the template,
 including inside conditions which do not get rendered,
 will forcibly disable the caching/compiling of the full
 template file to a PHP class.

 Use this if for whatever reason your platform is unable
 to create or load PHP classes (for example on read-only
 file systems or when using an incompatible default cache
 backend).

 Passes through anything you place inside the ViewHelper,
 so can safely be used as container tag, as self-closing
 or with inline syntax - all with the same result.

 = Examples =

 <code title="Self-closing">
 <f:cache.disable />
 </code>

 <code title="Inline mode">
 {f:cache.disable()}
 </code>

 <code title="Container tag">
 <f:cache.disable>
    Some output or Fluid code
 </f:cache.disble>
 Additional output is also not compilable because of the ViewHelper
 </code>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="cache.static"><xsd:annotation><xsd:documentation><![CDATA[ViewHelper to force compiling to a static string

 Used around chunks of template code where you want the
 output of said template code to be compiled to a static
 string (rather than a collection of compiled nodes, as
 is the usual behavior).

 The effect is that none of the child ViewHelpers or nodes
 used inside this tag will be evaluated when rendering the
 template once it is compiled. It will essentially replace
 all logic inside the tag with a plain string output.

 Works by turning the `compile` method into a method that
 renders the child nodes and returns the resulting content
 directly as a string variable.

 You can use this with great effect to further optimise the
 performance of your templates: in use cases where chunks of
 template code depend on static variables (like thoese in
 {settings} for example) and those variables never change,
 and the template uses no other dynamic variables, forcing
 the template to compile that chunk to a static string can
 save a lot of operations when rendering the compiled template.

 NB: NOT TO BE USED FOR CACHING ANYTHING OTHER THAN STRING-
 COMPATIBLE OUTPUT!

 USE WITH CARE! WILL PRESERVE EVERYTHING RENDERED, INCLUDING
 POTENTIALLY SENSITIVE DATA CONTAINED IN OUTPUT!

 = Examples =

 <code title="Usage and effect">
 <f:if condition="{var}">Is always evaluated also when compiled</f:if>
 <f:cache.static>
     <f:if condition="{othervar}">
         Will only be evaluated once and this output will be
         cached as a static string with no logic attached.
         The compiled template will not contain neither the
         condition ViewHelperNodes or the variable accessor
         that are used inside this node.
     </f:if>
 </f:cache.static>
 This is also evaluated when compiled (static node is closed)
 <f:if condition="{var}">Also evaluated; is outside static node</f:if>
 </code>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="cache.warmup"><xsd:annotation><xsd:documentation><![CDATA[ViewHelper to insert variables which only apply during
 cache warmup and only apply if no other variables are
 specified for the warmup process.

 If a chunk of template code is impossible to compile
 without additional variables, for example when rendering
 sections or partials using dynamic names, you can use this
 ViewHelper around that chunk and specify a set of variables
 which will be assigned only while compiling the template
 and only when this is done as part of cache warmup. The
 template chunk can then be compiled using those default
 variables.

 Note: this does not imply that only those variable values
 will be used by the compiled template. It only means that
 DEFAULT values of vital variables will be present during
 compiling.

 If you find yourself completely unable to properly warm up
 a specific template file even with use of this ViewHelper,
 then you can consider using `f:cache.disable` to prevent
 the template compiler from even attempting to compile it.

 USE WITH CARE! SOME EDGE CASES OF FOR EXAMPLE VIEWHELPERS
 WHICH REQUIRE SPECIAL VARIABLE TYPES MAY NOT BE SUPPORTED
 HERE DUE TO THE RUDIMENTARY NATURE OF VARIABLES YOU DEFINE.

 = Examples =

 <code title="Usage and effect">
 <f:cache.warmup variables="{foo: bar}">
    Template code depending on {foo} variable which is not
    assigned when warming up Fluid's caches. {foo} is only
    assigned if the variable does not already exist and the
    assignment only happens if Fluid is in warmup mode.
 </f:cache.warmup>
 </code>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="variables"><xsd:annotation><xsd:documentation><![CDATA[Array of variables to assign ONLY when compiling. See main class documentation.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="case"><xsd:annotation><xsd:documentation><![CDATA[Case view helper that is only usable within the SwitchViewHelper.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value" use="required"><xsd:annotation><xsd:documentation><![CDATA[Value to match in this case]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="comment"><xsd:annotation><xsd:documentation><![CDATA[This ViewHelper prevents rendering of any content inside the tag
 Note: Contents of the comment will still be **parsed** thus throwing an
 Exception if it contains syntax errors. You can put child nodes in
 CDATA tags to avoid this.

 = Examples =

 <code title="Commenting out fluid code">
 Before
 <f:comment>
   This is completely hidden.
   <f:debug>This does not get rendered</f:debug>
 </f:comment>
 After
 </code>
 <output>
 Before
 After
 </output>

 <code title="Prevent parsing">
 <f:comment><![CDATA[
  <f:some.invalid.syntax />
 ]]]]><![CDATA[></f:comment>
 </code>
 <output>
 </output>

 Note: Using this view helper won't have a notable effect on performance, especially once the template is parsed.
 However it can lead to reduced readability. You can use layouts and partials to split a large template into smaller
 parts. Using self-descriptive names for the partials can make comments redundant.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="count"><xsd:annotation><xsd:documentation><![CDATA[This ViewHelper counts elements of the specified array or countable object.

 = Examples =

 <code title="Count array elements">
 <f:count subject="{0:1, 1:2, 2:3, 3:4}" />
 </code>
 <output>
 4
 </output>

 <code title="inline notation">
 {objects -> f:count()}
 </code>
 <output>
 10 (depending on the number of items in {objects})
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="subject"><xsd:annotation><xsd:documentation><![CDATA[Countable subject, array or \Countable]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="cycle"><xsd:annotation><xsd:documentation><![CDATA[This ViewHelper cycles through the specified values.
 This can be often used to specify CSS classes for example.
 **Note:** To achieve the "zebra class" effect in a loop you can also use the "iteration" argument of the **for** ViewHelper.

 = Examples =

 <code title="Simple">
 <f:for each="{0:1, 1:2, 2:3, 3:4}" as="foo"><f:cycle values="{0: 'foo', 1: 'bar', 2: 'baz'}" as="cycle">{cycle}</f:cycle></f:for>
 </code>
 <output>
 foobarbazfoo
 </output>

 <code title="Alternating CSS class">
 <ul>
   <f:for each="{0:1, 1:2, 2:3, 3:4}" as="foo">
     <f:cycle values="{0: 'odd', 1: 'even'}" as="zebraClass">
       <li class="{zebraClass}">{foo}</li>
     </f:cycle>
   </f:for>
 </ul>
 </code>
 <output>
 <ul>
   <li class="odd">1</li>
   <li class="even">2</li>
   <li class="odd">3</li>
   <li class="even">4</li>
 </ul>
 </output>

 Note: The above examples could also be achieved using the "iteration" argument of the ForViewHelper]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="values"><xsd:annotation><xsd:documentation><![CDATA[The array or object implementing \ArrayAccess (for example \SplObjectStorage) to iterated over]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="as" use="required"><xsd:annotation><xsd:documentation><![CDATA[The name of the iteration variable]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="debug"><xsd:annotation><xsd:documentation><![CDATA[<code title="inline notation and custom title">
 {object -> f:debug(title: 'Custom title')}
 </code>
 <output>
 all properties of {object} nicely highlighted (with custom title)
 </output>

 <code title="only output the type">
 {object -> f:debug(typeOnly: true)}
 </code>
 <output>
 the type or class name of {object}
 </output>

 Note: This view helper is only meant to be used during development]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="typeOnly"><xsd:annotation><xsd:documentation><![CDATA[If TRUE, debugs only the type of variables]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="levels"><xsd:annotation><xsd:documentation><![CDATA[Levels to render when rendering nested objects/arrays]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="html"><xsd:annotation><xsd:documentation><![CDATA[Render HTML. If FALSE, output is indented plaintext]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="defaultCase"><xsd:annotation><xsd:documentation><![CDATA[A view helper which specifies the "default" case when used within the SwitchViewHelper.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="else"><xsd:annotation><xsd:documentation><![CDATA[Else-Branch of a condition. Only has an effect inside of "If". See the If-ViewHelper for documentation.

 = Examples =

 <code title="Output content if condition is not met">
 <f:if condition="{someCondition}">
   <f:else>
     condition was not true
   </f:else>
 </f:if>
 </code>
 <output>
 Everything inside the "else" tag is displayed if the condition evaluates to FALSE.
 Otherwise nothing is outputted in this example.
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="if"><xsd:annotation><xsd:documentation><![CDATA[Condition expression conforming to Fluid boolean rules]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="for"><xsd:annotation><xsd:documentation><![CDATA[Loop view helper which can be used to iterate over arrays.
 Implements what a basic foreach()-PHP-method does.

 = Examples =

 <code title="Simple Loop">
 <f:for each="{0:1, 1:2, 2:3, 3:4}" as="foo">{foo}</f:for>
 </code>
 <output>
 1234
 </output>

 <code title="Output array key">
 <ul>
   <f:for each="{fruit1: 'apple', fruit2: 'pear', fruit3: 'banana', fruit4: 'cherry'}" as="fruit" key="label">
     <li>{label}: {fruit}</li>
   </f:for>
 </ul>
 </code>
 <output>
 <ul>
   <li>fruit1: apple</li>
   <li>fruit2: pear</li>
   <li>fruit3: banana</li>
   <li>fruit4: cherry</li>
 </ul>
 </output>

 <code title="Iteration information">
 <ul>
   <f:for each="{0:1, 1:2, 2:3, 3:4}" as="foo" iteration="fooIterator">
     <li>Index: {fooIterator.index} Cycle: {fooIterator.cycle} Total: {fooIterator.total}{f:if(condition: fooIterator.isEven, then: ' Even')}{f:if(condition: fooIterator.isOdd, then: ' Odd')}{f:if(condition: fooIterator.isFirst, then: ' First')}{f:if(condition: fooIterator.isLast, then: ' Last')}</li>
   </f:for>
 </ul>
 </code>
 <output>
 <ul>
   <li>Index: 0 Cycle: 1 Total: 4 Odd First</li>
   <li>Index: 1 Cycle: 2 Total: 4 Even</li>
   <li>Index: 2 Cycle: 3 Total: 4 Odd</li>
   <li>Index: 3 Cycle: 4 Total: 4 Even Last</li>
 </ul>
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="each" use="required"><xsd:annotation><xsd:documentation><![CDATA[The array or \SplObjectStorage to iterated over]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="as" use="required"><xsd:annotation><xsd:documentation><![CDATA[The name of the iteration variable]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="key"><xsd:annotation><xsd:documentation><![CDATA[Variable to assign array key to]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="reverse"><xsd:annotation><xsd:documentation><![CDATA[If TRUE, iterates in reverse]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="iteration"><xsd:annotation><xsd:documentation><![CDATA[The name of the variable to store iteration information (index, cycle, isFirst, isLast, isEven, isOdd)]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.cdata"><xsd:annotation><xsd:documentation><![CDATA[Outputs an argument/value without any escaping and wraps it with CDATA tags.

 PAY SPECIAL ATTENTION TO SECURITY HERE (especially Cross Site Scripting),
 as the output is NOT SANITIZED!

 = Examples =

 <code title="Child nodes">
 <f:format.cdata>{string}</f:format.cdata>
 </code>
 <output>
 <![CDATA[(Content of {string} without any conversion/escaping)]]]]><![CDATA[>
 </output>

 <code title="Value attribute">
 <f:format.cdata value="{string}" />
 </code>
 <output>
 <![CDATA[(Content of {string} without any conversion/escaping)]]]]><![CDATA[>
 </output>

 <code title="Inline notation">
 {string -> f:format.cdata()}
 </code>
 <output>
 <![CDATA[(Content of {string} without any conversion/escaping)]]]]><![CDATA[>
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[The value to output]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.htmlspecialchars"><xsd:annotation><xsd:documentation><![CDATA[Applies htmlspecialchars() escaping to a value]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[Value to format]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="keepQuotes"><xsd:annotation><xsd:documentation><![CDATA[If TRUE quotes will not be replaced (ENT_NOQUOTES)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="encoding"><xsd:annotation><xsd:documentation><![CDATA[Encoding]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="doubleEncode"><xsd:annotation><xsd:documentation><![CDATA[If FALSE html entities will not be encoded]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.printf"><xsd:annotation><xsd:documentation><![CDATA[A view helper for formatting values with printf. Either supply an array for
 the arguments or a single value.
 See http://www.php.net/manual/en/function.sprintf.php

 = Examples =

 <code title="Scientific notation">
 <f:format.printf arguments="{number: 362525200}">%.3e</f:format.printf>
 </code>
 <output>
 3.625e+8
 </output>

 <code title="Argument swapping">
 <f:format.printf arguments="{0: 3, 1: 'Kasper'}">%2$s is great, TYPO%1$d too. Yes, TYPO%1$d is great and so is %2$s!</f:format.printf>
 </code>
 <output>
 Kasper is great, TYPO3 too. Yes, TYPO3 is great and so is Kasper!
 </output>

 <code title="Single argument">
 <f:format.printf arguments="{1: 'TYPO3'}">We love %s</f:format.printf>
 </code>
 <output>
 We love TYPO3
 </output>

 <code title="Inline notation">
 {someText -> f:format.printf(arguments: {1: 'TYPO3'})}
 </code>
 <output>
 We love TYPO3
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[String to format]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="arguments"><xsd:annotation><xsd:documentation><![CDATA[The arguments for vsprintf]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.raw"><xsd:annotation><xsd:documentation><![CDATA[Outputs an argument/value without any escaping. Is normally used to output
 an ObjectAccessor which should not be escaped, but output as-is.

 PAY SPECIAL ATTENTION TO SECURITY HERE (especially Cross Site Scripting),
 as the output is NOT SANITIZED!

 = Examples =

 <code title="Child nodes">
 <f:format.raw>{string}</f:format.raw>
 </code>
 <output>
 (Content of {string} without any conversion/escaping)
 </output>

 <code title="Value attribute">
 <f:format.raw value="{string}" />
 </code>
 <output>
 (Content of {string} without any conversion/escaping)
 </output>

 <code title="Inline notation">
 {string -> f:format.raw()}
 </code>
 <output>
 (Content of {string} without any conversion/escaping)
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[The value to output]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="groupedFor"><xsd:annotation><xsd:documentation><![CDATA[Grouped loop view helper.
 Loops through the specified values.

 The groupBy argument also supports property paths.

 = Examples =

 <code title="Simple">
 <f:groupedFor each="{0: {name: 'apple', color: 'green'}, 1: {name: 'cherry', color: 'red'}, 2: {name: 'banana', color: 'yellow'}, 3: {name: 'strawberry', color: 'red'}}" as="fruitsOfThisColor" groupBy="color">
   <f:for each="{fruitsOfThisColor}" as="fruit">
     {fruit.name}
   </f:for>
 </f:groupedFor>
 </code>
 <output>
 apple cherry strawberry banana
 </output>

 <code title="Two dimensional list">
 <ul>
   <f:groupedFor each="{0: {name: 'apple', color: 'green'}, 1: {name: 'cherry', color: 'red'}, 2: {name: 'banana', color: 'yellow'}, 3: {name: 'strawberry', color: 'red'}}" as="fruitsOfThisColor" groupBy="color" groupKey="color">
     <li>
       {color} fruits:
       <ul>
         <f:for each="{fruitsOfThisColor}" as="fruit" key="label">
           <li>{label}: {fruit.name}</li>
         </f:for>
       </ul>
     </li>
   </f:groupedFor>
 </ul>
 </code>
 <output>
 <ul>
   <li>green fruits
     <ul>
       <li>0: apple</li>
     </ul>
   </li>
   <li>red fruits
     <ul>
       <li>1: cherry</li>
     </ul>
     <ul>
       <li>3: strawberry</li>
     </ul>
   </li>
   <li>yellow fruits
     <ul>
       <li>2: banana</li>
     </ul>
   </li>
 </ul>
 </output>

 Note: Using this view helper can be a sign of weak architecture. If you end up using it extensively
 you might want to fine-tune your "view model" (the data you assign to the view).]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="each" use="required"><xsd:annotation><xsd:documentation><![CDATA[The array or \SplObjectStorage to iterated over]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="as" use="required"><xsd:annotation><xsd:documentation><![CDATA[The name of the iteration variable]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="groupBy" use="required"><xsd:annotation><xsd:documentation><![CDATA[Group by this property]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="groupKey"><xsd:annotation><xsd:documentation><![CDATA[The name of the variable to store the current group]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="if"><xsd:annotation><xsd:documentation><![CDATA[This view helper implements an if/else condition.

 **Conditions:**

 As a condition is a boolean value, you can just use a boolean argument.
 Alternatively, you can write a boolean expression there.
 Boolean expressions have the following form:
 XX Comparator YY
 Comparator is one of: ==, !=, <, <=, >, >= and %
 The % operator converts the result of the % operation to boolean.

 XX and YY can be one of:
 - number
 - Object Accessor
 - Array
 - a ViewHelper
 Note: Strings at XX/YY are NOT allowed, however, for the time being,
 a string comparison can be achieved with comparing arrays (see example
 below).
 ::

   <f:if condition="{rank} > 100">
     Will be shown if rank is > 100
   </f:if>
   <f:if condition="{rank} % 2">
     Will be shown if rank % 2 != 0.
   </f:if>
   <f:if condition="{rank} == {k:bar()}">
     Checks if rank is equal to the result of the ViewHelper "k:bar"
   </f:if>
   <f:if condition="{0: foo.bar} == {0: 'stringToCompare'}">
     Will result true if {foo.bar}'s represented value equals 'stringToCompare'.
   </f:if>

 = Examples =

 <code title="Basic usage">
 <f:if condition="somecondition">
   This is being shown in case the condition matches
 </f:if>
 </code>
 <output>
 Everything inside the <f:if> tag is being displayed if the condition evaluates to TRUE.
 </output>

 <code title="If / then / else">
 <f:if condition="somecondition">
   <f:then>
     This is being shown in case the condition matches.
   </f:then>
   <f:else>
     This is being displayed in case the condition evaluates to FALSE.
   </f:else>
 </f:if>
 </code>
 <output>
 Everything inside the "then" tag is displayed if the condition evaluates to TRUE.
 Otherwise, everything inside the "else"-tag is displayed.
 </output>

 <code title="inline notation">
 {f:if(condition: someCondition, then: 'condition is met', else: 'condition is not met')}
 </code>
 <output>
 The value of the "then" attribute is displayed if the condition evaluates to TRUE.
 Otherwise, everything the value of the "else"-attribute is displayed.
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="then"><xsd:annotation><xsd:documentation><![CDATA[Value to be returned if the condition if met.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="else"><xsd:annotation><xsd:documentation><![CDATA[Value to be returned if the condition if not met.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="condition"><xsd:annotation><xsd:documentation><![CDATA[Condition expression conforming to Fluid boolean rules]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="layout"><xsd:annotation><xsd:documentation><![CDATA[With this tag, you can select a layout to be used for the current template.

 = Examples =

 <code>
 <f:layout name="main" />
 </code>
 <output>
 (no output)
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Name of layout to use. If none given, "Default" is used.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="or"><xsd:annotation><xsd:documentation><![CDATA[If content is empty use alternative text]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="content"><xsd:annotation><xsd:documentation><![CDATA[Content to check if empty]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="alternative"><xsd:annotation><xsd:documentation><![CDATA[Alternative if content is empty]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="arguments"><xsd:annotation><xsd:documentation><![CDATA[Arguments to be replaced in the resulting string, using sprintf]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="render"><xsd:annotation><xsd:documentation><![CDATA[A ViewHelper to render a section, a partial, a specified section in a partial
 or a delegate ParsedTemplateInterface implementation.

 = Examples =

 <code title="Rendering partials">
 <f:render partial="SomePartial" arguments="{foo: someVariable}" />
 </code>
 <output>
 the content of the partial "SomePartial". The content of the variable {someVariable} will be available in the partial as {foo}
 </output>

 <code title="Rendering sections">
 <f:section name="someSection">This is a section. {foo}</f:section>
 <f:render section="someSection" arguments="{foo: someVariable}" />
 </code>
 <output>
 the content of the section "someSection". The content of the variable {someVariable} will be available in the partial as {foo}
 </output>

 <code title="Rendering recursive sections">
 <f:section name="mySection">
  <ul>
    <f:for each="{myMenu}" as="menuItem">
      <li>
        {menuItem.text}
        <f:if condition="{menuItem.subItems}">
          <f:render section="mySection" arguments="{myMenu: menuItem.subItems}" />
        </f:if>
      </li>
    </f:for>
  </ul>
 </f:section>
 <f:render section="mySection" arguments="{myMenu: menu}" />
 </code>
 <output>
 <ul>
   <li>menu1
     <ul>
       <li>menu1a</li>
       <li>menu1b</li>
     </ul>
   </li>
 [...]
 (depending on the value of {menu})
 </output>


 <code title="Passing all variables to a partial">
 <f:render partial="somePartial" arguments="{_all}" />
 </code>
 <output>
 the content of the partial "somePartial".
 Using the reserved keyword "_all", all available variables will be passed along to the partial
 </output>


 <code title="Rendering via a delegate ParsedTemplateInterface implementation w/ custom arguments">
 <f:render delegate="My\Special\ParsedTemplateImplementation" arguments="{_all}" />
 </code>
 <output>
 Whichever output was generated by calling My\Special\ParsedTemplateImplementation->render()
 with cloned RenderingContextInterface $renderingContext as only argument and content of arguments
 assigned in VariableProvider of cloned context. Supports all other input arguments including
 recursive rendering, contentAs argument, default value etc.
 Note that while ParsedTemplateInterface supports returning a Layout name, this Layout will not
 be respected when rendering using this method. Only the `render()` method will be called!
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="section"><xsd:annotation><xsd:documentation><![CDATA[Section to render - combine with partial to render section in partial]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="partial"><xsd:annotation><xsd:documentation><![CDATA[Partial to render, with or without section]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="delegate"><xsd:annotation><xsd:documentation><![CDATA[Optional PHP class name of a permanent, included-in-app ParsedTemplateInterface implementation to override partial/section]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="arguments"><xsd:annotation><xsd:documentation><![CDATA[Array of variables to be transferred. Use {_all} for all variables]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="optional"><xsd:annotation><xsd:documentation><![CDATA[If TRUE, considers the *section* optional. Partial never is.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="default"><xsd:annotation><xsd:documentation><![CDATA[Value (usually string) to be displayed if the section or partial does not exist]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="contentAs"><xsd:annotation><xsd:documentation><![CDATA[If used, renders the child content and adds it as a template variable with this name for use in the partial/section]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="section"><xsd:annotation><xsd:documentation><![CDATA[A ViewHelper to declare sections in templates for later use with e.g. the RenderViewHelper.

 = Examples =

 <code title="Rendering sections">
 <f:section name="someSection">This is a section. {foo}</f:section>
 <f:render section="someSection" arguments="{foo: someVariable}" />
 </code>
 <output>
 the content of the section "someSection". The content of the variable {someVariable} will be available in the partial as {foo}
 </output>

 <code title="Rendering recursive sections">
 <f:section name="mySection">
  <ul>
    <f:for each="{myMenu}" as="menuItem">
      <li>
        {menuItem.text}
        <f:if condition="{menuItem.subItems}">
          <f:render section="mySection" arguments="{myMenu: menuItem.subItems}" />
        </f:if>
      </li>
    </f:for>
  </ul>
 </f:section>
 <f:render section="mySection" arguments="{myMenu: menu}" />
 </code>
 <output>
 <ul>
   <li>menu1
     <ul>
       <li>menu1a</li>
       <li>menu1b</li>
     </ul>
   </li>
 [...]
 (depending on the value of {menu})
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="name" use="required"><xsd:annotation><xsd:documentation><![CDATA[Name of the section]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="spaceless"><xsd:annotation><xsd:documentation><![CDATA[Space Removal ViewHelper

 Removes redundant spaces between HTML tags while
 preserving the whitespace that may be inside HTML
 tags. Trims the final result before output.

 Heavily inspired by Twig's corresponding node type.

 <code title="Usage of f:spaceless">
 <f:spaceless>
 <div>
     <div>
         <div>text

 text</div>
     </div>
 </div>
 </code>
 <output>
 <div><div><div>text

 text</div></div></div>
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="switch"><xsd:annotation><xsd:documentation><![CDATA[Switch view helper which can be used to render content depending on a value or expression.
 Implements what a basic switch()-PHP-method does.

 An optional default case can be specified which is rendered if none of the "f:case" conditions matches.

 = Examples =

 <code title="Simple Switch statement">
 <f:switch expression="{person.gender}">
   <f:case value="male">Mr.</f:case>
   <f:case value="female">Mrs.</f:case>
   <f:defaultCase>Mr. / Mrs.</f:defaultCase>
 </f:switch>
 </code>
 <output>
 "Mr.", "Mrs." or "Mr. / Mrs." (depending on the value of {person.gender})
 </output>

 Note: Using this view helper can be a sign of weak architecture. If you end up using it extensively
 you might want to consider restructuring your controllers/actions and/or use partials and sections.
 E.g. the above example could be achieved with <f:render partial="title.{person.gender}" /> and the partials
 "title.male.html", "title.female.html", ...
 Depending on the scenario this can be easier to extend and possibly contains less duplication.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="expression" use="required"><xsd:annotation><xsd:documentation><![CDATA[Expression to switch]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="then"><xsd:annotation><xsd:documentation><![CDATA["THEN" -> only has an effect inside of "IF". See If-ViewHelper for documentation.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="variable"><xsd:annotation><xsd:documentation><![CDATA[Variable assigning ViewHelper

 Assigns one template variable which will exist also
 after the ViewHelper is done rendering, i.e. adds
 template variables.

 If you require a variable assignment which does not
 exist in the template after a piece of Fluid code
 is rendered, consider using `f:alias` instead.

 Usages:

     {f:variable(name: 'myvariable', value: 'some value')}
     <f:variable name="myvariable">some value</f:variable>
     {oldvariable -> f:format.htmlspecialchars() -> f:variable(name: 'newvariable')}
     <f:variable name="myvariable"><f:format.htmlspecialchars>{oldvariable}</f:format.htmlspecialchars></f:variable>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[Value to assign. If not in arguments then taken from tag content]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name" use="required"><xsd:annotation><xsd:documentation><![CDATA[Name of variable to create]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="base"><xsd:annotation><xsd:documentation><![CDATA[View helper which creates a <base href="..."></base> tag. The Base URI is taken from the
 current request.
 In TYPO3 Flow, you should always include this ViewHelper to make the links work.

 = Examples =

 <code title="Example">
 <f:base />
 </code>
 <output>
 <base href="http://yourdomain.tld/" />
 (depending on your domain)
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="be.buttons.csh"><xsd:annotation><xsd:documentation><![CDATA[View helper which returns CSH (context sensitive help) button with icon
 Note: The CSH button will only work, if the current BE user has the "Context Sensitive Help mode"
 set to something else than "Display no help information" in the Users settings
 Note: This view helper is experimental!

 = Examples =

 <code title="Default">
 <f:be.buttons.csh />
 </code>
 <output>
 CSH button as known from the TYPO3 backend.
 </output>

 <code title="Full configuration">
 <f:be.buttons.csh table="xMOD_csh_corebe" field="someCshKey" />
 </code>
 <output>
 CSH button as known from the TYPO3 backend with some custom settings.
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="table"><xsd:annotation><xsd:documentation><![CDATA[Table name ('_MOD_'+module name). If not set, the current module name will be used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="field"><xsd:annotation><xsd:documentation><![CDATA[Field name (CSH locallang main key)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="wrap"><xsd:annotation><xsd:documentation><![CDATA[Markup to wrap around the CSH, split by "|"]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="be.buttons.shortcut"><xsd:annotation><xsd:documentation><![CDATA[View helper which returns shortcut button with icon
 Note: This view helper is experimental!

 = Examples =

 <code title="Default">
 <f:be.buttons.shortcut />
 </code>
 <output>
 Shortcut button as known from the TYPO3 backend.
 By default the current page id, module name and all module arguments will be stored
 </output>

 <code title="Explicitly set parameters to be stored in the shortcut">
 <f:be.buttons.shortcut getVars="{0: 'M', 1: 'myOwnPrefix'}" setVars="{0: 'function'}" />
 </code>
 <output>
 Shortcut button as known from the TYPO3 backend.
 This time only the specified GET parameters and SET[]-settings will be stored.
 Note:
 Normally you won't need to set getVars & setVars parameters in Extbase modules
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="getVars"><xsd:annotation><xsd:documentation><![CDATA[List of GET variables to store. By default the current id, module and all module arguments will be stored]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="setVars"><xsd:annotation><xsd:documentation><![CDATA[List of SET[] variables to store. See DocumentTemplate::makeShortcutIcon(). Normally won't be used by Extbase modules]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="be.container"><xsd:annotation><xsd:documentation><![CDATA[View helper which allows you to create extbase based modules in the style of TYPO3 default modules.

 = Examples =

 <code title="Simple">
 <f:be.container>your module content</f:be.container>
 </code>
 <output>
 "your module content" wrapped with proper head & body tags.
 Default backend CSS styles and JavaScript will be included
 </output>

 <code title="All options">
 <f:be.container pageTitle="foo" enableClickMenu="false" loadExtJs="true" loadExtJsTheme="false" enableExtJsDebug="true" loadJQuery="true" includeCssFiles="{0: '{f:uri.resource(path:\'Css/Styles.css\')}'}" includeJsFiles="{0: '{f:uri.resource(path:\'JavaScript/Library1.js\')}', 1: '{f:uri.resource(path:\'JavaScript/Library2.js\')}'}" addJsInlineLabels="{0: 'label1', 1: 'label2'}">your module content</f:be.container>
 </code>
 <output>
 "your module content" wrapped with proper head & body tags.
 Custom CSS file EXT:your_extension/Resources/Public/Css/styles.css and
 JavaScript files EXT:your_extension/Resources/Public/JavaScript/Library1.js and EXT:your_extension/Resources/Public/JavaScript/Library2.js
 will be loaded, plus ExtJS and jQuery and some inline labels for usage in JS code.
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="pageTitle"><xsd:annotation><xsd:documentation><![CDATA[Title tag of the module. Not required by default, as BE modules are shown in a frame]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="enableClickMenu"><xsd:annotation><xsd:documentation><![CDATA[If TRUE, loads clickmenu.js required by BE context menus. Defaults to TRUE. This option will be removed in TYPO3 v9]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="loadExtJs"><xsd:annotation><xsd:documentation><![CDATA[Specifies whether to load ExtJS library. Defaults to FALSE. This option will be removed in TYPO3 v9]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="loadExtJsTheme"><xsd:annotation><xsd:documentation><![CDATA[Whether to load ExtJS "grey" theme. Defaults to FALSE. This option will be removed in TYPO3 v9]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="enableExtJsDebug"><xsd:annotation><xsd:documentation><![CDATA[If TRUE, debug version of ExtJS is loaded. Use this for development only. This option will be removed in TYPO3 v9]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="loadJQuery"><xsd:annotation><xsd:documentation><![CDATA[Whether to load jQuery library. Defaults to FALSE. This option will be removed in TYPO3 v9]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="includeCssFiles"><xsd:annotation><xsd:documentation><![CDATA[List of custom CSS file to be loaded]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="includeJsFiles"><xsd:annotation><xsd:documentation><![CDATA[List of custom JavaScript file to be loaded]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addJsInlineLabels"><xsd:annotation><xsd:documentation><![CDATA[Custom labels to add to JavaScript inline labels]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="includeRequireJsModules"><xsd:annotation><xsd:documentation><![CDATA[List of RequireJS modules to be loaded]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="jQueryNamespace"><xsd:annotation><xsd:documentation><![CDATA[Store the jQuery object in a specific namespace. This option will be removed in TYPO3 v9]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="be.infobox"><xsd:annotation><xsd:documentation><![CDATA[View helper for rendering a styled content infobox markup.

 = States =

 The Infobox provides different context sensitive states that
 can be used to provide an additional visual feedback to the
 to the user to underline the meaning of the information.

 Possible values are in range from -2 to 2. Please choose a
 meaningful value from the following list.

 -2: Notices (Default)
 -1: Information
 0: Positive feedback
 1: Warnings
 2: Error

 = Examples =

 <code title="Simple">
 <f:be.infobox title="Message title">your box content</f:be.infobox>
 </code>

 <code title="All options">
 <f:be.infobox title="Message title" message="your box content" state="-2" iconName="check" disableIcon="true" />
 </code>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="message"><xsd:annotation><xsd:documentation><![CDATA[The message of the info box, if NULL tag content is used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[The title of the info box]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="state"><xsd:annotation><xsd:documentation><![CDATA[The state of the box, InfoboxViewHelper::STATE_*]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="iconName"><xsd:annotation><xsd:documentation><![CDATA[The icon name from font awesome, NULL sets default icon]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="disableIcon"><xsd:annotation><xsd:documentation><![CDATA[If set to TRUE, the icon is not rendered.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="be.menus.actionMenuItemGroup"><xsd:annotation><xsd:documentation><![CDATA[View helper which groups options of an option tag.

 = Example =

 	<f:be.menus.actionMenu>
		<f:be.menus.actionMenuItem label="Default: Welcome" controller="Default" action="index" />
		<f:be.menus.actionMenuItem label="Community: get in touch" controller="Community" action="index" />

		<f:be.menus.actionMenuItemGroup label="Information">
			<f:be.menus.actionMenuItem label="PHP Information" controller="Information" action="listPhpInfo" />
			<f:be.menus.actionMenuItem label="Documentation" controller="Information" action="documentation" />
			<f:be.menus.actionMenuItem label="Hooks" controller="Information" action="hooks" />
			<f:be.menus.actionMenuItem label="Signals" controller="Information" action="signals" />
			<f:be.menus.actionMenuItem label="XClasses" controller="Information" action="xclass" />
		</f:be.menus.actionMenuItemGroup>
	</f:be.menus.actionMenu>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="defaultController"><xsd:annotation><xsd:documentation><![CDATA[defaultController]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="label"><xsd:annotation><xsd:documentation><![CDATA[label]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="be.menus.actionMenuItem"><xsd:annotation><xsd:documentation><![CDATA[View helper which returns an option tag.
 This view helper only works in conjunction with \TYPO3\CMS\Fluid\ViewHelpers\Be\Menus\ActionMenuViewHelper
 Note: This view helper is experimental!

 = Examples =

 <code title="Simple">
 <f:be.menus.actionMenu>
 <f:be.menus.actionMenuItem label="Overview" controller="Blog" action="index" />
 <f:be.menus.actionMenuItem label="Create new Blog" controller="Blog" action="new" />
 <f:be.menus.actionMenuItem label="List Posts" controller="Post" action="index" arguments="{blog: blog}" />
 </f:be.menus.actionMenu>
 </code>
 <output>
 Selectbox with the options "Overview", "Create new Blog" and "List Posts"
 </output>

 <code title="Localized">
 <f:be.menus.actionMenu>
 <f:be.menus.actionMenuItem label="{f:translate(key='overview')}" controller="Blog" action="index" />
 <f:be.menus.actionMenuItem label="{f:translate(key='create_blog')}" controller="Blog" action="new" />
 </f:be.menus.actionMenu>
 </code>
 <output>
 localized selectbox
 <output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="label" use="required"><xsd:annotation><xsd:documentation><![CDATA[label of the option tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="controller" use="required"><xsd:annotation><xsd:documentation><![CDATA[controller to be associated with this ActionMenuItem]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="action" use="required"><xsd:annotation><xsd:documentation><![CDATA[the action to be associated with this ActionMenuItem]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="arguments"><xsd:annotation><xsd:documentation><![CDATA[additional controller arguments to be passed to the action when this ActionMenuItem is selected]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="be.menus.actionMenu"><xsd:annotation><xsd:documentation><![CDATA[View helper which returns a select box, that can be used to switch between
 multiple actions and controllers and looks similar to TYPO3s funcMenu.
 Note: This view helper is experimental!

 = Examples =

 <code title="Simple">
 <f:be.menus.actionMenu>
 <f:be.menus.actionMenuItem label="Overview" controller="Blog" action="index" />
 <f:be.menus.actionMenuItem label="Create new Blog" controller="Blog" action="new" />
 <f:be.menus.actionMenuItem label="List Posts" controller="Post" action="index" arguments="{blog: blog}" />
 </f:be.menus.actionMenu>
 </code>
 <output>
 Selectbox with the options "Overview", "Create new Blog" and "List Posts"
 </output>

 <code title="Localized">
 <f:be.menus.actionMenu>
 <f:be.menus.actionMenuItem label="{f:translate(key:'overview')}" controller="Blog" action="index" />
 <f:be.menus.actionMenuItem label="{f:translate(key:'create_blog')}" controller="Blog" action="new" />
 </f:be.menus.actionMenu>
 </code>
 <output>
 localized selectbox
 <output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="defaultController"><xsd:annotation><xsd:documentation><![CDATA[defaultController]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="be.pageInfo"><xsd:annotation><xsd:documentation><![CDATA[View helper which return page info icon as known from TYPO3 backend modules
 Note: This view helper is experimental!

 = Examples =

 <code>
 <f:be.pageInfo />
 </code>
 <output>
 Page info icon with context menu
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="be.pagePath"><xsd:annotation><xsd:documentation><![CDATA[View helper which returns the current page path as known from TYPO3 backend modules
 Note: This view helper is experimental!

 = Examples =

 <code>
 <f:be.pagePath />
 </code>
 <output>
 Current page path, prefixed with "Path:" and wrapped in a span with the class "typo3-docheader-pagePath"
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="be.pageRenderer"><xsd:annotation><xsd:documentation><![CDATA[View helper which allows you to create extbase based modules in the style of TYPO3 default modules.

 = Examples =

 <code title="All options">
 <f:be.pageRenderer pageTitle="foo" loadExtJs="true" loadExtJsTheme="false" extJsAdapter="jQuery" enableExtJsDebug="true" loadJQuery="true" includeCssFiles="0: '{f:uri.resource(path:\'Css/Styles.css\')}'" includeJsFiles="0: '{f:uri.resource(path:\'JavaScript/Library1.js\')}', 1: '{f:uri.resource(path:\'JavaScript/Library2.js\')}'" addJsInlineLabels="{0: 'label1', 1: 'label2'}" />
 </code>
 <output>

 Custom CSS file EXT:your_extension/Resources/Public/Css/styles.css and
 JavaScript files EXT:your_extension/Resources/Public/JavaScript/Library1.js and EXT:your_extension/Resources/Public/JavaScript/Library2.js
 will be loaded, plus ExtJS and jQuery and some inline labels for usage in JS code.
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="pageTitle"><xsd:annotation><xsd:documentation><![CDATA[title tag of the module. Not required by default, as BE modules are shown in a frame]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="loadExtJs"><xsd:annotation><xsd:documentation><![CDATA[specifies whether to load ExtJS library. Defaults to FALSE. This option will be removed in TYPO3 v9]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="loadExtJsTheme"><xsd:annotation><xsd:documentation><![CDATA[whether to load ExtJS "grey" theme. Defaults to FALSE. This option will be removed in TYPO3 v9]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="enableExtJsDebug"><xsd:annotation><xsd:documentation><![CDATA[if TRUE, debug version of ExtJS is loaded. Use this for development only. This option will be removed in TYPO3 v9]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="loadJQuery"><xsd:annotation><xsd:documentation><![CDATA[whether to load jQuery library. Defaults to FALSE. This option will be removed in TYPO3 v9]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="includeCssFiles"><xsd:annotation><xsd:documentation><![CDATA[List of custom CSS file to be loaded]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="includeJsFiles"><xsd:annotation><xsd:documentation><![CDATA[List of custom JavaScript file to be loaded]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addJsInlineLabels"><xsd:annotation><xsd:documentation><![CDATA[Custom labels to add to JavaScript inline labels]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="includeRequireJsModules"><xsd:annotation><xsd:documentation><![CDATA[List of RequireJS modules to be loaded]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="jQueryNamespace"><xsd:annotation><xsd:documentation><![CDATA[Store the jQuery object in a specific namespace. This option will be removed in TYPO3 v9]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addInlineSettings"><xsd:annotation><xsd:documentation><![CDATA[Adds Javascript Inline Setting]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="be.security.ifAuthenticated"><xsd:annotation><xsd:documentation><![CDATA[This view helper implements an ifAuthenticated/else condition for BE users/groups.

 = Examples =

 <code title="Basic usage">
 <f:be.security.ifAuthenticated>
 This is being shown whenever a BE user is logged in
 </f:be.security.ifAuthenticated>
 </code>
 <output>
 Everything inside the <f:be.ifAuthenticated> tag is being displayed if you are authenticated with any BE user account.
 </output>

 <code title="IfAuthenticated / then / else">
 <f:be.security.ifAuthenticated>
 <f:then>
 This is being shown in case you have access.
 </f:then>
 <f:else>
 This is being displayed in case you do not have access.
 </f:else>
 </f:be.security.ifAuthenticated>
 </code>
 <output>
 Everything inside the "then" tag is displayed if you have access.
 Otherwise, everything inside the "else"-tag is displayed.
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="then"><xsd:annotation><xsd:documentation><![CDATA[Value to be returned if the condition if met.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="else"><xsd:annotation><xsd:documentation><![CDATA[Value to be returned if the condition if not met.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="condition"><xsd:annotation><xsd:documentation><![CDATA[Condition expression conforming to Fluid boolean rules]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="be.security.ifHasRole"><xsd:annotation><xsd:documentation><![CDATA[This view helper implements an ifHasRole/else condition for BE users/groups.

 = Examples =

 <code title="Basic usage">
 <f:be.security.ifHasRole role="Administrator">
 This is being shown in case the current BE user belongs to a BE usergroup (aka role) titled "Administrator" (case sensitive)
 </f:be.security.ifHasRole>
 </code>
 <output>
 Everything inside the <f:ifHasRole> tag is being displayed if the logged in BE user belongs to the specified role.
 </output>

 <code title="Using the usergroup uid as role identifier">
 <f:be.security.ifHasRole role="1">
 This is being shown in case the current BE user belongs to a BE usergroup (aka role) with the uid "1"
 </f:be.security.ifHasRole>
 </code>
 <output>
 Everything inside the <f:ifHasRole> tag is being displayed if the logged in BE user belongs to the specified role.
 </output>

 <code title="IfRole / then / else">
 <f:be.security.ifHasRole role="Administrator">
 <f:then>
 This is being shown in case you have the role.
 </f:then>
 <f:else>
 This is being displayed in case you do not have the role.
 </f:else>
 </f:be.security.ifHasRole>
 </code>
 <output>
 Everything inside the "then" tag is displayed if the logged in BE user belongs to the specified role.
 Otherwise, everything inside the "else"-tag is displayed.
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="role"><xsd:annotation><xsd:documentation><![CDATA[The usergroup (either the usergroup uid or its title).]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="be.tableList"><xsd:annotation><xsd:documentation><![CDATA[View helper which renders a record list as known from the TYPO3 list module
 Note: This feature is experimental!

 = Examples =

 <code title="Minimal">
 <f:be.tableList tableName="fe_users" />
 </code>
 <output>
 List of all "Website user" records stored in the configured storage PID.
 Records will be editable, if the current BE user has got edit rights for the table "fe_users".
 Only the title column (username) will be shown.
 Context menu is active.
 </output>

 <code title="Full">
 <f:be.tableList tableName="fe_users" fieldList="{0: 'name', 1: 'email'}" storagePid="1" levels="2" filter='foo' recordsPerPage="10" sortField="name" sortDescending="true" readOnly="true" enableClickMenu="false" clickTitleMode="info" />
 </code>
 <output>
 List of "Website user" records with a text property of "foo" stored on PID 1 and two levels down.
 Clicking on a username will open the TYPO3 info popup for the respective record
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="tableName" use="required"><xsd:annotation><xsd:documentation><![CDATA[name of the database table]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="fieldList"><xsd:annotation><xsd:documentation><![CDATA[list of fields to be displayed. If empty, only the title column (configured in $TCA[$tableName]['ctrl']['title']) is shown]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="storagePid"><xsd:annotation><xsd:documentation><![CDATA[by default, records are fetched from the storage PID configured in persistence.storagePid. With this argument, the storage PID can be overwritten]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="levels"><xsd:annotation><xsd:documentation><![CDATA[corresponds to the level selector of the TYPO3 list module. By default only records from the current storagePid are fetched]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="filter"><xsd:annotation><xsd:documentation><![CDATA[corresponds to the "Search String" textbox of the TYPO3 list module. If not empty, only records matching the string will be fetched]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="recordsPerPage"><xsd:annotation><xsd:documentation><![CDATA[amount of records to be displayed at once. Defaults to $TCA[$tableName]['interface']['maxSingleDBListItems'] or (if that's not set) to 100]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="sortField"><xsd:annotation><xsd:documentation><![CDATA[table field to sort the results by]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="sortDescending"><xsd:annotation><xsd:documentation><![CDATA[if TRUE records will be sorted in descending order]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="readOnly"><xsd:annotation><xsd:documentation><![CDATA[if TRUE, the edit icons won't be shown. Otherwise edit icons will be shown, if the current BE user has edit rights for the specified table!]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="enableClickMenu"><xsd:annotation><xsd:documentation><![CDATA[enables context menu]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="clickTitleMode"><xsd:annotation><xsd:documentation><![CDATA[one of "edit", "show" (only pages, tt_content), "info]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="be.widget.paginate"><xsd:annotation><xsd:documentation><![CDATA[This ViewHelper renders a Pagination of objects for the TYPO3 Backend.

 = Examples =

 <code title="required arguments">
 <f:be.widget.paginate objects="{blogs}" as="paginatedBlogs">
 use {paginatedBlogs} as you used {blogs} before, most certainly inside
 a <f:for> loop.
 </f:be.widget.paginate>
 </code>

 <code title="full configuration">
 <f:be.widget.paginate objects="{blogs}" as="paginatedBlogs" configuration="{itemsPerPage: 5, insertAbove: 1, insertBelow: 0, recordsLabel: 'MyRecords'}">
 use {paginatedBlogs} as you used {blogs} before, most certainly inside
 a <f:for> loop.
 </f:be.widget.paginate>
 The recordsLabel can be used to replace the text in "Records 1 - 99" with a label of your own choice
 </code>

 = Performance characteristics =

 In the above examples, it looks like {blogs} contains all Blog objects, thus
 you might wonder if all objects were fetched from the database.
 However, the blogs are NOT fetched from the database until you actually use them,
 so the paginate ViewHelper will adjust the query sent to the database and receive
 only the small subset of objects.
 So, there is no negative performance overhead in using the Be Paginate Widget.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="objects" use="required"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="as" use="required"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="configuration"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="customWidgetId"><xsd:annotation><xsd:documentation><![CDATA[extend the widget identifier with a custom widget id]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="cObject"><xsd:annotation><xsd:documentation><![CDATA[This ViewHelper renders CObjects from the global TypoScript configuration.
 NOTE: You have to ensure proper escaping (htmlspecialchars/intval/etc.) on your own!

 = Examples =

 <code title="Render lib object">
 <f:cObject typoscriptObjectPath="lib.someLibObject" />
 </code>
 <output>
 rendered lib.someLibObject
 </output>

 <code title="Specify cObject data & current value">
 <f:cObject typoscriptObjectPath="lib.customHeader" data="{article}" currentValueKey="title" />
 </code>
 <output>
 rendered lib.customHeader. data and current value will be available in TypoScript
 </output>

 <code title="inline notation">
 {article -> f:cObject(typoscriptObjectPath: 'lib.customHeader')}
 </code>
 <output>
 rendered lib.customHeader. data will be available in TypoScript
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="typoscriptObjectPath" use="required"><xsd:annotation><xsd:documentation><![CDATA[the TypoScript setup path of the TypoScript object to render]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[the data to be used for rendering the cObject. Can be an object, array or string. If this argument is not set, child nodes will be used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="currentValueKey"><xsd:annotation><xsd:documentation><![CDATA[currentValueKey]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="table"><xsd:annotation><xsd:documentation><![CDATA[the table name associated with "data" argument. Typically tt_content or one of your custom tables. This argument should be set if rendering a FILES cObject where file references are used, or if the data argument is a database record.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="case"><xsd:annotation><xsd:documentation><![CDATA[Case view helper that is only usable within the SwitchViewHelper.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[The switch value. If it matches, the child will be rendered.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="default"><xsd:annotation><xsd:documentation><![CDATA[If this is set, this child will be rendered, if none else matches.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="debug"><xsd:annotation><xsd:documentation><![CDATA[This ViewHelper generates a HTML dump of the tagged variable.

 = Examples =

 <code title="Simple">
 <f:debug>{testVariables.array}</f:debug>
 </code>
 <output>
 foobarbazfoo
 </output>

 <code title="All Features">
 <f:debug title="My Title" maxDepth="5" blacklistedClassNames="{0:'Tx_BlogExample_Domain_Model_Administrator'}" plainText="true" ansiColors="false" inline="true" blacklistedPropertyNames="{0:'posts'}">{blogs}</f:debug>
 </code>
 <output>
 [A HTML view of the var_dump]
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[optional custom title for the debug output]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="maxDepth"><xsd:annotation><xsd:documentation><![CDATA[Sets the max recursion depth of the dump (defaults to 8). De- or increase the number according to your needs and memory limit.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="plainText"><xsd:annotation><xsd:documentation><![CDATA[If TRUE, the dump is in plain text, if FALSE the debug output is in HTML format.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="ansiColors"><xsd:annotation><xsd:documentation><![CDATA[If TRUE, ANSI color codes is added to the plaintext output, if FALSE (default) the plaintext debug output not colored.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="inline"><xsd:annotation><xsd:documentation><![CDATA[if TRUE, the dump is rendered at the position of the <f:debug> tag. If FALSE (default), the dump is displayed at the top of the page.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="blacklistedClassNames"><xsd:annotation><xsd:documentation><![CDATA[An array of class names (RegEx) to be filtered. Default is an array of some common class names.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="blacklistedPropertyNames"><xsd:annotation><xsd:documentation><![CDATA[An array of property names and/or array keys (RegEx) to be filtered. Default is an array of some common property names.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="debug.render"><xsd:annotation><xsd:documentation><![CDATA[Debuggable version of f:render - performs the same
 rendering operation but wraps the output with HTML
 that can be inspected with the admin panel in FE.

 Replaces `f:render` when the admin panel decides
 (see ViewHelperResolver class). Also possible to use
 explicitly by using `f:debug.render` instead of the
 normal `f:render` statement.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="section"><xsd:annotation><xsd:documentation><![CDATA[Section to render - combine with partial to render section in partial]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="partial"><xsd:annotation><xsd:documentation><![CDATA[Partial to render, with or without section]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="arguments"><xsd:annotation><xsd:documentation><![CDATA[Array of variables to be transferred. Use {_all} for all variables]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="optional"><xsd:annotation><xsd:documentation><![CDATA[If TRUE, considers the *section* optional. Partial never is.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="default"><xsd:annotation><xsd:documentation><![CDATA[Value (usually string) to be displayed if the section or partial does not exist]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="contentAs"><xsd:annotation><xsd:documentation><![CDATA[If used, renders the child content and adds it as a template variable with this name for use in the partial/section]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="flashMessages"><xsd:annotation><xsd:documentation><![CDATA[View helper which renders the flash messages (if there are any) as an unsorted list.

 In case you need custom Flash Message HTML output, please write your own ViewHelper for the moment.


 = Examples =

 <code title="Simple">
 <f:flashMessages />
 </code>
 <output>
 A list of flash messages.
 </output>

 <code title="TYPO3 core style">
 <f:flashMessages />
 </code>
 <output>
 <div class="typo3-messages">
  <div class="alert alert-info">
      <div class="media">
          <div class="media-left">
              <span class="fa-stack fa-lg">
                  <i class="fa fa-circle fa-stack-2x"></i>
                  <i class="fa fa-info fa-stack-1x"></i>
              </span>
          </div>
          <div class="media-body">
              <h4 class="alert-title">Info - Title for Info message</h4>
              <p class="alert-message">Message text here.</p>
          </div>
      </div>
  </div>
 </div>
 </output>
 <code title="Output flash messages as a description list">
 <f:flashMessages as="flashMessages">
 	<dl class="messages">
 	<f:for each="{flashMessages}" as="flashMessage">
 		<dt>{flashMessage.code}</dt>
 		<dd>{flashMessage.message}</dd>
 	</f:for>
 	</dl>
 </f:flashMessages>
 </code>
 <output>
 <dl class="messages">
 	<dt>1013</dt>
 	<dd>Some Warning Message.</dd>
 </dl>
 </output>

 <code title="Using a specific queue">
 <f:flashMessages queueIdentifier="myQueue" />
 </code>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="queueIdentifier"><xsd:annotation><xsd:documentation><![CDATA[Flash-message queue to use]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="as"><xsd:annotation><xsd:documentation><![CDATA[The name of the current flashMessage variable for rendering inside]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form"><xsd:annotation><xsd:documentation><![CDATA[Form view helper. Generates a <form> Tag.

 = Basic usage =

 Use <f:form> to output an HTML <form> tag which is targeted at the specified action, in the current controller and package.
 It will submit the form data via a POST request. If you want to change this, use method="get" as an argument.
 <code title="Example">
 <f:form action="...">...</f:form>
 </code>

 = A complex form with a specified encoding type =

 <code title="Form with enctype set">
 <f:form action=".." controller="..." package="..." enctype="multipart/form-data">...</f:form>
 </code>

 = A Form which should render a domain object =

 <code title="Binding a domain object to a form">
 <f:form action="..." name="customer" object="{customer}">
 <f:form.hidden property="id" />
 <f:form.textbox property="name" />
 </f:form>
 </code>
 This automatically inserts the value of {customer.name} inside the textbox and adjusts the name of the textbox accordingly.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="action"><xsd:annotation><xsd:documentation><![CDATA[Target action]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="arguments"><xsd:annotation><xsd:documentation><![CDATA[Arguments]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="controller"><xsd:annotation><xsd:documentation><![CDATA[Target controller]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="extensionName"><xsd:annotation><xsd:documentation><![CDATA[Target Extension Name (without "tx_" prefix and no underscores). If NULL the current extension name is used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="pluginName"><xsd:annotation><xsd:documentation><![CDATA[Target plugin. If empty, the current plugin name is used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="pageUid"><xsd:annotation><xsd:documentation><![CDATA[Target page uid]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="object"><xsd:annotation><xsd:documentation><![CDATA[Object to use for the form. Use in conjunction with the "property" attribute on the sub tags]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="pageType"><xsd:annotation><xsd:documentation><![CDATA[Target page type]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="noCache"><xsd:annotation><xsd:documentation><![CDATA[set this to disable caching for the target page. You should not need this.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="noCacheHash"><xsd:annotation><xsd:documentation><![CDATA[set this to suppress the cHash query parameter created by TypoLink. You should not need this.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="section"><xsd:annotation><xsd:documentation><![CDATA[The anchor to be added to the action URI (only active if $actionUri is not set)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="format"><xsd:annotation><xsd:documentation><![CDATA[The requested format (e.g. ".html") of the target page (only active if $actionUri is not set)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalParams"><xsd:annotation><xsd:documentation><![CDATA[additional action URI query parameters that won't be prefixed like $arguments (overrule $arguments) (only active if $actionUri is not set)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="absolute"><xsd:annotation><xsd:documentation><![CDATA[If set, an absolute action URI is rendered (only active if $actionUri is not set)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addQueryString"><xsd:annotation><xsd:documentation><![CDATA[If set, the current query parameters will be kept in the action URI (only active if $actionUri is not set)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="argumentsToBeExcludedFromQueryString"><xsd:annotation><xsd:documentation><![CDATA[arguments to be removed from the action URI. Only active if $addQueryString = TRUE and $actionUri is not set]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addQueryStringMethod"><xsd:annotation><xsd:documentation><![CDATA[Method to use when keeping query parameters (GET or POST, only active if $actionUri is not set]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="fieldNamePrefix"><xsd:annotation><xsd:documentation><![CDATA[Prefix that will be added to all field names within this form. If not set the prefix will be tx_yourExtension_plugin]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="actionUri"><xsd:annotation><xsd:documentation><![CDATA[can be used to overwrite the "action" attribute of the form tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="objectName"><xsd:annotation><xsd:documentation><![CDATA[name of the object that is bound to this form. If this argument is not specified, the name attribute of this form is used to determine the FormObjectName]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="hiddenFieldClassName"><xsd:annotation><xsd:documentation><![CDATA[hiddenFieldClassName]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="enctype"><xsd:annotation><xsd:documentation><![CDATA[MIME type with which the form is submitted]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="method"><xsd:annotation><xsd:documentation><![CDATA[Transfer type (GET or POST)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Name of form]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onreset"><xsd:annotation><xsd:documentation><![CDATA[JavaScript: On reset of the form]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onsubmit"><xsd:annotation><xsd:documentation><![CDATA[JavaScript: On submit of the form]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="target"><xsd:annotation><xsd:documentation><![CDATA[Target attribute of the form]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.button"><xsd:annotation><xsd:documentation><![CDATA[Creates a button.

 = Examples =

 <code title="Defaults">
 <f:form.button>Send Mail</f:form.button>
 </code>
 <output>
 <button type="submit" name="" value="">Send Mail</button>
 </output>

 <code title="Disabled cancel button with some HTML5 attributes">
 <f:form.button type="reset" name="buttonName" value="buttonValue" disabled="disabled" formmethod="post" formnovalidate="formnovalidate">Cancel</f:form.button>
 </code>
 <output>
 <button disabled="disabled" formmethod="post" formnovalidate="formnovalidate" type="reset" name="myForm[buttonName]" value="buttonValue">Cancel</button>
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Name of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[Value of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="property"><xsd:annotation><xsd:documentation><![CDATA[Name of Object Property. If used in conjunction with <f:form object="...">, "name" and "value" properties will be ignored.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="autofocus"><xsd:annotation><xsd:documentation><![CDATA[Specifies that a button should automatically get focus when the page loads]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="disabled"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the input element should be disabled when the page loads]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="form"><xsd:annotation><xsd:documentation><![CDATA[Specifies one or more forms the button belongs to]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="formaction"><xsd:annotation><xsd:documentation><![CDATA[Specifies where to send the form-data when a form is submitted. Only for type="submit"]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="formenctype"><xsd:annotation><xsd:documentation><![CDATA[Specifies how form-data should be encoded before sending it to a server. Only for type="submit" (e.g. "application/x-www-form-urlencoded", "multipart/form-data" or "text/plain")]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="formmethod"><xsd:annotation><xsd:documentation><![CDATA[Specifies how to send the form-data (which HTTP method to use). Only for type="submit" (e.g. "get" or "post")]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="formnovalidate"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the form-data should not be validated on submission. Only for type="submit"]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="formtarget"><xsd:annotation><xsd:documentation><![CDATA[Specifies where to display the response after submitting the form. Only for type="submit" (e.g. "_blank", "_self", "_parent", "_top", "framename")]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="type"><xsd:annotation><xsd:documentation><![CDATA[Specifies the type of button (e.g. "button", "reset" or "submit")]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.checkbox"><xsd:annotation><xsd:documentation><![CDATA[View Helper which creates a simple checkbox (<input type="checkbox">).

 = Examples =

 <code title="Example">
 <f:form.checkbox name="myCheckBox" value="someValue" />
 </code>
 <output>
 <input type="checkbox" name="myCheckBox" value="someValue" />
 </output>

 <code title="Preselect">
 <f:form.checkbox name="myCheckBox" value="someValue" checked="{object.value} == 5" />
 </code>
 <output>
 <input type="checkbox" name="myCheckBox" value="someValue" checked="checked" />
 (depending on $object)
 </output>

 <code title="Bind to object property">
 <f:form.checkbox property="interests" value="TYPO3" />
 </code>
 <output>
 <input type="checkbox" name="user[interests][]" value="TYPO3" checked="checked" />
 (depending on property "interests")
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Name of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="value" use="required"><xsd:annotation><xsd:documentation><![CDATA[Value of input tag. Required for checkboxes]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="property"><xsd:annotation><xsd:documentation><![CDATA[Name of Object Property. If used in conjunction with <f:form object="...">, "name" and "value" properties will be ignored.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="disabled"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the input element should be disabled when the page loads]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="errorClass"><xsd:annotation><xsd:documentation><![CDATA[CSS class to set if there are errors for this view helper]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="checked"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the input element should be preselected]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="multiple"><xsd:annotation><xsd:documentation><![CDATA[Specifies whether this checkbox belongs to a multivalue (is part of a checkbox group)]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.hidden"><xsd:annotation><xsd:documentation><![CDATA[Renders an <input type="hidden" ...> tag.

 = Examples =

 <code title="Example">
 <f:form.hidden name="myHiddenValue" value="42" />
 </code>
 <output>
 <input type="hidden" name="myHiddenValue" value="42" />
 </output>

 You can also use the "property" attribute if you have bound an object to the form.
 See <f:form> for more documentation.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Name of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[Value of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="property"><xsd:annotation><xsd:documentation><![CDATA[Name of Object Property. If used in conjunction with <f:form object="...">, "name" and "value" properties will be ignored.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.password"><xsd:annotation><xsd:documentation><![CDATA[View Helper which creates a simple Password Text Box (<input type="password">).

 = Examples =

 <code title="Example">
 <f:form.password name="myPassword" />
 </code>
 <output>
 <input type="password" name="myPassword" value="default value" />
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Name of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[Value of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="property"><xsd:annotation><xsd:documentation><![CDATA[Name of Object Property. If used in conjunction with <f:form object="...">, "name" and "value" properties will be ignored.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="disabled"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the input element should be disabled when the page loads]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="maxlength"><xsd:annotation><xsd:documentation><![CDATA[The maxlength attribute of the input field (will not be validated)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="placeholder"><xsd:annotation><xsd:documentation><![CDATA[The placeholder of the textfield]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="readonly"><xsd:annotation><xsd:documentation><![CDATA[The readonly attribute of the input field]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="size"><xsd:annotation><xsd:documentation><![CDATA[The size of the input field]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="errorClass"><xsd:annotation><xsd:documentation><![CDATA[CSS class to set if there are errors for this view helper]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.radio"><xsd:annotation><xsd:documentation><![CDATA[View Helper which creates a simple radio button (<input type="radio">).

 = Examples =

 <code title="Example">
 <f:form.radio name="myRadioButton" value="someValue" />
 </code>
 <output>
 <input type="radio" name="myRadioButton" value="someValue" />
 </output>

 <code title="Preselect">
 <f:form.radio name="myRadioButton" value="someValue" checked="{object.value} == 5" />
 </code>
 <output>
 <input type="radio" name="myRadioButton" value="someValue" checked="checked" />
 (depending on $object)
 </output>

 <code title="Bind to object property">
 <f:form.radio property="newsletter" value="1" /> yes
 <f:form.radio property="newsletter" value="0" /> no
 </code>
 <output>
 <input type="radio" name="user[newsletter]" value="1" checked="checked" /> yes
 <input type="radio" name="user[newsletter]" value="0" /> no
 (depending on property "newsletter")
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Name of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="value" use="required"><xsd:annotation><xsd:documentation><![CDATA[Value of input tag. Required for radio buttons]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="property"><xsd:annotation><xsd:documentation><![CDATA[Name of Object Property. If used in conjunction with <f:form object="...">, "name" and "value" properties will be ignored.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="errorClass"><xsd:annotation><xsd:documentation><![CDATA[CSS class to set if there are errors for this view helper]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="checked"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the input element should be preselected]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="disabled"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the input element should be disabled when the page loads]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.select"><xsd:annotation><xsd:documentation><![CDATA[This view helper generates a <select> dropdown list for the use with a form.

 = Basic usage =

 The most straightforward way is to supply an associative array as the "options" parameter.
 The array key is used as option key, and the value is used as human-readable name.

 <code title="Basic usage">
 <f:form.select name="paymentOptions" options="{payPal: 'PayPal International Services', visa: 'VISA Card'}" />
 </code>

 = Pre-select a value =

 To pre-select a value, set "value" to the option key which should be selected.
 <code title="Default value">
 <f:form.select name="paymentOptions" options="{payPal: 'PayPal International Services', visa: 'VISA Card'}" value="visa" />
 </code>
 Generates a dropdown box like above, except that "VISA Card" is selected.

 If the select box is a multi-select box (multiple="1"), then "value" can be an array as well.

 = Custom options and option group rendering =

 Child nodes can be used to create a completely custom set of ``<option>`` and ``<optgroup>`` tags in a way compatible with
 the HMAC generation. To do so, leave out the ``options`` argument and use child ViewHelpers:
 <code title="Custom options and optgroup">
 <f:form.select name="myproperty">
     <f:form.select.option value="1">Option one</f:form.select.option>
     <f:form.select.option value="2">Option two</f:form.select.option>
     <f:form.select.optgroup>
         <f:form.select.option value="3">Grouped option one</f:form.select.option>
         <f:form.select.option value="4">Grouped option twi</f:form.select.option>
     </f:form.select.optgroup>
 </f:form.select>
 </code>
 Note: do not use vanilla ``<option>`` or ``<optgroup>`` tags! They will invalidate the HMAC generation!

 = Usage on domain objects =

 If you want to output domain objects, you can just pass them as array into the "options" parameter.
 To define what domain object value should be used as option key, use the "optionValueField" variable. Same goes for optionLabelField.
 If neither is given, the Identifier (UID/uid) and the __toString() method are tried as fallbacks.

 If the optionValueField variable is set, the getter named after that value is used to retrieve the option key.
 If the optionLabelField variable is set, the getter named after that value is used to retrieve the option value.

 If the prependOptionLabel variable is set, an option item is added in first position, bearing an empty string or -
 If provided, the value of the prependOptionValue variable as value.

 <code title="Domain objects">
 <f:form.select name="users" options="{userArray}" optionValueField="id" optionLabelField="firstName" />
 </code>
 In the above example, the userArray is an array of "User" domain objects, with no array key specified.

 So, in the above example, the method $user->getId() is called to retrieve the key, and $user->getFirstName() to retrieve the displayed value of each entry.

 The "value" property now expects a domain object, and tests for object equivalence.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Name of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[Value of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="property"><xsd:annotation><xsd:documentation><![CDATA[Name of Object Property. If used in conjunction with <f:form object="...">, "name" and "value" properties will be ignored.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="size"><xsd:annotation><xsd:documentation><![CDATA[Size of input field]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="disabled"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the input element should be disabled when the page loads]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="options"><xsd:annotation><xsd:documentation><![CDATA[Associative array with internal IDs as key, and the values are displayed in the select box. Can be combined with or replaced by child f:form.select.* nodes.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="optionsAfterContent"><xsd:annotation><xsd:documentation><![CDATA[If true, places auto-generated option tags after those rendered in the tag content. If false, automatic options come first.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="optionValueField"><xsd:annotation><xsd:documentation><![CDATA[If specified, will call the appropriate getter on each object to determine the value.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="optionLabelField"><xsd:annotation><xsd:documentation><![CDATA[If specified, will call the appropriate getter on each object to determine the label.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="sortByOptionLabel"><xsd:annotation><xsd:documentation><![CDATA[If true, List will be sorted by label.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="selectAllByDefault"><xsd:annotation><xsd:documentation><![CDATA[If specified options are selected if none was set before.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="errorClass"><xsd:annotation><xsd:documentation><![CDATA[CSS class to set if there are errors for this view helper]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="prependOptionLabel"><xsd:annotation><xsd:documentation><![CDATA[If specified, will provide an option at first position with the specified label.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="prependOptionValue"><xsd:annotation><xsd:documentation><![CDATA[If specified, will provide an option at first position with the specified value.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="multiple"><xsd:annotation><xsd:documentation><![CDATA[If set multiple options may be selected.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.select.optgroup"><xsd:annotation><xsd:documentation><![CDATA[Adds custom `<optgroup>` tags inside an `<f:form.select>`,
 supports further child `<f:form.select.option>` tags.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="label"><xsd:annotation><xsd:documentation><![CDATA[Human-readable label property for the generated optgroup tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="disabled"><xsd:annotation><xsd:documentation><![CDATA[If true, option group is rendered as disabled]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.select.option"><xsd:annotation><xsd:documentation><![CDATA[Adds custom `<option>` tags inside an `<f:form.select>`]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[Value to be inserted in HTML tag - must be convertible to string!]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="selected"><xsd:annotation><xsd:documentation><![CDATA[If filled, overrides automatic detection of selected state for this option]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.submit"><xsd:annotation><xsd:documentation><![CDATA[Creates a submit button.

 = Examples =

 <code title="Defaults">
 <f:form.submit value="Send Mail" />
 </code>
 <output>
 <input type="submit" />
 </output>

 <code title="Dummy content for template preview">
 <f:submit name="mySubmit" value="Send Mail"><button>dummy button</button></f:submit>
 </code>
 <output>
 <input type="submit" name="mySubmit" value="Send Mail" />
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Name of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[Value of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="property"><xsd:annotation><xsd:documentation><![CDATA[Name of Object Property. If used in conjunction with <f:form object="...">, "name" and "value" properties will be ignored.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="disabled"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the input element should be disabled when the page loads]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.textarea"><xsd:annotation><xsd:documentation><![CDATA[Textarea view helper.
 The value of the text area needs to be set via the "value" attribute, as with all other form ViewHelpers.

 = Examples =

 <code title="Example">
 <f:form.textarea name="myTextArea" value="This is shown inside the textarea" />
 </code>
 <output>
 <textarea name="myTextArea">This is shown inside the textarea</textarea>
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Name of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[Value of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="property"><xsd:annotation><xsd:documentation><![CDATA[Name of Object Property. If used in conjunction with <f:form object="...">, "name" and "value" properties will be ignored.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="autofocus"><xsd:annotation><xsd:documentation><![CDATA[Specifies that a text area should automatically get focus when the page loads]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="rows"><xsd:annotation><xsd:documentation><![CDATA[The number of rows of a text area]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="cols"><xsd:annotation><xsd:documentation><![CDATA[The number of columns of a text area]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="disabled"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the input element should be disabled when the page loads]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="placeholder"><xsd:annotation><xsd:documentation><![CDATA[The placeholder of the textarea]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="errorClass"><xsd:annotation><xsd:documentation><![CDATA[CSS class to set if there are errors for this view helper]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.textfield"><xsd:annotation><xsd:documentation><![CDATA[View Helper which creates a text field (<input type="text">).

 = Examples =

 <code title="Example">
 <f:form.textfield name="myTextBox" value="default value" />
 </code>
 <output>
 <input type="text" name="myTextBox" value="default value" />
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Name of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[Value of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="property"><xsd:annotation><xsd:documentation><![CDATA[Name of Object Property. If used in conjunction with <f:form object="...">, "name" and "value" properties will be ignored.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="autofocus"><xsd:annotation><xsd:documentation><![CDATA[Specifies that an input should automatically get focus when the page loads]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="disabled"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the input element should be disabled when the page loads]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="maxlength"><xsd:annotation><xsd:documentation><![CDATA[The maxlength attribute of the input field (will not be validated)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="readonly"><xsd:annotation><xsd:documentation><![CDATA[The readonly attribute of the input field]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="size"><xsd:annotation><xsd:documentation><![CDATA[The size of the input field]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="placeholder"><xsd:annotation><xsd:documentation><![CDATA[The placeholder of the textfield]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="pattern"><xsd:annotation><xsd:documentation><![CDATA[HTML5 validation pattern]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="errorClass"><xsd:annotation><xsd:documentation><![CDATA[CSS class to set if there are errors for this view helper]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="required"><xsd:annotation><xsd:documentation><![CDATA[If the field is required or not]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="type"><xsd:annotation><xsd:documentation><![CDATA[The field type, e.g. "text", "email", "url" etc.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.upload"><xsd:annotation><xsd:documentation><![CDATA[A view helper which generates an <input type="file"> HTML element.
 Make sure to set enctype="multipart/form-data" on the form!

 = Examples =

 <code title="Example">
 <f:form.upload name="file" />
 </code>
 <output>
 <input type="file" name="file" />
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Name of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[Value of input tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="property"><xsd:annotation><xsd:documentation><![CDATA[Name of Object Property. If used in conjunction with <f:form object="...">, "name" and "value" properties will be ignored.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="disabled"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the input element should be disabled when the page loads]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="multiple"><xsd:annotation><xsd:documentation><![CDATA[Specifies that the file input element should allow multiple selection of files]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="errorClass"><xsd:annotation><xsd:documentation><![CDATA[CSS class to set if there are errors for this view helper]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="form.validationResults"><xsd:annotation><xsd:documentation><![CDATA[Validation results view helper

 = Examples =

 <code title="Output error messages as a list">
 <f:form.validationResults>
   <f:if condition="{validationResults.flattenedErrors}">
     <ul class="errors">
       <f:for each="{validationResults.flattenedErrors}" as="errors" key="propertyPath">
         <li>{propertyPath}
           <ul>
           <f:for each="{errors}" as="error">
             <li>{error.code}: {error}</li>
           </f:for>
           </ul>
         </li>
       </f:for>
     </ul>
   </f:if>
 </f:form.validationResults>
 </code>
 <output>
 <ul class="errors">
   <li>1234567890: Validation errors for argument "newBlog"</li>
 </ul>
 </output>

 <code title="Output error messages for a single property">
 <f:form.validationResults for="someProperty">
   <f:if condition="{validationResults.flattenedErrors}">
     <ul class="errors">
       <f:for each="{validationResults.errors}" as="error">
         <li>{error.code}: {error}</li>
       </f:for>
     </ul>
   </f:if>
 </f:form.validationResults>
 </code>
 <output>
 <ul class="errors">
   <li>1234567890: Some error message</li>
 </ul>
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="for"><xsd:annotation><xsd:documentation><![CDATA[The name of the error name (e.g. argument name or property name). This can also be a property path (like blog.title), and will then only display the validation errors of that property.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="as"><xsd:annotation><xsd:documentation><![CDATA[The name of the variable to store the current error]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.bytes"><xsd:annotation><xsd:documentation><![CDATA[Formats an integer with a byte count into human-readable form.

 = Examples =

 <code title="Defaults">
 {fileSize -> f:format.bytes()}
 </code>
 <output>
 123 KB
 // depending on the value of {fileSize}
 </output>

 <code title="Defaults">
 {fileSize -> f:format.bytes(decimals: 2, decimalSeparator: '.', thousandsSeparator: ',')}
 </code>
 <output>
 1,023.00 B
 // depending on the value of {fileSize}
 </output>

 You may provide an own set of units, like this: B,KB,MB,GB,TB,PB,EB,ZB,YB
 <code title="custom units">
 {fileSize -> f:format.bytes(units: '{f:translate(\'viewhelper.format.bytes.units\', \'fluid\')}'
 </code>
 <output>
 123 KB
 // depending on the value of {fileSize}
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[The incoming data to convert, or NULL if VH children should be used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="decimals"><xsd:annotation><xsd:documentation><![CDATA[The number of digits after the decimal point]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="decimalSeparator"><xsd:annotation><xsd:documentation><![CDATA[The decimal point character]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="thousandsSeparator"><xsd:annotation><xsd:documentation><![CDATA[The character for grouping the thousand digits]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="units"><xsd:annotation><xsd:documentation><![CDATA[comma separated list of available units, default is LocalizationUtility::translate('viewhelper.format.bytes.units', 'fluid')]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.case"><xsd:annotation><xsd:documentation><![CDATA[Modifies the case of an input string to upper- or lowercase or capitalization.
 The default transformation will be uppercase as in ``mb_convert_case`` [1].

 Possible modes are:

 ``lower``
   Transforms the input string to its lowercase representation

 ``upper``
   Transforms the input string to its uppercase representation

 ``capital``
   Transforms the input string to its first letter upper-cased, i.e. capitalization

 ``uncapital``
   Transforms the input string to its first letter lower-cased, i.e. uncapitalization

 ``capitalWords``
   Not supported yet: Transforms the input string to each containing word being capitalized

 Note that the behavior will be the same as in the appropriate PHP function ``mb_convert_case`` [1];
 especially regarding locale and multibyte behavior.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[The input value. If not given, the evaluated child nodes will be used.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="mode"><xsd:annotation><xsd:documentation><![CDATA[The case to apply, must be one of this' CASE_* constants. Defaults to uppercase application.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.crop"><xsd:annotation><xsd:documentation><![CDATA[Use this view helper to crop the text between its opening and closing tags.

 = Examples =

 <code title="Defaults">
 <f:format.crop maxCharacters="10">This is some very long text</f:format.crop>
 </code>
 <output>
 This is...
 </output>

 <code title="Custom suffix">
 <f:format.crop maxCharacters="17" append="&nbsp;[more]">This is some very long text</f:format.crop>
 </code>
 <output>
 This is some&nbsp;[more]
 </output>

 <code title="Don't respect word boundaries">
 <f:format.crop maxCharacters="10" respectWordBoundaries="false">This is some very long text</f:format.crop>
 </code>
 <output>
 This is so...
 </output>

 <code title="Don't respect HTML tags">
 <f:format.crop maxCharacters="28" respectWordBoundaries="false" respectHtml="false">This is some text with <strong>HTML</strong> tags</f:format.crop>
 </code>
 <output>
 This is some text with <stro
 </output>

 <code title="Inline notation">
 {someLongText -> f:format.crop(maxCharacters: 10)}
 </code>
 <output>
 someLongText cropped after 10 characters...
 (depending on the value of {someLongText})
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="maxCharacters" use="required"><xsd:annotation><xsd:documentation><![CDATA[Place where to truncate the string]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="append"><xsd:annotation><xsd:documentation><![CDATA[What to append, if truncation happened]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="respectWordBoundaries"><xsd:annotation><xsd:documentation><![CDATA[If TRUE and division is in the middle of a word, the remains of that word is removed.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="respectHtml"><xsd:annotation><xsd:documentation><![CDATA[If TRUE the cropped string will respect HTML tags and entities. Technically that means, that cropHTML() is called rather than crop()]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.currency"><xsd:annotation><xsd:documentation><![CDATA[Formats a given float to a currency representation.

 = Examples =

 <code title="Defaults">
 <f:format.currency>123.456</f:format.currency>
 </code>
 <output>
 123,46
 </output>

 <code title="All parameters">
 <f:format.currency currencySign="$" decimalSeparator="." thousandsSeparator="," prependCurrency="true" separateCurrency="false" decimals="2">54321</f:format.currency>
 </code>
 <output>
 $54,321.00
 </output>

 <code title="Inline notation">
 {someNumber -> f:format.currency(thousandsSeparator: ',', currencySign: '€')}
 </code>
 <output>
 54,321,00 €
 (depending on the value of {someNumber})
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="currencySign"><xsd:annotation><xsd:documentation><![CDATA[The currency sign, eg $ or €.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="decimalSeparator"><xsd:annotation><xsd:documentation><![CDATA[The separator for the decimal point.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="thousandsSeparator"><xsd:annotation><xsd:documentation><![CDATA[The thousands separator.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="prependCurrency"><xsd:annotation><xsd:documentation><![CDATA[Select if the currency sign should be prepended]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="separateCurrency"><xsd:annotation><xsd:documentation><![CDATA[Separate the currency sign from the number by a single space, defaults to true due to backwards compatibility]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="decimals"><xsd:annotation><xsd:documentation><![CDATA[Set decimals places.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.date"><xsd:annotation><xsd:documentation><![CDATA[Formats an object implementing \DateTimeInterface.

 = Examples =

 <code title="Defaults">
 <f:format.date>{dateObject}</f:format.date>
 </code>
 <output>
 1980-12-13
 (depending on the current date)
 </output>

 <code title="Custom date format">
 <f:format.date format="H:i">{dateObject}</f:format.date>
 </code>
 <output>
 01:23
 (depending on the current time)
 </output>

 <code title="Relative date with given time">
 <f:format.date format="Y" base="{dateObject}">-1 year</f:format.date>
 </code>
 <output>
 2016
 (assuming dateObject is in 2017)
 </output>

 <code title="strtotime string">
 <f:format.date format="d.m.Y - H:i:s">+1 week 2 days 4 hours 2 seconds</f:format.date>
 </code>
 <output>
 13.12.1980 - 21:03:42
 (depending on the current time, see http://www.php.net/manual/en/function.strtotime.php)
 </output>

 <code title="Localized dates using strftime date format">
 <f:format.date format="%d. %B %Y">{dateObject}</f:format.date>
 </code>
 <output>
 13. Dezember 1980
 (depending on the current date and defined locale. In the example you see the 1980-12-13 in a german locale)
 </output>

 <code title="Inline notation">
 {f:format.date(date: dateObject)}
 </code>
 <output>
 1980-12-13
 (depending on the value of {dateObject})
 </output>

 <code title="Inline notation (2nd variant)">
 {dateObject -> f:format.date()}
 </code>
 <output>
 1980-12-13
 (depending on the value of {dateObject})
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="date"><xsd:annotation><xsd:documentation><![CDATA[Either an object implementing DateTimeInterface or a string that is accepted by DateTime constructor]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="format"><xsd:annotation><xsd:documentation><![CDATA[Format String which is taken to format the Date/Time]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="base"><xsd:annotation><xsd:documentation><![CDATA[A base time (an object implementing DateTimeInterface or a string) used if $date is a relative date specification. Defaults to current time.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.html"><xsd:annotation><xsd:documentation><![CDATA[Renders a string by passing it to a TYPO3 parseFunc.
 You can either specify a path to the TypoScript setting or set the parseFunc options directly.
 By default lib.parseFunc_RTE is used to parse the string.

 == Examples ==

 <code title="Default parameters">
 <f:format.html>foo <b>bar</b>. Some <LINK 1>link</LINK>.</f:format.html>
 </code>
 <output>
 <p class="bodytext">foo <b>bar</b>. Some <a href="index.php?id=1" >link</a>.</p>
 (depending on your TYPO3 setup)
 </output>

 <code title="Custom parseFunc">
 <f:format.html parseFuncTSPath="lib.parseFunc">foo <b>bar</b>. Some <LINK 1>link</LINK>.</f:format.html>
 </code>
 <output>
 foo <b>bar</b>. Some <a href="index.php?id=1" >link</a>.
 </output>

 <code title="Inline notation">
 {someText -> f:format.html(parseFuncTSPath: 'lib.parseFunc')}
 </code>
 <output>
 foo <b>bar</b>. Some <a href="index.php?id=1" >link</a>.
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="parseFuncTSPath"><xsd:annotation><xsd:documentation><![CDATA[ path to TypoScript parseFunc setup.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.htmlentitiesDecode"><xsd:annotation><xsd:documentation><![CDATA[Applies html_entity_decode() to a value]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[string to format]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="keepQuotes"><xsd:annotation><xsd:documentation><![CDATA[If TRUE, single and double quotes won't be replaced (sets ENT_NOQUOTES flag).]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="encoding"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.htmlentities"><xsd:annotation><xsd:documentation><![CDATA[Applies htmlentities() escaping to a value]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[string to format]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="keepQuotes"><xsd:annotation><xsd:documentation><![CDATA[If TRUE, single and double quotes won't be replaced (sets ENT_NOQUOTES flag).]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="encoding"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="doubleEncode"><xsd:annotation><xsd:documentation><![CDATA[If FALSE existing html entities won't be encoded, the default is to convert everything.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.json"><xsd:annotation><xsd:documentation><![CDATA[Wrapper for PHPs json_encode function.

 = Examples =

 <code title="encoding a view variable">
 {someArray -> f:format.json()}
 </code>
 <output>
 ["array","values"]
 // depending on the value of {someArray}
 </output>

 <code title="associative array">
 {f:format.json(value: {foo: 'bar', bar: 'baz'})}
 </code>
 <output>
 {"foo":"bar","bar":"baz"}
 </output>

 <code title="non-associative array with forced object">
 {f:format.json(value: {0: 'bar', 1: 'baz'}, forceObject: true)}
 </code>
 <output>
 {"0":"bar","1":"baz"}
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[The incoming data to convert, or null if VH children should be used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="forceObject"><xsd:annotation><xsd:documentation><![CDATA[Outputs an JSON object rather than an array]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.nl2br"><xsd:annotation><xsd:documentation><![CDATA[Wrapper for PHPs nl2br function.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[string to format]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.number"><xsd:annotation><xsd:documentation><![CDATA[Formats a number with custom precision, decimal point and grouped thousands.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="decimals"><xsd:annotation><xsd:documentation><![CDATA[The number of digits after the decimal point]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="decimalSeparator"><xsd:annotation><xsd:documentation><![CDATA[The decimal point character]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="thousandsSeparator"><xsd:annotation><xsd:documentation><![CDATA[The character for grouping the thousand digits]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.padding"><xsd:annotation><xsd:documentation><![CDATA[Formats a string using PHPs str_pad function.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[string to format]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="padLength" use="required"><xsd:annotation><xsd:documentation><![CDATA[Length of the resulting string. If the value of pad_length is negative or less than the length of the input string, no padding takes place.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="padString"><xsd:annotation><xsd:documentation><![CDATA[The padding string]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="padType"><xsd:annotation><xsd:documentation><![CDATA[Append the padding at this site (Possible values: right,left,both. Default: right)]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.stripTags"><xsd:annotation><xsd:documentation><![CDATA[Removes tags from the given string (applying PHPs strip_tags() function)]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[string to format]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="allowedTags"><xsd:annotation><xsd:documentation><![CDATA[Optional string of allowed tags as required by PHPs strip_tags() f
unction]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="format.urlencode"><xsd:annotation><xsd:documentation><![CDATA[Encodes the given string according to http://www.faqs.org/rfcs/rfc3986.html (applying PHPs rawurlencode() function)]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="value"><xsd:annotation><xsd:documentation><![CDATA[string to format]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="image"><xsd:annotation><xsd:documentation><![CDATA[Resizes a given image (if required) and renders the respective img tag

 = Examples =

 <code title="Default">
 <f:image src="EXT:myext/Resources/Public/typo3_logo.png" alt="alt text" />
 </code>
 <output>
 <img alt="alt text" src="typo3conf/ext/myext/Resources/Public/typo3_logo.png" width="396" height="375" />
 or (in BE mode):
 <img alt="alt text" src="../typo3conf/ext/viewhelpertest/Resources/Public/typo3_logo.png" width="396" height="375" />
 </output>

 <code title="Image Object">
 <f:image image="{imageObject}" />
 </code>
 <output>
 <img alt="alt set in image record" src="fileadmin/_processed_/323223424.png" width="396" height="375" />
 </output>

 <code title="Inline notation">
 {f:image(src: 'EXT:viewhelpertest/Resources/Public/typo3_logo.png', alt: 'alt text', minWidth: 30, maxWidth: 40)}
 </code>
 <output>
 <img alt="alt text" src="../typo3temp/assets/images/f13d79a526.png" width="40" height="38" />
 (depending on your TYPO3s encryption key)
 </output>

 <code title="Other resource type (e.g. PDF)">
 <f:image src="fileadmin/user_upload/example.pdf" alt="foo" />
 </code>
 <output>
 If your graphics processing library is set up correctly then it will output a thumbnail of the first page of your PDF document.
 <img src="fileadmin/_processed_/1/2/csm_example_aabbcc112233.gif" width="200" height="284" alt="foo">
 </output>

 <code title="Non-existent image">
 <f:image src="NonExistingImage.png" alt="foo" />
 </code>
 <output>
 Could not get image resource for "NonExistingImage.png".
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="alt"><xsd:annotation><xsd:documentation><![CDATA[Specifies an alternate text for an image]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="ismap"><xsd:annotation><xsd:documentation><![CDATA[Specifies an image as a server-side image-map. Rarely used. Look at usemap instead]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="longdesc"><xsd:annotation><xsd:documentation><![CDATA[Specifies the URL to a document that contains a long description of an image]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="usemap"><xsd:annotation><xsd:documentation><![CDATA[Specifies an image as a client-side image-map]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="src"><xsd:annotation><xsd:documentation><![CDATA[a path to a file, a combined FAL identifier or an uid (int). If $treatIdAsReference is set, the integer is considered the uid of the sys_file_reference record. If you already got a FAL object, consider using the $image parameter instead]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="treatIdAsReference"><xsd:annotation><xsd:documentation><![CDATA[given src argument is a sys_file_reference record]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="image"><xsd:annotation><xsd:documentation><![CDATA[a FAL object]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="crop"><xsd:annotation><xsd:documentation><![CDATA[overrule cropping of image (setting to FALSE disables the cropping set in FileReference)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="cropVariant"><xsd:annotation><xsd:documentation><![CDATA[select a cropping variant, in case multiple croppings have been specified or stored in FileReference]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="width"><xsd:annotation><xsd:documentation><![CDATA[width of the image. This can be a numeric value representing the fixed width of the image in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="height"><xsd:annotation><xsd:documentation><![CDATA[height of the image. This can be a numeric value representing the fixed height of the image in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="minWidth"><xsd:annotation><xsd:documentation><![CDATA[minimum width of the image]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="minHeight"><xsd:annotation><xsd:documentation><![CDATA[minimum width of the image]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="maxWidth"><xsd:annotation><xsd:documentation><![CDATA[minimum width of the image]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="maxHeight"><xsd:annotation><xsd:documentation><![CDATA[minimum width of the image]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="absolute"><xsd:annotation><xsd:documentation><![CDATA[Force absolute URL]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="link.action"><xsd:annotation><xsd:documentation><![CDATA[A view helper for creating links to extbase actions.

 = Examples =

 <code title="link to the show-action of the current controller">
 <f:link.action action="show">action link</f:link.action>
 </code>
 <output>
 <a href="index.php?id=123&tx_myextension_plugin[action]=show&tx_myextension_plugin[controller]=Standard&cHash=xyz">action link</f:link.action>
 (depending on the current page and your TS configuration)
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="action"><xsd:annotation><xsd:documentation><![CDATA[Target action]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="arguments"><xsd:annotation><xsd:documentation><![CDATA[Arguments]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="controller"><xsd:annotation><xsd:documentation><![CDATA[Target controller. If NULL current controllerName is used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="extensionName"><xsd:annotation><xsd:documentation><![CDATA[Target Extension Name (without "tx_" prefix and no underscores). If NULL the current extension name is used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="pluginName"><xsd:annotation><xsd:documentation><![CDATA[Target plugin. If empty, the current plugin name is used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="pageUid"><xsd:annotation><xsd:documentation><![CDATA[target page. See TypoLink destination]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="pageType"><xsd:annotation><xsd:documentation><![CDATA[type of the target page. See typolink.parameter]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="noCache"><xsd:annotation><xsd:documentation><![CDATA[set this to disable caching for the target page. You should not need this.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="noCacheHash"><xsd:annotation><xsd:documentation><![CDATA[set this to suppress the cHash query parameter created by TypoLink. You should not need this.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="section"><xsd:annotation><xsd:documentation><![CDATA[the anchor to be added to the URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="format"><xsd:annotation><xsd:documentation><![CDATA[The requested format, e.g. ".html]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="linkAccessRestrictedPages"><xsd:annotation><xsd:documentation><![CDATA[If set, links pointing to access restricted pages will still link to the page even though the page cannot be accessed.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalParams"><xsd:annotation><xsd:documentation><![CDATA[additional query parameters that won't be prefixed like $arguments (overrule $arguments)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="absolute"><xsd:annotation><xsd:documentation><![CDATA[If set, the URI of the rendered link is absolute]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addQueryString"><xsd:annotation><xsd:documentation><![CDATA[If set, the current query parameters will be kept in the URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="argumentsToBeExcludedFromQueryString"><xsd:annotation><xsd:documentation><![CDATA[arguments to be removed from the URI. Only active if $addQueryString = TRUE]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addQueryStringMethod"><xsd:annotation><xsd:documentation><![CDATA[Set which parameters will be kept. Only active if $addQueryString = TRUE]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Specifies the name of an anchor]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="rel"><xsd:annotation><xsd:documentation><![CDATA[Specifies the relationship between the current document and the linked document]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="rev"><xsd:annotation><xsd:documentation><![CDATA[Specifies the relationship between the linked document and the current document]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="target"><xsd:annotation><xsd:documentation><![CDATA[Specifies where to open the linked document]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="link.email"><xsd:annotation><xsd:documentation><![CDATA[Email link view helper.
 Generates an email link incorporating TYPO3s spamProtectEmailAddresses-settings.

 = Examples

 <code title="basic email link">]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="email" use="required"><xsd:annotation><xsd:documentation><![CDATA[The email address to be turned into a link]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Specifies the name of an anchor]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="rel"><xsd:annotation><xsd:documentation><![CDATA[Specifies the relationship between the current document and the linked document]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="rev"><xsd:annotation><xsd:documentation><![CDATA[Specifies the relationship between the linked document and the current document]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="target"><xsd:annotation><xsd:documentation><![CDATA[Specifies where to open the linked document]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="link.external"><xsd:annotation><xsd:documentation><![CDATA[A view helper for creating links to external targets.

 = Examples =

 <code>
 <f:link.external uri="http://www.typo3.org" target="_blank">external link</f:link.external>
 </code>
 <output>
 <a href="http://www.typo3.org" target="_blank">external link</a>
 </output>

 <code title="custom default scheme">
 <f:link.external uri="typo3.org" defaultScheme="ftp">external ftp link</f:link.external>
 </code>
 <output>
 <a href="ftp://typo3.org">external ftp link</a>
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="uri" use="required"><xsd:annotation><xsd:documentation><![CDATA[The URI that will be put in the href attribute of the rendered link tag]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="defaultScheme"><xsd:annotation><xsd:documentation><![CDATA[Scheme the href attribute will be prefixed with if specified $uri does not contain a scheme already]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Specifies the name of an anchor]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="rel"><xsd:annotation><xsd:documentation><![CDATA[Specifies the relationship between the current document and the linked document]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="rev"><xsd:annotation><xsd:documentation><![CDATA[Specifies the relationship between the linked document and the current document]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="target"><xsd:annotation><xsd:documentation><![CDATA[Specifies where to open the linked document]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="link.page"><xsd:annotation><xsd:documentation><![CDATA[A view helper for creating links to TYPO3 pages.

 = Examples =

 <code title="link to the current page">
 <f:link.page>page link</f:link.page>
 </code>
 <output>
 <a href="index.php?id=123">page link</f:link.action>
 (depending on the current page and your TS configuration)
 </output>

 <code title="query parameters">
 <f:link.page pageUid="1" additionalParams="{foo: 'bar'}">page link</f:link.page>
 </code>
 <output>
 <a href="index.php?id=1&foo=bar">page link</f:link.action>
 (depending on your TS configuration)
 </output>

 <code title="query parameters for extensions">
 <f:link.page pageUid="1" additionalParams="{extension_key: {foo: 'bar'}}">page link</f:link.page>
 </code>
 <output>
 <a href="index.php?id=1&extension_key[foo]=bar">page link</f:link.action>
 (depending on your TS configuration)
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="pageUid"><xsd:annotation><xsd:documentation><![CDATA[target page. See TypoLink destination]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalParams"><xsd:annotation><xsd:documentation><![CDATA[query parameters to be attached to the resulting URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="pageType"><xsd:annotation><xsd:documentation><![CDATA[type of the target page. See typolink.parameter]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="noCache"><xsd:annotation><xsd:documentation><![CDATA[set this to disable caching for the target page. You should not need this.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="noCacheHash"><xsd:annotation><xsd:documentation><![CDATA[set this to suppress the cHash query parameter created by TypoLink. You should not need this.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="section"><xsd:annotation><xsd:documentation><![CDATA[the anchor to be added to the URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="linkAccessRestrictedPages"><xsd:annotation><xsd:documentation><![CDATA[If set, links pointing to access restricted pages will still link to the page even though the page cannot be accessed.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="absolute"><xsd:annotation><xsd:documentation><![CDATA[If set, the URI of the rendered link is absolute]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addQueryString"><xsd:annotation><xsd:documentation><![CDATA[If set, the current query parameters will be kept in the URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="argumentsToBeExcludedFromQueryString"><xsd:annotation><xsd:documentation><![CDATA[arguments to be removed from the URI. Only active if $addQueryString = TRUE]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addQueryStringMethod"><xsd:annotation><xsd:documentation><![CDATA[Set which parameters will be kept. Only active if $addQueryString = TRUE]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="target"><xsd:annotation><xsd:documentation><![CDATA[Target of link]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="rel"><xsd:annotation><xsd:documentation><![CDATA[Specifies the relationship between the current document and the linked document]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="link.typolink"><xsd:annotation><xsd:documentation><![CDATA[A ViewHelper to create links from fields supported by the link wizard

 == Example ==

 {link} contains "19 _blank - "testtitle with whitespace" &X=y"

 <code title="minimal usage">
 <f:link.typolink parameter="{link}">
 Linktext
 </f:link.typolink>
 <output>
 <a href="index.php?id=19&X=y" title="testtitle with whitespace" target="_blank">
 Linktext
 </a>
 </output>
 </code>

 <code title="Full parameter usage">
 <f:link.typolink parameter="{link}" target="_blank" class="ico-class" title="some title" additionalParams="&u=b" additionalAttributes="{type:'button'}" useCacheHash="true">
 Linktext
 </f:link.typolink>
 </code>
 <output>
 <a href="index.php?id=19&X=y&u=b" title="some title" target="_blank" class="ico-class" type="button">
 Linktext
 </a>
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="parameter" use="required"><xsd:annotation><xsd:documentation><![CDATA[stdWrap.typolink style parameter string]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="target"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalParams"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="useCacheHash"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="media"><xsd:annotation><xsd:documentation><![CDATA[Render a given media file with the correct html tag.

 It asks the RendererRegister for the correct Renderer class and if not found it falls
 back to the ImageViewHelper as that is the "Renderer" class for images in Fluid context.

 = Examples =

 <code title="Image Object">
     <f:media file="{file}" width="400" height="375" />
 </code>
 <output>
     <img alt="alt set in image record" src="fileadmin/_processed_/323223424.png" width="396" height="375" />
 </output>

 <code title="MP4 Video Object">
     <f:media file="{file}" width="400" height="375" />
 </code>
 <output>
     <video width="400" height="375" controls><source src="fileadmin/user_upload/my-video.mp4" type="video/mp4"></video>
 </output>

 <code title="MP4 Video Object with loop and autoplay option set">
     <f:media file="{file}" width="400" height="375" additionalConfig="{loop: '1', autoplay: '1'}" />
 </code>
 <output>
     <video width="400" height="375" controls loop><source src="fileadmin/user_upload/my-video.mp4" type="video/mp4"></video>
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="alt"><xsd:annotation><xsd:documentation><![CDATA[Specifies an alternate text for an image]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="file" use="required"><xsd:annotation><xsd:documentation><![CDATA[File]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalConfig"><xsd:annotation><xsd:documentation><![CDATA[This array can hold additional configuration that is passed though to the Renderer object]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="width"><xsd:annotation><xsd:documentation><![CDATA[This can be a numeric value representing the fixed width of in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="height"><xsd:annotation><xsd:documentation><![CDATA[This can be a numeric value representing the fixed height in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="cropVariant"><xsd:annotation><xsd:documentation><![CDATA[select a cropping variant, in case multiple croppings have been specified or stored in FileReference]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="renderChildren"><xsd:annotation><xsd:documentation><![CDATA[Render the inner parts of a Widget.
 This ViewHelper can only be used in a template which belongs to a Widget Controller.

 It renders everything inside the Widget ViewHelper, and you can pass additional
 arguments.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="arguments"><xsd:annotation><xsd:documentation><![CDATA[Arguments to assign as template variables]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="security.ifAuthenticated"><xsd:annotation><xsd:documentation><![CDATA[This view helper implements an ifAuthenticated/else condition for FE users/groups.

 = Examples =

 <code title="Basic usage">
 <f:security.ifAuthenticated>
 This is being shown whenever a FE user is logged in
 </f:security.ifAuthenticated>
 </code>
 <output>
 Everything inside the <f:ifAuthenticated> tag is being displayed if you are authenticated with any FE user account.
 </output>

 <code title="IfAuthenticated / then / else">
 <f:security.ifAuthenticated>
 <f:then>
 This is being shown in case you have access.
 </f:then>
 <f:else>
 This is being displayed in case you do not have access.
 </f:else>
 </f:security.ifAuthenticated>
 </code>
 <output>
 Everything inside the "then" tag is displayed if you have access.
 Otherwise, everything inside the "else"-tag is displayed.
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="then"><xsd:annotation><xsd:documentation><![CDATA[Value to be returned if the condition if met.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="else"><xsd:annotation><xsd:documentation><![CDATA[Value to be returned if the condition if not met.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="condition"><xsd:annotation><xsd:documentation><![CDATA[Condition expression conforming to Fluid boolean rules]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="security.ifHasRole"><xsd:annotation><xsd:documentation><![CDATA[This view helper implements an ifHasRole/else condition for FE users/groups.

 = Examples =

 <code title="Basic usage">
 <f:security.ifHasRole role="Administrator">
 This is being shown in case the current FE user belongs to a FE usergroup (aka role) titled "Administrator" (case sensitive)
 </f:security.ifHasRole>
 </code>
 <output>
 Everything inside the <f:ifHasRole> tag is being displayed if the logged in FE user belongs to the specified role.
 </output>

 <code title="Using the usergroup uid as role identifier">
 <f:security.ifHasRole role="1">
 This is being shown in case the current FE user belongs to a FE usergroup (aka role) with the uid "1"
 </f:security.ifHasRole>
 </code>
 <output>
 Everything inside the <f:ifHasRole> tag is being displayed if the logged in FE user belongs to the specified role.
 </output>

 <code title="IfRole / then / else">
 <f:security.ifHasRole role="Administrator">
 <f:then>
 This is being shown in case you have the role.
 </f:then>
 <f:else>
 This is being displayed in case you do not have the role.
 </f:else>
 </f:security.ifHasRole>
 </code>
 <output>
 Everything inside the "then" tag is displayed if the logged in FE user belongs to the specified role.
 Otherwise, everything inside the "else"-tag is displayed.
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="role"><xsd:annotation><xsd:documentation><![CDATA[The usergroup (either the usergroup uid or its title).]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="switch"><xsd:annotation><xsd:documentation><![CDATA[Switch view helper which can be used to render content depending on a value or expression.
 Implements what a basic switch()-PHP-method does.

 = Examples =

 <code title="Simple Switch statement">
 <f:switch expression="{person.gender}">
   <f:case value="male">Mr.</f:case>
   <f:case value="female">Mrs.</f:case>
   <f:defaultCase>Mrs. or Mr.</f:defaultCase>
 </f:switch>
 </code>
 <output>
 Mr. / Mrs. (depending on the value of {person.gender}) or if no value evaluates to TRUE, defaultCase
 </output>

 Note: Using this view helper can be a sign of weak architecture. If you end up using it extensively
 you might want to consider restructuring your controllers/actions and/or use partials and sections.
 E.g. the above example could be achieved with <f:render partial="title.{person.gender}" /> and the partials
 "title.male.html", "title.female.html", ...
 Depending on the scenario this can be easier to extend and possibly contains less duplication.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="expression" use="required"><xsd:annotation><xsd:documentation><![CDATA[Expression to switch]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="translate"><xsd:annotation><xsd:documentation><![CDATA[Translate a key from locallang. The files are loaded from the folder
 "Resources/Private/Language/".

 == Examples ==

 <code title="Translate key">
 <f:translate key="key1" />
 </code>
 <output>
 value of key "key1" in the current website language
 </output>

 <code title="Keep HTML tags">
 <f:format.raw><f:translate key="htmlKey" /></f:format.raw>
 </code>
 <output>
 value of key "htmlKey" in the current website language, no htmlspecialchars applied
 </output>

 <code title="Translate key from custom locallang file">
 <f:translate key="LLL:EXT:myext/Resources/Private/Language/locallang.xlf:key1" />
 </code>
 <output>
 value of key "key1" in the current website language
 </output>

 <code title="Inline notation with arguments and default value">
 {f:translate(key: 'argumentsKey', arguments: {0: 'dog', 1: 'fox'}, default: 'default value')}
 </code>
 <output>
 value of key "argumentsKey" in the current website language
 with "%1" and "%2" are replaced by "dog" and "fox" (printf)
 if the key is not found, the output is "default value"
 </output>

 <code title="Inline notation with extension name">
 {f:translate(key: 'someKey', extensionName: 'SomeExtensionName')}
 </code>
 <output>
 value of key "someKey" in the current website language
 the locallang file of extension "some_extension_name" will be used
 </output>

 <code title="Translate id as in TYPO3 Flow">
 <f:translate id="key1" />
 </code>
 <output>
 value of id "key1" in the current website language
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="key"><xsd:annotation><xsd:documentation><![CDATA[Translation Key]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Translation Key compatible to TYPO3 Flow]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="default"><xsd:annotation><xsd:documentation><![CDATA[If the given locallang key could not be found, this value is used. If this argument is not set, child nodes will be used to render the default]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="htmlEscape"><xsd:annotation><xsd:documentation><![CDATA[TRUE if the result should be htmlescaped. This won't have an effect for the default value]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="arguments"><xsd:annotation><xsd:documentation><![CDATA[Arguments to be replaced in the resulting string]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="extensionName"><xsd:annotation><xsd:documentation><![CDATA[UpperCamelCased extension key (for example BlogExample)]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="uri.action"><xsd:annotation><xsd:documentation><![CDATA[A view helper for creating URIs to extbase actions.

 = Examples =

 <code title="URI to the show-action of the current controller">
 <f:uri.action action="show" />
 </code>
 <output>
 index.php?id=123&tx_myextension_plugin[action]=show&tx_myextension_plugin[controller]=Standard&cHash=xyz
 (depending on the current page and your TS configuration)
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="action"><xsd:annotation><xsd:documentation><![CDATA[Target action]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="arguments"><xsd:annotation><xsd:documentation><![CDATA[Arguments]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="controller"><xsd:annotation><xsd:documentation><![CDATA[Target controller. If NULL current controllerName is used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="extensionName"><xsd:annotation><xsd:documentation><![CDATA[Target Extension Name (without "tx_" prefix and no underscores). If NULL the current extension name is used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="pluginName"><xsd:annotation><xsd:documentation><![CDATA[Target plugin. If empty, the current plugin name is used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="pageUid"><xsd:annotation><xsd:documentation><![CDATA[Target page. See TypoLink destination]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="pageType"><xsd:annotation><xsd:documentation><![CDATA[Type of the target page. See typolink.parameter]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="noCache"><xsd:annotation><xsd:documentation><![CDATA[Set this to disable caching for the target page. You should not need this.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="noCacheHash"><xsd:annotation><xsd:documentation><![CDATA[Set this to suppress the cHash query parameter created by TypoLink. You should not need this.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="section"><xsd:annotation><xsd:documentation><![CDATA[The anchor to be added to the URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="format"><xsd:annotation><xsd:documentation><![CDATA[The requested format, e.g. ".html]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="linkAccessRestrictedPages"><xsd:annotation><xsd:documentation><![CDATA[If set, links pointing to access restricted pages will still link to the page even though the page cannot be accessed.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalParams"><xsd:annotation><xsd:documentation><![CDATA[additional query parameters that won't be prefixed like $arguments (overrule $arguments)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="absolute"><xsd:annotation><xsd:documentation><![CDATA[If set, an absolute URI is rendered]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addQueryString"><xsd:annotation><xsd:documentation><![CDATA[If set, the current query parameters will be kept in the URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="argumentsToBeExcludedFromQueryString"><xsd:annotation><xsd:documentation><![CDATA[arguments to be removed from the URI. Only active if $addQueryString = TRUE]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addQueryStringMethod"><xsd:annotation><xsd:documentation><![CDATA[Set which parameters will be kept. Only active if $addQueryString = TRUE]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="uri.email"><xsd:annotation><xsd:documentation><![CDATA[Email URI view helper.
 Generates an email URI incorporating TYPO3s spamProtectEmailAddresses-settings.

 = Examples

 <code title="basic email URI">]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="email" use="required"><xsd:annotation><xsd:documentation><![CDATA[The email address to be turned into a URI]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="uri.external"><xsd:annotation><xsd:documentation><![CDATA[A view helper for creating URIs to external targets.
 Currently the specified URI is simply passed through.

 = Examples =

 <code>
 <f:uri.external uri="http://www.typo3.org" />
 </code>
 <output>
 http://www.typo3.org
 </output>

 <code title="custom default scheme">
 <f:uri.external uri="typo3.org" defaultScheme="ftp" />
 </code>
 <output>
 ftp://typo3.org
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="uri" use="required"><xsd:annotation><xsd:documentation><![CDATA[target URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="defaultScheme"><xsd:annotation><xsd:documentation><![CDATA[scheme the href attribute will be prefixed with if specified $uri does not contain a scheme already]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="uri.image"><xsd:annotation><xsd:documentation><![CDATA[Resizes a given image (if required) and returns its relative path.

 = Examples =

 <code title="Default">
 <f:uri.image src="EXT:myext/Resources/Public/typo3_logo.png" />
 </code>
 <output>
 typo3conf/ext/myext/Resources/Public/typo3_logo.png
 or (in BE mode):
 ../typo3conf/ext/myext/Resources/Public/typo3_logo.png
 </output>

 <code title="Image Object">
 <f:uri.image image="{imageObject}" />
 </code>
 <output>
 fileadmin/images/image.png
 or (in BE mode):
 fileadmin/images/image.png
 </output>

 <code title="Inline notation">
 {f:uri.image(src: 'EXT:myext/Resources/Public/typo3_logo.png', minWidth: 30, maxWidth: 40)}
 </code>
 <output>
 typo3temp/assets/images/[b4c0e7ed5c].png
 (depending on your TYPO3s encryption key)
 </output>

 <code title="non existing image">
 <f:uri.image src="NonExistingImage.png" />
 </code>
 <output>
 Could not get image resource for "NonExistingImage.png".
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="src"><xsd:annotation><xsd:documentation><![CDATA[src]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="treatIdAsReference"><xsd:annotation><xsd:documentation><![CDATA[given src argument is a sys_file_reference record]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="image"><xsd:annotation><xsd:documentation><![CDATA[image]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="crop"><xsd:annotation><xsd:documentation><![CDATA[overrule cropping of image (setting to FALSE disables the cropping set in FileReference)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="cropVariant"><xsd:annotation><xsd:documentation><![CDATA[select a cropping variant, in case multiple croppings have been specified or stored in FileReference]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="width"><xsd:annotation><xsd:documentation><![CDATA[width of the image. This can be a numeric value representing the fixed width of the image in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="height"><xsd:annotation><xsd:documentation><![CDATA[height of the image. This can be a numeric value representing the fixed height of the image in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="minWidth"><xsd:annotation><xsd:documentation><![CDATA[minimum width of the image]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="minHeight"><xsd:annotation><xsd:documentation><![CDATA[minimum height of the image]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="maxWidth"><xsd:annotation><xsd:documentation><![CDATA[maximum width of the image]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="maxHeight"><xsd:annotation><xsd:documentation><![CDATA[maximum height of the image]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="absolute"><xsd:annotation><xsd:documentation><![CDATA[Force absolute URL]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="uri.page"><xsd:annotation><xsd:documentation><![CDATA[A view helper for creating URIs to TYPO3 pages.

 = Examples =

 <code title="URI to the current page">
 <f:uri.page>page link</f:uri.page>
 </code>
 <output>
 index.php?id=123
 (depending on the current page and your TS configuration)
 </output>

 <code title="query parameters">
 <f:uri.page pageUid="1" additionalParams="{foo: 'bar'}" />
 </code>
 <output>
 index.php?id=1&foo=bar
 (depending on your TS configuration)
 </output>

 <code title="query parameters for extensions">
 <f:uri.page pageUid="1" additionalParams="{extension_key: {foo: 'bar'}}" />
 </code>
 <output>
 index.php?id=1&extension_key[foo]=bar
 (depending on your TS configuration)
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="pageUid"><xsd:annotation><xsd:documentation><![CDATA[target PID]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalParams"><xsd:annotation><xsd:documentation><![CDATA[query parameters to be attached to the resulting URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="pageType"><xsd:annotation><xsd:documentation><![CDATA[type of the target page. See typolink.parameter]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="noCache"><xsd:annotation><xsd:documentation><![CDATA[set this to disable caching for the target page. You should not need this.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="noCacheHash"><xsd:annotation><xsd:documentation><![CDATA[set this to suppress the cHash query parameter created by TypoLink. You should not need this.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="section"><xsd:annotation><xsd:documentation><![CDATA[the anchor to be added to the URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="linkAccessRestrictedPages"><xsd:annotation><xsd:documentation><![CDATA[If set, links pointing to access restricted pages will still link to the page even though the page cannot be accessed.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="absolute"><xsd:annotation><xsd:documentation><![CDATA[If set, the URI of the rendered link is absolute]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addQueryString"><xsd:annotation><xsd:documentation><![CDATA[If set, the current query parameters will be kept in the URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="argumentsToBeExcludedFromQueryString"><xsd:annotation><xsd:documentation><![CDATA[arguments to be removed from the URI. Only active if $addQueryString = TRUE]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addQueryStringMethod"><xsd:annotation><xsd:documentation><![CDATA[Set which parameters will be kept. Only active if $addQueryString = TRUE]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="uri.resource"><xsd:annotation><xsd:documentation><![CDATA[A view helper for creating URIs to resources.

 = Examples =

 <code title="Defaults">
 <link href="{f:uri.resource(path:'css/stylesheet.css')}" rel="stylesheet" />
 </code>
 <output>
 <link href="Resources/Packages/MyPackage/stylesheet.css" rel="stylesheet" />
 (depending on current package)
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="path" use="required"><xsd:annotation><xsd:documentation><![CDATA[The path and filename of the resource (relative to Public resource directory of the extension).]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="extensionName"><xsd:annotation><xsd:documentation><![CDATA[Target extension name. If not set, the current extension name will be used]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="absolute"><xsd:annotation><xsd:documentation><![CDATA[If set, an absolute URI is rendered]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="uri.typolink"><xsd:annotation><xsd:documentation><![CDATA[A ViewHelper to create uris from fields supported by the link wizard

 == Example ==

 {link} contains "19 - - - &X=y"
 Please note that due to the nature of typolink you have to provide a
 full set of parameters if you use the parameter only. Target, class
 and title will be discarded.

 <code title="minimal usage">
 <f:uri.typolink parameter="{link}" />
 <output>
 index.php?id=19&X=y
 </output>
 </code>

 <code title="Full parameter usage">
 <f:uri.typolink parameter="{link}" additionalParams="&u=b" useCacheHash="true" />
 </code>
 <output>
 index.php?id=19&X=y&u=b
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="parameter" use="required"><xsd:annotation><xsd:documentation><![CDATA[stdWrap.typolink style parameter string]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="additionalParams"><xsd:annotation><xsd:documentation><![CDATA[stdWrap.typolink additionalParams]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="useCacheHash"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="widget.autocomplete"><xsd:annotation><xsd:documentation><![CDATA[Simple paginate widget
 Note: Make sure to include jQuery and jQuery UI in the HTML, like that:
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js"></script>
 <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.3/themes/base/jquery-ui.css" type="text/css" media="all" />
 <link rel="stylesheet" href="http://static.jquery.com/ui/css/demo-docs-theme/ui.theme.css" type="text/css" media="all" />
 You can include the provided TS template that includes the above snippet to the pages headerData.

 = Examples =

 <code title="Render lib object">
 <input type="text" id="name" />
 <f:widget.autocomplete for="name" objects="{posts}" searchProperty="author">
 </code>
 <output>
 <input type="text" id="name" />
 the input field and the required JavaScript for the Ajax communication (see Resources/Private/Templates/ViewHelpers/Widget/Autocomplete/Index.html
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="objects" use="required"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="for" use="required"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="searchProperty" use="required"><xsd:annotation><xsd:documentation><![CDATA[]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="customWidgetId"><xsd:annotation><xsd:documentation><![CDATA[extend the widget identifier with a custom widget id]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="widget.link"><xsd:annotation><xsd:documentation><![CDATA[A view helper for creating Links to extbase actions within widets.

 = Examples =

 <code title="URI to the show-action of the current controller">
 <f:widget.link action="show">link</f:widget.link>
 </code>
 <output>
 <a href="index.php?id=123&tx_myextension_plugin[widgetIdentifier][action]=show&tx_myextension_plugin[widgetIdentifier][controller]=Standard&cHash=xyz">link</a>
 (depending on the current page, widget and your TS configuration)
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="additionalAttributes"><xsd:annotation><xsd:documentation><![CDATA[Additional tag attributes. They will be added directly to the resulting HTML tag.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="data"><xsd:annotation><xsd:documentation><![CDATA[Additional data-* attributes. They will each be added with a "data-" prefix.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="class"><xsd:annotation><xsd:documentation><![CDATA[CSS class(es) for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="dir"><xsd:annotation><xsd:documentation><![CDATA[Text direction for this HTML element. Allowed strings: "ltr" (left to right), "rtl" (right to left)]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="id"><xsd:annotation><xsd:documentation><![CDATA[Unique (in this file) identifier for this HTML element.]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="lang"><xsd:annotation><xsd:documentation><![CDATA[Language for this element. Use short names specified in RFC 1766]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="style"><xsd:annotation><xsd:documentation><![CDATA[Individual CSS styles for this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="title"><xsd:annotation><xsd:documentation><![CDATA[Tooltip text of element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="accesskey"><xsd:annotation><xsd:documentation><![CDATA[Keyboard shortcut to access this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="tabindex"><xsd:annotation><xsd:documentation><![CDATA[Specifies the tab order of this element]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="onclick"><xsd:annotation><xsd:documentation><![CDATA[JavaScript evaluated for the onclick event]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="name"><xsd:annotation><xsd:documentation><![CDATA[Specifies the name of an anchor]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="rel"><xsd:annotation><xsd:documentation><![CDATA[Specifies the relationship between the current document and the linked document]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="rev"><xsd:annotation><xsd:documentation><![CDATA[Specifies the relationship between the linked document and the current document]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="target"><xsd:annotation><xsd:documentation><![CDATA[Specifies where to open the linked document]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="addQueryStringMethod"><xsd:annotation><xsd:documentation><![CDATA[Method to be used for query string]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="action"><xsd:annotation><xsd:documentation><![CDATA[Target action]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="arguments"><xsd:annotation><xsd:documentation><![CDATA[Arguments]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="section"><xsd:annotation><xsd:documentation><![CDATA[The anchor to be added to the URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="format"><xsd:annotation><xsd:documentation><![CDATA[The requested format, e.g. ".html]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="ajax"><xsd:annotation><xsd:documentation><![CDATA[TRUE if the URI should be to an AJAX widget, FALSE otherwise.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="widget.paginate"><xsd:annotation><xsd:documentation><![CDATA[This ViewHelper renders a Pagination of objects.

 = Examples =

 <code title="required arguments">
 <f:widget.paginate objects="{blogs}" as="paginatedBlogs">
 use {paginatedBlogs} as you used {blogs} before, most certainly inside
 a <f:for> loop.
 </f:widget.paginate>
 </code>

 <code title="full configuration">
 <f:widget.paginate objects="{blogs}" as="paginatedBlogs" configuration="{itemsPerPage: 5, insertAbove: 1, insertBelow: 0, maximumNumberOfLinks: 10}">
 use {paginatedBlogs} as you used {blogs} before, most certainly inside
 a <f:for> loop.
 </f:widget.paginate>
 </code>

 = Performance characteristics =

 In the above examples, it looks like {blogs} contains all Blog objects, thus
 you might wonder if all objects were fetched from the database.
 However, the blogs are NOT fetched from the database until you actually use them,
 so the paginate ViewHelper will adjust the query sent to the database and receive
 only the small subset of objects.
 So, there is no negative performance overhead in using the Paginate Widget.]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="customWidgetId"><xsd:annotation><xsd:documentation><![CDATA[extend the widget identifier with a custom widget id]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="objects" use="required"><xsd:annotation><xsd:documentation><![CDATA[Object]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="as" use="required"><xsd:annotation><xsd:documentation><![CDATA[as]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="configuration"><xsd:annotation><xsd:documentation><![CDATA[configuration]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="widget.uri"><xsd:annotation><xsd:documentation><![CDATA[A view helper for creating URIs to extbase actions within widgets.

 = Examples =

 <code title="URI to the show-action of the current controller">
 <f:widget.uri action="show" />
 </code>
 <output>
 index.php?id=123&tx_myextension_plugin[widgetIdentifier][action]=show&tx_myextension_plugin[widgetIdentifier][controller]=Standard&cHash=xyz
 (depending on the current page, widget and your TS configuration)
 </output>]]></xsd:documentation></xsd:annotation><xsd:complexType mixed="true"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute type="xsd:string" name="addQueryStringMethod"><xsd:annotation><xsd:documentation><![CDATA[Method to be used for query string]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="action"><xsd:annotation><xsd:documentation><![CDATA[Target action]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="arguments"><xsd:annotation><xsd:documentation><![CDATA[Arguments]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="section"><xsd:annotation><xsd:documentation><![CDATA[The anchor to be added to the URI]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="format"><xsd:annotation><xsd:documentation><![CDATA[The requested format, e.g. ".html]]></xsd:documentation></xsd:annotation></xsd:attribute><xsd:attribute type="xsd:string" name="ajax"><xsd:annotation><xsd:documentation><![CDATA[TRUE if the URI should be to an AJAX widget, FALSE otherwise.]]></xsd:documentation></xsd:annotation></xsd:attribute></xsd:complexType></xsd:element></xsd:schema>
