XForms:根据 xf:repeat 中的当前元素名称从实例中获取值
XForms: get values from an instance based on the current element name in a xf:repeat
在下面的 XForm 中,我想 link xf:labels(以及最终其他 xforms 控件或值)到 'i-elementSchema' 实例中的元素。我无法找出正确的 XPath link 中的当前元素名称 xf:repeat 到架构中的匹配元素标签。我正在使用 XSLTForms。有什么想法吗?
完整的测试代码在这里:https://gist.github.com/wsalesky/30ca5c0d7b6f9fdc2b3a112a1a8594f9
XForms 模型:
<xf:model>
<xf:instance id="i-rec">
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<handDesc hands="">
<summary/>
<handNote xml:id="" scope="" script="" mode="" quality="" medium="">
<p about="" style=""/>
<persName ref="" role=""/>
<p/>
<placeName ref=""/>
</handNote>
</handDesc>
</TEI>
</xf:instance>
<xf:instance id="i-elementSchema">
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<summary name="summary" label="Summary"/>
<handNote name="handNote" label="Hand Note"/>
<p name="p" label="Paragraph"/>
<persName name="persName" label="Person Name"/>
<placeName name="placeName" label="Place Name"/>
</TEI>
</xf:instance>
</xf:model>
XForms UI:
<xf:repeat ref="instance('i-rec')//*:handDesc/*" id="handNote">
<div class="moveInput" draggable="true">
<xf:input ref=".">
<xf:label>
<xf:output value="instance('i-elementSchema')/descendant-or-self::*[@name = local-name(.)][1]/@label"/>
</xf:label>
</xf:input>
</div>
</xf:repeat>
在 Twitter 上回答,使用 current():
instance('i-elementSchema')/descendant-or-self::*[local-name() = local-name(current())]/@label
在下面的 XForm 中,我想 link xf:labels(以及最终其他 xforms 控件或值)到 'i-elementSchema' 实例中的元素。我无法找出正确的 XPath link 中的当前元素名称 xf:repeat 到架构中的匹配元素标签。我正在使用 XSLTForms。有什么想法吗?
完整的测试代码在这里:https://gist.github.com/wsalesky/30ca5c0d7b6f9fdc2b3a112a1a8594f9
XForms 模型:
<xf:model>
<xf:instance id="i-rec">
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<handDesc hands="">
<summary/>
<handNote xml:id="" scope="" script="" mode="" quality="" medium="">
<p about="" style=""/>
<persName ref="" role=""/>
<p/>
<placeName ref=""/>
</handNote>
</handDesc>
</TEI>
</xf:instance>
<xf:instance id="i-elementSchema">
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<summary name="summary" label="Summary"/>
<handNote name="handNote" label="Hand Note"/>
<p name="p" label="Paragraph"/>
<persName name="persName" label="Person Name"/>
<placeName name="placeName" label="Place Name"/>
</TEI>
</xf:instance>
</xf:model>
XForms UI:
<xf:repeat ref="instance('i-rec')//*:handDesc/*" id="handNote">
<div class="moveInput" draggable="true">
<xf:input ref=".">
<xf:label>
<xf:output value="instance('i-elementSchema')/descendant-or-self::*[@name = local-name(.)][1]/@label"/>
</xf:label>
</xf:input>
</div>
</xf:repeat>
在 Twitter 上回答,使用 current():
instance('i-elementSchema')/descendant-or-self::*[local-name() = local-name(current())]/@label