[Framers] Read-write rules for graphics

Roger Shuttleworth shuttie27 at gmail.com
Wed Sep 11 07:44:29 PDT 2019


Hello Lynne and Tino

Thank you for your replies. My apologies for not getting back to you 
sooner. I have been trying some other approaches without much success.

To answer Lynne's first question: No, FM11 is my personal version. The 
investigation I am doing is for a charity, so there is little hope of 
any cash - and even if there were, FM11 up till now has met my needs, 
and I don't really want to learn a whole new version.

Another apology: I misspoke regarding the "href" attribute, which was in 
fact a required *string* and not an id.

According to Tino's suggestion, I have tried using a very simple rule:

element "image" {
   is fm graphic element;
   attribute "file" is fm property file;
}

I have a very simple document consisting of a title and a single 
paragraph containing some text and an anchored frame at insertion point, 
with one referenced graphic. I changed the "href" attribute to Optional 
in the EDD, and added no attribute values at all. I get the following XML:

<p><image href = "" height="1.167in" width="1.028in" 
graphicname="1778433278"  />This is some text</p>

I have no idea why the XML contains a "graphicname" attribute, since 
this does not exist in the FM document or the rules.

If I change the anchored frame to Run into Paragraph, aligned Left, the 
XML is identical.

Changing the EDD so that the InitialObjectFormat for <image> is either 
an anchored frame or an imported graphic file makes no difference: same XML.

Opening the XML in FM not surprisingly generates an error message in the 
console: Error importing graphic for element (image).

Adding a subrule,  attribute "align" is fm property alignment; makes no 
difference.

Even more strange: If I manually add an href value and then export XML, 
the href value is exported, e.g.:

<image href = "Graphics/think.png" height="1.167in" width="1.028in" 
graphicname="2109691528"  />

But when I open this XML in FM, the <image> element is dropped 
altogether and the console has a message, "Error importing graphic for 
element (image)."

Maybe I'm missing something very obvious...

Roger

P.S. I don't want to take up your time; I'm resigned to fiddling and 
researching until I conquer this!


On 09/09/2019 20:50, Lynne A. Price wrote:
> On 9/9/2019 11:15 AM, Roger Shuttleworth wrote:
>> Using FM11.
>
> Roger,
>    Have you tried a later version of FM?
>
> ...
> All my images are imported by reference, and the anchored frames 
> contain only one image each.
> ...
>
>> 1. The "href" attribute, which is defined in my EDD as arequired id,
>>    exports as an empty string. I need it to populate with the path to
>>    my referenced graphic. You will note that I have commented out one
>>    line of the rules, but it makes no difference. Do I have to specify
>>    the "href" value in FM, or should it pick up the filename
>>    automatically when exporting?
>
> I'll respond to your other questions after I've had time to do some 
> relevant testing, but why do you want the href attribute stored in FM? 
> And why do you want it to be a unique ID? How is it declared in the 
> DTD? Pathnames contain characters (particularly slashes and possibly 
> spaces) that are not permitted in ID attributes in XML. Furthermore, I 
> don't know if your documents ever contain multiple copies of the same 
> graphic file, but if you use the filename as an ID, you preclude that 
> possibility. Structured cross-references do use ID attributes for 
> cross-references, but cross-references for images typically refer to 
> something like a container that includes a figure number rater than 
> the anchored frame itself.
>
> FM should export the filename to the appropriate attribute regardless 
> of any value stored in FM. The only reason I can think of for 
> importing the filename would be to display it in the FM document as a 
> cross-reference to the graphic element. Do you have such a requirement?
>
>     --Lynne
>


More information about the Framers mailing list