Created
November 30, 2023 21:52
-
-
Save avernet/28173b36789a236bc7b0ab0e402a6f7a to your computer and use it in GitHub Desktop.
Form using `xxf:json-to-xml()`
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<xh:html xmlns:xh="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms" | |
xmlns:xs="http://www.w3.org/2001/XMLSchema" | |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xmlns:ev="http://www.w3.org/2001/xml-events" | |
xmlns:xi="http://www.w3.org/2001/XInclude" | |
xmlns:xxi="http://orbeon.org/oxf/xml/xinclude" | |
xmlns:xxf="http://orbeon.org/oxf/xml/xforms" | |
xmlns:map="http://www.w3.org/2005/xpath-functions/map" | |
xmlns:array="http://www.w3.org/2005/xpath-functions/array" | |
xmlns:math="http://www.w3.org/2005/xpath-functions/math" | |
xmlns:exf="http://www.exforms.org/exf/1-0" | |
xmlns:fr="http://orbeon.org/oxf/xml/form-runner" | |
xmlns:saxon="http://saxon.sf.net/" | |
xmlns:sql="http://orbeon.org/oxf/xml/sql" | |
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" | |
xmlns:fb="http://orbeon.org/oxf/xml/form-builder"> | |
<xh:head> | |
<xh:title>Untitled Form</xh:title> | |
<xf:model id="fr-form-model" xxf:expose-xpath-types="true" xxf:analysis.calculate="true"> | |
<!-- Main instance --> | |
<xf:instance id="fr-form-instance" xxf:exclude-result-prefixes="#all" xxf:index="id"> | |
<form> | |
<section-1> | |
<grid-1> | |
<json>{ | |
"author": "Yours Truly", | |
"date": "2023-11-30", | |
"title": "The Last Book" | |
}</json> | |
<control-2/> | |
<control-1/> | |
</grid-1> | |
</section-1> | |
</form> | |
</xf:instance> | |
<!-- Bindings --> | |
<xf:bind id="fr-form-binds" ref="instance('fr-form-instance')"> | |
<xf:bind id="section-1-bind" name="section-1" ref="section-1"> | |
<xf:bind id="grid-1-bind" ref="grid-1" name="grid-1"> | |
<xf:bind id="json-bind" ref="json" name="json"/> | |
<xf:bind id="control-2-bind" ref="control-2" name="control-2" | |
calculate="xxf:json-to-xml($json)/json/author" | |
readonly="false()"/> | |
<xf:bind id="control-1-bind" ref="control-1" name="control-1" type="xf:date" | |
calculate="xxf:json-to-xml($json)/json/date"/> | |
</xf:bind> | |
</xf:bind> | |
</xf:bind> | |
<!-- Metadata --> | |
<xf:instance id="fr-form-metadata" xxf:readonly="true" xxf:exclude-result-prefixes="#all"> | |
<metadata> | |
<application-name>a</application-name> | |
<form-name>a</form-name> | |
<title xml:lang="en">Untitled Form</title> | |
<description xml:lang="en"/> | |
<created-with-version>2022.1-SNAPSHOT PE</created-with-version> | |
<email> | |
<templates> | |
<template name="default"> | |
<headers/> | |
<exclude-from-all-control-values/> | |
</template> | |
</templates> | |
<parameters/> | |
</email> | |
<grid-tab-order>default</grid-tab-order> | |
<library-versions> | |
<orbeon>1</orbeon> | |
<app>12</app> | |
</library-versions> | |
</metadata> | |
</xf:instance> | |
<!-- Attachments --> | |
<xf:instance id="fr-form-attachments" xxf:exclude-result-prefixes="#all"> | |
<attachments/> | |
</xf:instance> | |
<!-- All form resources --> | |
<xf:instance xxf:readonly="true" id="fr-form-resources" xxf:exclude-result-prefixes="#all"> | |
<resources> | |
<resource xml:lang="en"> | |
<json> | |
<label>JSON</label> | |
<hint/> | |
</json> | |
<control-2> | |
<label>Author</label> | |
<hint/> | |
</control-2> | |
<control-1> | |
<label>Date</label> | |
<hint/> | |
</control-1> | |
<section-1> | |
<label>Untitled Section</label> | |
</section-1> | |
</resource> | |
</resources> | |
</xf:instance> | |
</xf:model> | |
</xh:head> | |
<xh:body> | |
<fr:view> | |
<fr:body xmlns:xbl="http://www.w3.org/ns/xbl" xmlns:p="http://www.orbeon.com/oxf/pipeline" | |
xmlns:oxf="http://www.orbeon.com/oxf/processors"> | |
<fr:section id="section-1-section" bind="section-1-bind"> | |
<xf:label ref="$form-resources/section-1/label"/> | |
<fr:grid id="grid-1-grid" bind="grid-1-bind"> | |
<fr:c y="1" x="1" w="6" h="2"> | |
<xf:textarea id="json-control" bind="json-bind" appearance="xxf:autosize"> | |
<xf:label ref="$form-resources/json/label"/> | |
<xf:hint ref="$form-resources/json/hint"/> | |
<xf:alert ref="$fr-resources/detail/labels/alert"/> | |
</xf:textarea> | |
</fr:c> | |
<fr:c y="1" x="7" w="6"> | |
<xf:output id="control-2-control" bind="control-2-bind"> | |
<xf:label ref="$form-resources/control-2/label"/> | |
<xf:hint ref="$form-resources/control-2/hint"/> | |
<xf:alert ref="$fr-resources/detail/labels/alert"/> | |
</xf:output> | |
</fr:c> | |
<fr:c x="7" y="2" w="6"> | |
<fr:date xmlns:xxbl="http://orbeon.org/oxf/xml/xbl" | |
xmlns:DateSupport="java:org.orbeon.xbl.DateSupportJava" | |
id="control-1-control" | |
bind="control-1-bind"> | |
<xf:label ref="$form-resources/control-1/label"/> | |
<xf:hint ref="$form-resources/control-1/hint"/> | |
<xf:alert ref="$fr-resources/detail/labels/alert"/> | |
</fr:date> | |
</fr:c> | |
</fr:grid> | |
</fr:section> | |
</fr:body> | |
</fr:view> | |
</xh:body> | |
</xh:html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment