내가 내 양식에서 일부 인수를 전달할 수있는 XBL 파일이, 이제 가정 해 봅시다 :색슨 다루기 : 평가 예외
<xf:model>
<xf:action id="populate-data-binding">
<xf:action context="instance('sub')"
ev:event="xforms-submit-done"
ev:observer="my-submission">
<xf:action>
<xf:var as="xs:string" name="control-value" value="saxon:evaluate(instance('arg1'))"/>
<xf:var as="xs:string" name="control-name" value="saxon:evaluate(instance('arg2'))"/>
<xf:setvalue ref="xxf:instance('fr-form-instance')//*[name() = $control-name]"
value="$control-value"/>
</xf:action>
</xf:action>
</xf:model>
문제 :
가<my-xbl arg1='' arg2=''>
</my-xbl>
<xf:input ref='@arg1'/>
<xf:input ref='@arg2'/>
은 그 때 나는 이런 식으로 뭔가를 arg1
이 빈 문자열 인 경우 (즉, 내 양식에서 제어 설정을 누를 때 arg1
필드를 건너 뛰고 빈 상태로두면) 내 양식이 충돌합니다. ''
또는 빈 문자열 (asd, q, anything)을 삽입 할 때 arg1
은 모두 정상입니다. 그래서 지금은 따옴표 문제 (조건이 ''
사이에 있어야 내가 내부에 따옴표를 넣을 수 없습니다) 분명히 있기 때문에, 그것은 작동하지 않습니다
<xf:var as="xs:string" name=".." value="if(@arg1 ='null') then 'asd'
else 'saxon:evaluate(instance('arg1'))'/>
처럼 뭔가를하고 다른 아마 뭔가 싶습니다. 누군가가이 문제를 해결하도록 도울 수 있습니까? 미리 감사드립니다.
UPDATE :
내가 조금 unprecise이었다고 생각한다. 일을 명확하게하기 위해 arg1
은 내 양식에 xf:input
의 ID입니다. 양식이로드되면 REST 서비스를 호출하고 (이 작업을 한 번 수행하면 Event xforms-model-construct-done behaviour) 데이터가 전송됩니다. 이제 xf : inputs에 데이터를 채우고 싶습니다. 위의 코드는 매우 잘 수행합니다. 내 양식에 내가 컨트롤의 기본 설정에 갈 때 문제가 지금보다 같은
<my-xbl arg1 = '' arg2 = '' ... arg19 = '' arg20 = ''/>
보이는, 내 XBL에 내가 매개 변수의 많은뿐만 아니라 arg1
, arg2
을 가지고있다, 나는 모든 paraemters arg1...20
를 다 채우실 필요 . 나는 내가 필요한 사람들 만 채우고 싶다. 보통 3 ~ 4 개이고 나머지는 비워 둡니다. 문제는 내가 할 수 없다는 것입니다. 왜냐하면 saxon : evalute가 인수가 null 인 경우 예외를 throw하기 때문에 내 양식이 충돌하고 그것이 발생하기 때문입니다.
(또한 모든 것을 언급,하지만 난 그것을 여기에 관련된 생각하지 않습니다하지만 당신이 내 위의 코드를 이해하는 데 도움이 될 수 있습니다 : 실시간으로, arg2
는 xf:input
하지만 arg1
의 ID는 웹 서비스에 자원하는 경로 같은입니다 , fe arg2 = "'firstname'"
내 xf : 입력 및 arg1 =" //CUSTOMER/FIRSTNAME"
(따옴표 없음)을 참조하고 내 REST 서비스 URL은 http://www.thomas-bayer.com/sqlrest/CUSTOMER/2/
입니다.이 방법은 xf : 인 id 'firstname'
을 입력 할 수 있습니다. 전체 이름 웹 서비스에서 가져온 데이터입니다. 그런 다음 다시 arg4는 'lastname'
이고 arg3은 //CUSTOMER/LASTNAME
이 될 것입니다. 내가 말했듯이 여기서는 관련이 없다고 생각하십시오.)
그래서 비어있는 값을 확인하고 코드가 나를 도와 줘야한다고 생각합니다. 불행히도 작동하지 않습니다. 내 양식이 더 이상 충돌하지 않지만 데이터가 xf:inputs
으로 채워지지 않습니다. 어쩌면이 오해 때문일까요? 감사.
이와 같이 추상적으로 파악하기가 약간 어렵습니다. 살펴볼 수있는 최소한의 예를 제공 할 수 있습니까? – ebruchez
나는 실제로 그것을 스스로 해결할 수 있었지만, 나는 이것을 해결하기 위해 약간의 추가 orbeon 지식이 필요하다고 생각했다. 그러나 당신의 대답 (그리고 몇몇 이전의 것들)은 나를 도왔다. 감사합니다 – pzeszko
다행 당신이 그것을 알아 냈어! – ebruchez