Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpath 如何使用预定义的可见性、控件名称和默认值创建Orbeon自定义控件XBL?_Xpath_Orbeon_Xforms_Formbuilder_Xbl - Fatal编程技术网

Xpath 如何使用预定义的可见性、控件名称和默认值创建Orbeon自定义控件XBL?

Xpath 如何使用预定义的可见性、控件名称和默认值创建Orbeon自定义控件XBL?,xpath,orbeon,xforms,formbuilder,xbl,Xpath,Orbeon,Xforms,Formbuilder,Xbl,我用一些预定义的值创建了一个自定义控件隐藏文本框,我想在其中设置visibility=false,controlName=Mycustom,默认值=这是我在XBL文件中的自定义控件。因此,每当我们使用Orbeon Form Builder中的自定义控件时,它都会附带所有默认值,而无需设置任何内容 XBL: 通过以上更改,现在它的工作控件以一些默认值隐藏 你能让我知道如何放置条件吗 properties-local.xml: 在这里,我想覆盖这个成功消息,如果它从备份正确配置。如果它的值为null

我用一些预定义的值创建了一个自定义控件隐藏文本框,我想在其中设置visibility=false,controlName=Mycustom,默认值=这是我在XBL文件中的自定义控件。因此,每当我们使用Orbeon Form Builder中的自定义控件时,它都会附带所有默认值,而无需设置任何内容

XBL:

通过以上更改,现在它的工作控件以一些默认值隐藏

你能让我知道如何放置条件吗 properties-local.xml:

在这里,我想覆盖这个成功消息,如果它从备份正确配置。如果它的值为null,则希望显示OOTB messagedon not override

更新2

Hybris的综合变化。以下是我在Hybris中所做的更改

创建XBL>orbeon>custom>custom.XBL
问题:-当我们选择自定义控件时,它将绑定而没有任何标签/消息/可见性等。但如果我刷新左侧控制面板,则标签将开始出现在窗体上。但是仍然没有设置默认消息。

让我们逐一查看您提到的项目:

visibility=false–我想您指的是XForms中的相关属性,而不是visibility属性。FormBuilder调用此可见性,因为它就是这样,但在XForms中,该属性是相关的。这可以通过在a中设置。 controlName=Mycustom–不能在XBL中设置控件的id。顺便说一句,当使用FormBuilder时,XForms id是从FormBuilder中的表单作者定义的控件名推断出来的。id由使用该控件的人设置,而不是由定义它的人设置,否则,首先,这将阻止您在表单中拥有该控件的多个实例。 默认值=这是我的自定义控件–如上面的1所示,您可以使用。请注意添加的单引号,因为xxf:default的值是一个XPath表达式。
如果有人能回答这个问题,这将是一个很大的帮助。谢谢你的回答。我已经按照你的建议试过了,但不起作用。请找到我的最新帖子!!当您在源代码中添加多个这样的元素时,所有属性都应该位于单个元素上。如果有用的话,你会告诉我们的。谢谢,它工作得很好。我已经为sameIs编辑了我的帖子,可以将If条件放在进程中吗?@Chandrasekharararajukallepalli是的,进程中可以有条件。请参阅上的部分。
<xbl:xbl 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: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:fr="http://orbeon.org/oxf/xml/form-runner"
         xmlns:saxon="http://saxon.sf.net/"
         xmlns:xbl="http://www.w3.org/ns/xbl"
         xmlns:exf="http://www.exforms.org/exf/1-0"
         xmlns:xxbl="http://orbeon.org/oxf/xml/xbl">

     <metadata xmlns="http://orbeon.org/oxf/xml/form-builder">
        <display-name lang="en">Epson Custom Controls</display-name>
    </metadata>

    <xbl:binding id="fr-custom" element="fr|custom" >
        <metadata xmlns="http://orbeon.org/oxf/xml/form-builder">
            <display-name lang="en">My Custom Control</display-name>
            <icon lang="en">
                <small-icon>/forms/orbeon/builder/images/input.png</small-icon>
                <large-icon>/forms/orbeon/builder/images/input.png</large-icon>
            </icon>
            <templates>
                <bind xxf:whitespace="trim"/>
                <view>
                    <xf:input id="myCustom" ref="" xmlns="">
                       <xf:label>My Custom lable</xf:label>
                        <xf:hint ref=""/>
                        <xf:help ref=""/>
                        <xf:alert ref=""/>
                    </xf:input>
                </view>
            </templates>
        </metadata>
    </xbl:binding>
</xbl:xbl>
        <templates>
            <bind xxf:whitespace="trim" relevant="false()" xxf:default="'This is my custom control'"/>
            <view>
                <xf:input id="myCustom" ref="" xmlns="">
                   <xf:label>Success Message</xf:label>
                    <xf:hint ref=""/>
                    <xf:help ref=""/>
                    <xf:alert ref=""/>
                </xf:input>
            </view>
        </templates>
 <property as="xs:string"  name="oxf.fr.detail.process.save-final-custom.*.*">
            require-uploads
            then validate-all
            then save
            if({xxf:instance('fr-form-instance')//customMessage} != null)
              {
                then success-message(message = "{xxf:instance('fr-form-instance')//customMessage}")
              }
            recover error-message("database-error") 
     </property>