- From: Jostein Austvik Jacobsen <josteinaj@gmail.com>
- Date: Thu, 9 Dec 2010 12:24:12 +0100
- To: Stefanie Haupt <st.haupt@gmail.com>
- Cc: xproc-dev@w3.org
- Message-ID: <AANLkTimCOtS5H8oK_wXY+JEZ61gsiaXxwoEp7CxOm5_J@mail.gmail.com>
I solved my problem by using p:http-request instead:
<?xml version="1.0" encoding="UTF-8"?>
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:c="
http://www.w3.org/ns/xproc-step"
version="1.0">
<p:input port="source"/>
<p:output port="result"/>
<p:try>
<p:group>
<p:identity>
<p:input port="source">
<p:inline>
<c:request method="GET" detailed="true"
override-content-type="text/html; charset=utf-8"/>
</p:inline>
</p:input>
</p:identity>
<p:add-attribute match="c:request" attribute-name="href">
<p:with-option name="attribute-value"
select="'doesNotExist'"/>
</p:add-attribute>
<p:http-request/>
</p:group>
<p:catch>
<p:identity>
<p:input port="source">
<p:inline>
<error/>
</p:inline>
</p:input>
</p:identity>
</p:catch>
</p:try>
</p:declare-step>
However, it's still strange that p:data wouldn't work...
Regards
Jostein
2010/12/9 Jostein Austvik Jacobsen <josteinaj@gmail.com>
> Well, the p:data can't stand by itself. However if I put it in a
> p:variable, it's actually caught:
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
> xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0">
> <p:input port="source"/>
> <p:output port="result"/>
>
> <p:try>
> <p:group>
> <p:variable name="foo" select=".">
> <p:data href="doesNotExist"/>
> </p:variable>
> <p:identity>
> <p:input port="source">
> <p:inline>
> <ok/>
> </p:inline>
> </p:input>
> </p:identity>
> </p:group>
> <p:catch>
> <p:identity>
> <p:input port="source">
> <p:inline>
> <error/>
> </p:inline>
> </p:input>
> </p:identity>
> </p:catch>
> </p:try>
>
> </p:declare-step>
>
>
> Regards
> Jostein
>
> 2010/12/9 Stefanie Haupt <st.haupt@gmail.com>
>
> Hi,
>> I'm just guessing here, but I think it's because you wrapped it into an
>> p:identity step. I'd try without and re-run.
>>
>> Regards,
>> Stefanie
>>
>>
>> On Thu, Dec 9, 2010 at 10:49 AM, Jostein Austvik Jacobsen <
>> josteinaj@gmail.com> wrote:
>>
>>> Hi.
>>>
>>> I'm having a problem catching the XD0029 dynamic error thrown from a
>>> p:data where the referenced file does not exist. I'm using oXygen 12.0 with
>>> the bundled Calabash. Here's the pipeline:
>>>
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
>>> xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0">
>>> <p:input port="source"/>
>>> <p:output port="result"/>
>>>
>>> <p:try>
>>> <p:group>
>>> <p:identity>
>>> <p:input port="source">
>>> <p:data href="doesNotExist"/>
>>> </p:input>
>>> </p:identity>
>>> </p:group>
>>> <p:catch>
>>> <p:identity>
>>> <p:input port="source">
>>> <p:inline>
>>> <c:data/>
>>> </p:inline>
>>> </p:input>
>>> </p:identity>
>>> </p:catch>
>>> </p:try>
>>>
>>> </p:declare-step>
>>>
>>>
>>> "err:XD0029 : XProc error err:XD0029 It is a dynamic error if the
>>> document referenced by a p:data element does not exist, cannot be accessed,
>>> or cannot be encoded as specified. /my/local/filesystem/path/doesNotExist
>>> (No such file or directory)"
>>>
>>> How come the p:try doesn't catch this error?
>>>
>>> Regards
>>> Jostein
>>>
>>
>>
>>
>> --
>> Stefanie Haupt, M.A.
>>
>>
>
Received on Thursday, 9 December 2010 11:25:06 UTC