Hi,
Thanks for sharing your bcf.
I've handled graphics a bit differently in the past. Is there a reason that you are specifying @sourcetype? You could treat graphics like regular elements and that may get around the error.
Example:
<locnrule elementname="graphic" expr="concat(substring(/task/@id,1,1),'/',substring(/task/@id,2,1),'/',substring(/task/@id,3,1),'/',substring(/task/@id,4,2),'/',substring(/task/@id,6,1),'/',substring(/task/@id,1,8))"/>
When you use @sourcetype="graphic", Arbortext is calling the dcf file to see what defines as a graphic. I don't think it is inspecting the surrounding XML at all. It's working at an application/rules level. It makes sense that you cannot use @sourcetype and @expr together.
Alternatively, I've used ACL to get the correct location when using @sourcetype.
Example:
<locnhook sourcetype="graphic" type="acl">
<![CDATA[ dms::set_burst_hook_value(burst_hooks::generate_graphic_path());
]]>
</locnhook>
In this example, generate_graphic_path() is an ACL function that gets the locatin based on the XML. It's a bit more work, but it allows you to use @sourcetype and base the location off of the XML context.
Hope that helps!
-Jeff