XForms 2.0 support
Orbeon Forms 4.3
Here at the feature from XForms 2.0 and its XPath expression module that are available as of Orbeon Forms 4.3:
xf:varxf:repeatover sequences of atomic values and nodesdeprecation of
nodesetin favor ofrefmultiple MIPs of the same property affecting the same node
AVTs (Attribute Value Templates)
acceptattribute onxf:uploadxf:propertychild ofxf:dispatchelementiterateattribute on actionsxf:valid()function
Orbeon Forms 4.5
XForms 2.0 features added with Orbeon Forms 4.5:
xf:bind()function
Orbeon Forms 4.8
XForms 2.0 features added with Orbeon Forms 4.8:
caserefattribute onxf:switchThis allows storing the value of the currently-selected case to instance data.
case()functionThis function was already available as
xxf:case()in previous versions.
Orbeon Forms 2016.1
XForms 2.0 features added with Orbeon Forms 2016.1:
xf:submissionandxf:instanceJSON support.This allows receiving
application/jsoncontent. The JSON received is converted to an XML representation friendly to XPath expressions. This allows receiving data from JSON services and using it in your forms, including via Form Builder services.This also allows sending
application/jsoncontent, based on an XML representation.
xf:paramandxf:bodyonxf:actiontype attribute onxf:action` for types:text/javascript/application/javascript/javascripttext/xpath/application/xpath/xpath
Orbeon Forms 2017.1
XForms 2.0 features added with Orbeon Forms 2017.1:
nonrelevantattribute on<xf:submission>This deprecates the
relevantattribute.The values are
keep,remove, andempty.
Orbeon Forms 2019.1
XForms 2.0 features added with Orbeon Forms 2019.1:
targeton<xf:load>This deprecates the
xxf:targetattribute.
URI functions:
xf:uri-scheme($uri as xs:string) as xs:string?xf:uri-scheme-specific-part($uri as xs:string, $raw as xs:boolean) as xs:string?xf:uri-authority($uri as xs:string, $raw as xs:boolean) as xs:string?xf:uri-user-info($uri as xs:string, $raw as xs:boolean) as xs:string?xf:uri-host($uri as xs:string) as xs:string?xf:uri-port($uri as xs:string) as xs:integer?xf:uri-path($uri as xs:string, $raw as xs:boolean) as xs:string?xf:uri-query($uri as xs:string, $raw as xs:boolean) as xs:string?xf:uri-fragment($uri as xs:string, $raw as xs:boolean) as xs:string?xf:uri-param-names($uri as xs:string) as xs:string*xf:uri-param-values($uri as xs:string, $name as xs:string) as xs:string*
Orbeon Forms 2020.1
Features
XForms 2.0 features added with Orbeon Forms 2020.1:
xf:copyOrbeon Forms implements XForms 2.0 enhancements to
xf:copyincluding support for:xf:itemattributes and other node types
XPath 2
NOTE: While
xf:copyis an XForms 1.0 feature, Orbeon Forms didn't support it until version 2020.1.
Example of xf:copy attributes support
xf:copy attributes supportLet's say we an XML representation which proposes a discriminated union based on a type attribute. We have, in the data, either:
<label type="PredefinedButtonLabel"/>or:
<label type="CustomButtonLabel">
<name type="object">
<values type="object">
<en>Custom Button</en>
</values>
</name>
</label>With xf:copy, the selection is written as follows:
<xf:select1 ref="label" appearance="full">
<xf:item>
<xf:label>Predefined</xf:label>
<xf:copy ref="xf:attribute('type', 'PredefinedButtonLabel')"/>
</xf:item>
<xf:item>
<xf:label>Custom</xf:label>
<xf:copy
ref="
xf:attribute('type', 'CustomButtonLabel'),
if (@type = 'CustomButtonLabel') then
*
else
instance('my-custom-button-label-template')"/>
</xf:item>
</xf:select1>
<xf:input ref="label/name/values/en"/>The if ... then ... else pattern in the second xf:copy is there so that, in case the user has already selected a CustomButtonLabel and edited the value of the button label (here "Custom Button" initially), there will still be an exact match and the item shows as selected.
Orbeon Forms 2021.1
the
xforms-dialog-shown/xforms-dialog-hiddeneventsxf:parse()function
Remaining features
For what remains to be implemented, see the issues tagged "XForms 2.0".
Last updated