I am trying to understand the id attributes and need a little help with understanding and resolving an issue. In my structured document, i see this error id=<no value>, and am not sure how to resolve this. How do I define the ID value? Can you please briefly explain and answer the questions below. The screenshot is attached.
1: In an EDD file, when an attribute is defined, as Name: idref > ID Reference Optional, what does it mean when it is optional and what does it mean if it is required?
2: Similarly, for Attribute list> Name > UniqueID > Optional, what does UniqueID mean here?
I have read the pdf document on ID attributes but am still in need of clarification to make sure that I understand the concept correctly.
Please see the screenshot for the issue. I appreciate all the input.
Thanks in advance!
Hi Ashan Ahmad.
In the screenshot it looks as if you have creted a structured FameMaker document that has an Id attribute on the ttn-TableTitleNarrow element. Then you have updated your EDD to remove the Id attribute and re-imported it into your document. In the Attributes pod the red cross shows that the element contains an undefined attribute. To remove that,do the following:
Although these instructions will help you to remove the bad attribute. It may not be the result you are looking for? Go back into the EDD and check the definition of the Id attribute. Does it still exist? If not simply add the attribute definition to the ttn-TableTitleNarrow element definition. It should look like this:
With the structure view like this:
UniqueID is a special type of attribute where its value must be unique within a structured document or documents within a structured book. If you have two or more identical UniqueID values in the same document a validation error will be generated. Attributes of type UniqueID are most commonly used as part of the cross referencing mechanism in structured documents. In the example above the Id attribute is Optional so it is valid for the attribute to have no value assigned to it. If the attribute is Required, then it would cause a validation error if the Id did not have a value.
The IDReference attribute provides a way to point to the UniqueID type attribute on another element in the same document. We use this primarily for creating Cross references between elements in a document. You may define an XREF element for example and add an IDref attribute. When you add the XREF into your document FrameMaker will display a list of elements that can have an UniqueID along with a list of instances of that element which allows you to select the target for your XREF.
I hope that helps a little?
Thank you for such a thorough explanation and helping me resolve the issue. In the documents that I worked with, for some I noticed FM assigns an ID and for some it appeared as id=<no value>. This had me a bit worried; however, you have made things clear for me. I will apply the methodology you explained and give by feedback. One question that I had been thinking about is that in what cases we would have to insert the ID value ourselves? Do we ever insert the ID value by ourselves or does FM always assigns the ID value automatically.
Thank you. I really appreciate the response.
The default behaviour for optional id values is for FrameMaker to generate a unique id when you create a cross reference to that element. However if you are following an industry specification it may require ID values that follow a specific naming format. In that case you will have to type in a suitable value manually.
Another way to assign an id value is to use the keyboard shortcut Esc Shift+a Shift+i. That is a DITA specific shortcut, but it seems to work for any type of structured document. You could even use Esc Shift+a Shift+a which presents a dialog box so that you could apply several id values in one hit.
Required attributes must be set when you create a new element.
Let me know if you need any more details.
The problem now I am seeing is that Heading1 has assigned values for many places where the Heading1 element is used except few places where i am seeing <no=value>. Why is it that I am not seeing the ID value in few places and same goes for my element Heading2. Should I not see it in all places where Heading1 and Heading 2 element is used?
That's very difficult to say without testing the document. However having = <no value> isn't an error for an optional attribute. It's the expected display in the structure view.
Thank you Ian. Your responses have been helpful. Much appreciated!
Open the EDD file.
Find the element ttn-TableTitleNarrow
In the Attribute List set the Name: id UniqueID = OPTIONAL
Save the EDD file with the changes
Open the file that has the red x in the box.
File import Element Definitions to update the EDD
Do the Structure-->Validate thing again.
Thanks for the clear directions. I will try the way you have explained it as well. Appreciate the response.