Adobe 65030365 - FrameMaker - PC Developer's Manual

Structure application developer's guide
Hide thumbs Also See for 65030365 - FrameMaker - PC:
Table of Contents

Advertisement

Quick Links

Advertisement

Table of Contents
loading

Summary of Contents for Adobe 65030365 - FrameMaker - PC

  • Page 2 Adobe, the Adobe logo, Acrobat, Acrobat Reader, Adobe Type Manager, ATM, Display PostScript, Distiller, Exchange, Frame, FrameMaker, FrameViewer, InstantView, and PostScript are trademarks of Adobe Systems Incorporated. Apple, PowerBook, QuickTime, Mac, Macintosh and Power Macintosh are trademarks of Apple Computer, Inc., registered in the United States and other countries. HP-UX is a registered trademark of Hewlett-Packard Company.
  • Page 3: Table Of Contents

    Contents Before You Begin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xv Part I Developing a FrameMaker structure application Chapter 1 What’s New in FrameMaker - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3...
  • Page 4 Markup documents..... 18 Equations ......20 FrameMaker documents .
  • Page 5 Specifying filename extensions ... 56 Specifying a structure API client ... 66 Specifying a FrameMaker template ..57 Specifying the character encoding for SGML files Specifying an SGML declaration .
  • Page 6 Read/write rules and the new DTD ..105 SGML declarations ....107 Creating a DTD from an EDD ... 106 Log files for a translated EDD .
  • Page 7 Attributes in a prefix or suffix rule ..162 Setting minimum and maximum limits on properties When to use an autonumber, prefix or suffix, or first or last rule......162 Debugging text format rules .
  • Page 8 Chapter 14 Read/Write Rules and Their Syntax - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 209 In this chapter .
  • Page 9 Chapter 17 Translating Entities and Processing Instructions - - - - - - - - - 247 In this chapter ......247 Translating SDATA entities as FrameMaker reference elements .
  • Page 10 General import and export of graphic elements . Omitting representation of graphic properties in markup ......312 On export to markup .
  • Page 11 Using markup attributes and FrameMaker Discarding non-element FrameMaker markers . properties to identify markers ... . 338 Chapter 23 Translating Conditional Text - - - - - - - - - - - - - - - - - - - - - - - - - - - 341 In this chapter .
  • Page 12 export dpi is ......387 is fm table part element ....436 export to file .
  • Page 13 Appendix A Conversion Tables for Adding Structure to Documents ..471 How a conversion table works ... . . 471 Providing an attribute for an element ..479 Using a qualifier with an element .
  • Page 14 Technical Steps in FrameMaker Application Typical Application Development Scenarios.538 Development ......529 Conclusions ......542 Glossary .
  • Page 15: Before You Begin

    Before You Begin This manual is for anybody who develops structured FrameMaker templates and XML or SGML applications. It is not for end users who author structured documents that use such templates and applications. XML and SGML FrameMaker can read and write XML (Extensible Markup Language) or SGML (Standard Generalized Markup Language) documents.
  • Page 16 • A structured template • Read/Write rules (described in this manual) • An XML and SGML API client (if necessary) developed with the Frame Developer’s Kit (FDK) Prerequisites The following topics, which are outside the scope of this manual, are important for you to understand before you try to create a structured template or structure application: •...
  • Page 17 - A comparison of FrameMaker concepts and XML and SGML - Details of assembling the pieces of an application into a whole • Part II, “Working with an EDD” Part II is for developers of a FrameMaker structured template. It contains information on how you use an element definition document (EDD) to define elements and determine their formatting for your documents.
  • Page 18 how to use the FDK to work with structured documents. To make advanced modifications to the software’s default translation behavior, refer to the Structure Import/Export API Programmer’s Guide.) • FDK Programmer’s Reference is a reference for the functions and objects described in the FDK Programmer’s Guide.
  • Page 19: Part I Developing A Framemaker Structure Application

    Part I Developing a FrameMaker structure application Part I provides basic information for developing SGML applications, manual including: • Chapter 2, “Structure Application Basics” Describes situations that require a structure application. Also contains a high-level description of application creation. • Chapter 3, “A General Comparison of Markup and FrameMaker Documents”...
  • Page 20 Developing a FrameMaker structure application...
  • Page 21: Chapter 1 What's New In Framemaker

    What’s New in FrameMaker This chapter describes new additions to FrameMaker that pertain to the development and use of structured applications. What’s new in FrameMaker 7.1 FrameMaker 7.1 introduces several changes in import and export of XML documents. Important: None of these changes affect import or export of SGML documents. The following sections briefly describe the new FrameMaker 7.1 functionality and provide links to more complete descriptions.
  • Page 22: Priority Of Variable Definitions

    W h a t ’ s n e w i n F r a m e M a k e r 7 . 0 FrameMaker 7.1 preserves the original file name. If you save an imported XML document, the document is saved as XML rather than as a FrameMaker document. Furthermore, FrameMaker locks an open XML document so that no other user can change it, with FrameMaker or with another application, until it is closed.
  • Page 23: Application Development

    W h a t ’ s n e w i n F r a m e M a k e r 7 . 0 Application development Because of the differences between SGML and XML, you must specify which structure applications are for SGML and which are for XML. For XML structure applications you can specify how an application manages: •...
  • Page 24: New Starter Kits

    W h a t ’ s n e w i n F r a m e M a k e r 7 . 0 For more information, see Chapter 21, “Translating Variables and System Variable Elements.” New starter kits FrameMaker 7.0 includes a new starter kit for XHTML, and an updated kit for DocBook 4.1 (SGML) and 4.1.2 (XML).
  • Page 25: Chapter 2 Structure Application Basics

    Structure Application Basics This chapter provides an introduction to structure application development using FrameMaker. The chapter examines some of the reasons you might be using markup data and FrameMaker together and explains how those reasons affect the structure application you develop. The chapter also provides high-level information about creating that application.
  • Page 26: Can You Simplify When Translating In Only One

    S t r u c t u r e a p p l i c a t i o n s c e n a r i o s For example, your company may have a large SGML document database of parts information from which it periodically needs to produce catalogs.
  • Page 27: Structure Application Development

    S t r u c t u r e a p p l i c a t i o n d e v e l o p m e n t modifying those documents. If you start without a model on either side, however, you have the freedom to design the EDD and the DTD with its counterpart in mind.
  • Page 28 S t r u c t u r e a p p l i c a t i o n d e v e l o p m e n t An SGML document instance A FrameMaker document and its and its DTD <chapter><head>Summary of Transportation 2000 Plan Elements...
  • Page 29: The Starting Point: An Edd Or Dtd

    S t r u c t u r e a p p l i c a t i o n d e v e l o p m e n t The starting point: an EDD or DTD Your end users need a starting point that describes the structure of documents they’ll create or edit.
  • Page 30: How You Modify The Translation

    S t r u c t u r e a p p l i c a t i o n d e v e l o p m e n t example, by default FrameMaker assumes a CALS model for tables. These assumptions may or may not match your actual DTD.
  • Page 31: Structure Descriptions

    A General Comparison of Markup and FrameMaker Documents Markup data and FrameMaker documents use models for structured documents that are sometimes similar and sometimes substantially different. This chapter describes the similarities and differences that you should understand before you can create a structure application.
  • Page 32: Elements

    E l e m e n t s Before its document instance, a markup document always includes either all the declarations or a reference to them. Rather than requiring that all of the declarations in a DTD be included in each markup document, the XML and SGML standards allow for the declarations to be stored separately and referenced from the document.
  • Page 33: Framemaker Element Types

    E l e m e n t s FrameMaker element types A large proportion of the elements in a structured FrameMaker document are defined to include text, child elements, or both. FrameMaker has several additional element types that represent constructs in a document for which the software has special authoring tools. These element types are for •...
  • Page 34: Element Declarations And Definitions

    A t t r i b u t e s Element declarations and definitions Each element definition or declaration in both markup data and in FrameMaker contains the element’s name and information about appropriate content for that element. FrameMaker element definitions also contain appropriate formatting for the content. In markup data, an element’s name is its generic identifier;...
  • Page 35: Entities

    E n t i t i e s In FrameMaker, the attributes for an element are a part of the definition of the element itself. In XML or SGML, the attributes for an element occur separately in an attribute definition list declaration (ATTLIST) in the DTD.
  • Page 36: Documents

    D o c u m e n t s Special characters SGML doesn’t allow you to enter certain characters or sequences of characters directly as data characters in an SGML document. This can happen, for example, if the character is not in the character set of the SGML document. In FrameMaker these might be either variables or characters in a particular font.
  • Page 37: Framemaker Documents

    M u l t i p l e - f i l e d o c u m e n t s FrameMaker documents Since FrameMaker is a WYSIWYG tool, a FrameMaker document is organized differently than a markup document. A FrameMaker document contains information specified in the template from which it was created, along with the data of the document.
  • Page 38: Graphics

    G r a p h i c s FrameMaker format rules can be defined hierarchically. For example, you can say that the font family and size for Section elements are Times 12pt and for MyTab table elements they are Helvetica 12pt. Later, you can say that the Fnote footnote element is 9pt. Since you did not specify the font family for Fnote, it is Times if it occurs in a Section element, but Helvetica if it occurs in a MyTab element.
  • Page 39: Tables

    T a b l e s Tables FrameMaker has a complex facility for creating and manipulating tables within a FrameMaker document, including several special element types for use in your EDD. Tables have parts such as a title, body, rows, and cells. Markup data doesn’t have a standard mechanism for representing tables.
  • Page 40: Processing Instructions

    P r o c e s s i n g i n s t r u c t i o n s • FrameMaker represents external cross-references in XML with a variation of the ID/ IDREF model. Instead of an IDREF attribute, it uses a srcfile attribute whose value identifies the file containing the source element as well as the value of its ID attribute.
  • Page 41: Chapter 4 The Sgml And Framemaker Models

    The SGML and FrameMaker Models Before building a structure application that is designed to work with SGML, you should understand the specific differences between SGML and the FrameMaker document model. For a discussion about markup in general, see Chapter 3, “A General Comparison of Markup and FrameMaker Documents.”...
  • Page 42: Unsupported Optional Sgml Features

    U n s u p p o r t e d o p t i o n a l S G M L f e a t u r e s attempt to preserve the fact that information was tagged as conditional text in a FrameMaker document or that it occurred in a marked section in an SGML document.
  • Page 43: Namespace Declaration

    The XML and FrameMaker Models5 Before building a structure application that is designed to work with XML, you should understand the specific differences between XML and the FrameMaker document model. For a discussion about markup in general, see Chapter 3, “A General Comparison of Markup and FrameMaker Documents.”...
  • Page 44: Rubi Text

    R u b i t e x t • When a namespace is declared in the DTD, but is not declared in any element, the structure view shows the namespace as a valid attribute with no value. When you export the FrameMaker document to XML, the namespace information is written to the XML.
  • Page 45: Multiple Attribute Lists For An Element

    U n i c o d e a n d c h a r a c t e r e n c o d i n g s refer to the online manual, FrameMaker Character Sets and note the reserved characters in the standard character set.
  • Page 46: Framemaker Display Encodings

    U n i c o d e a n d c h a r a c t e r e n c o d i n g s directory. Once you install a new encoding, you can refer to it the same as you refer to the other export encodings.
  • Page 47: Chapter 6 Creating A Structure Application

    Creating a Structure Application This chapter describes the major tasks you’ll perform to create a structure application and describes the pieces your application might contain. Much of your work in creating an application involves writing read/write rules to modify the software’s default behavior. Part III, “Translating between markup data and FrameMaker,”...
  • Page 48: The Development Process

    T h e d e v e l o p m e n t p r o c e s s The development process As a structure application developer, your primary task is to modify the default translation behavior of FrameMaker to fit the circumstances of your application. This section gives an overview of the steps used to create a structure application and to deliver that application to your end users.
  • Page 49 T h e d e v e l o p m e n t p r o c e s s Consider main design issues. (1) Set up development environment. (2) Do you have a DTD as your starting point? Do you have an existing EDD as your starting...
  • Page 50 T h e d e v e l o p m e n t p r o c e s s Once FrameMaker is properly installed, you need to tell it where to find rules you’ll write and other information it may need. Collect this information in an application definition that you can associate with the EDD or the markup document element.
  • Page 51: Task 2. Getting Sample Documents

    T h e d e v e l o p m e n t p r o c e s s • writes notation declarations for use with graphics and equations and produces comments in the DTD corresponding to those in the EDD An EDD includes more semantic information on the usage of its elements than does a DTD.
  • Page 52 T h e d e v e l o p m e n t p r o c e s s Are your sample Do you have sample documents in documents? markup? Are your sample Are your sample documents structured documents unstructured FrameMakerdocume FrameMaker...
  • Page 53: Task 3. Creating Read/Write Rules

    T h e d e v e l o p m e n t p r o c e s s documents. If you’re starting with a preexisting EDD, create structured FrameMaker documents. (7) Use document import filters to get FrameMaker documents. If your sample documents are in a file format other than XML, SGML, or FrameMaker, you should convert them to unstructured FrameMaker documents and then use the software’s tools for structuring unstructured documents.
  • Page 54 T h e d e v e l o p m e n t p r o c e s s You have an initial EDD, DTD, and sample documents for your application. Analyze DTD, EDD, and sample documents. Identify needed rules and other information such as entity locations. (9) Write read/write rules and modify application definition to change FrameMaker’s default behavior.
  • Page 55 T h e d e v e l o p m e n t p r o c e s s Determine the purpose of elements with a declared content of EMPTY. These will translate to the appropriate FrameMaker constructs, such as graphic elements. 2.
  • Page 56: Task 4. Finishing Your Application

    T h e d e v e l o p m e n t p r o c e s s import, the parser interprets markup and identifies the information in the document such as element declarations and element start-tags. The parser may find problems that cause the DTD to be syntactically invalid.
  • Page 57 T h e d e v e l o p m e n t p r o c e s s appropriate to your end users. Finally, you put all the pieces of the application together to deliver to your end users. The flowchart shows these steps.
  • Page 58: For More Information

    T h e d e v e l o p m e n t p r o c e s s example, if you want all formatting controlled by the format rules in your EDD, you can remove direct formatting commands from your users’ menus. In addition, you might write FDK clients to help your end users in other ways and provide access to those clients on the menus.
  • Page 59: Pieces Of A Structure Application

    P i e c e s o f a s t r u c t u r e a p p l i c a t i o n Pieces of a structure application A structure application created with FrameMaker includes an external DTD subset, a FrameMaker template, and a read/write rules document.
  • Page 60: Framemaker Template

    P i e c e s o f a s t r u c t u r e a p p l i c a t i o n document specifies a declaration, FrameMaker uses the SGML declaration described in Appendix D, “SGML Declaration.”...
  • Page 61: Creating A Framemaker Template

    C r e a t i n g a F r a m e M a k e r t e m p l a t e This manual is written for developers creating structure applications. Refer end users to the FrameMaker and FrameMaker user guides.
  • Page 62 C r e a t i n g a F r a m e M a k e r t e m p l a t e Building block Meaning <$elemparanumonly> The autonumber counters of the source element’s first paragraph (or of the paragraph containing the source element), including any characters between the counters <$attribute[name]>...
  • Page 63: Variables

    C r e a t i n g a F r a m e M a k e r t e m p l a t e Variables If you’re defining running header/footer variables that will refer to elements in structured FrameMaker documents, you can use building blocks that refer to elements or element attributes rather than to paragraphs.
  • Page 64: Indexes

    C r e a t i n g a F r a m e M a k e r t e m p l a t e Follow these guidelines for using element attribute value building blocks: • Enter the name of the attribute whose value you want to display between brackets. If a list of possible values is not defined for the attribute used in a <$highchoice>...
  • Page 65 C r e a t i n g a F r a m e M a k e r t e m p l a t e When setting up an application, you should set up the mapping to HTML in advance so your users don’t need to do that work.
  • Page 66 C r e a t i n g a F r a m e M a k e r t e m p l a t e • In unstructured documents, you map paragraph formats to list items, and specify the list type for that list item’s parent.
  • Page 67: Chapter 7 Working With Special Files

    Working with Special Files This chapter discusses the special files you need to create a structure application. It tells you where to look for them in your directory tree; describes the workings of two of them, the application definition file and the log file; and points you to the appropriate chapters for information on the other files.
  • Page 68: Application Definition File

    A p p l i c a t i o n d e f i n i t i o n f i l e Default formats used for ISO public entities. For information on this file, entfmts see Appendix F, “ISO Public Entities.” A directory containing SGML structure applications: sgml/ The SGML DocBook starter kit files.
  • Page 69: Editing An Application Definition File

    A p p l i c a t i o n d e f i n i t i o n f i l e documents that use one of those document elements are automatically associated with the application. • If neither of the above occurs or if the associations are ambiguous, FrameMaker asks the end user to pick a structure application to use with a document.
  • Page 70 A p p l i c a t i o n d e f i n i t i o n f i l e Element Discussed in “Specifying a DTD” on page 56 “Specifying entities” on page 57 Entities “Specifying the location of individual entities”...
  • Page 71: Defining An Application

    A p p l i c a t i o n d e f i n i t i o n f i l e Element Discussed in “Specifying the character encoding for XML files” on XMLDisplayEncoding page 68 “Specifying the character encoding for XML files” on XMLExportEncoding page 68 Defining an application...
  • Page 72: Providing Default Information

    A p p l i c a t i o n d e f i n i t i o n f i l e is absolute, it looks there. If it can’t find it via the specified path, the log reports an error and the operation is aborted.
  • Page 73: Specifying A Document Element

    A p p l i c a t i o n d e f i n i t i o n f i l e Element Discussed in “Specifying the character encoding for XML files” on CharacterEncoding page 68 “How FrameMaker searches filename patterns” on Graphics page 60 Specifying a document element...
  • Page 74: Specifying A Dtd

    A p p l i c a t i o n d e f i n i t i o n f i l e You can have only one ReadWriteRules element for each application. It can also be a child of the Defaults element.
  • Page 75: Specifying A Framemaker Template

    A p p l i c a t i o n d e f i n i t i o n f i l e a .htm extension when saving a document as XHTML. The FileExtensionOverride element looks like this: FileExtensionOverride: extension where extension is the string for the filename extension, minus the dot character.
  • Page 76: Specifying Entities Through An Entity Catalog

    A p p l i c a t i o n d e f i n i t i o n f i l e Element Discussed in “Specifying public identifiers” on page 61 Public “Specifying a search path for external entity files” on EntitySearchPaths page 63 If you use the EntityCatalogFile element, you cannot use any of the elements Entity,...
  • Page 77: Specifying The Location Of Individual Entities

    A p p l i c a t i o n d e f i n i t i o n f i l e Entity catalog format Each entry in the entity catalog file associates a filename with information about an external entity that appears in a markup document.
  • Page 78: Specifying Names For External Entity Files

    A p p l i c a t i o n d e f i n i t i o n f i l e XMLApplication element to specify information for a particular application. When searching for an external entity, the software searches the application’s entity locations before searching those in the default Entity elements.
  • Page 79: Specifying Public Identifiers

    A p p l i c a t i o n d e f i n i t i o n f i l e Example Suppose the Entities element looks like: Entity locations: FilenamePattern: $(System).sgm FilenamePattern: $(System).$(Notation) and the markup document contains: <!ENTITY intro SYSTEM "introduction.xml">...
  • Page 80: Managing Css Generation

    A p p l i c a t i o n d e f i n i t i o n f i l e You can use the Public element both in the Entities element of the Defaults element and in an Entities element of an SGMLApplication or XMLApplication element to specify information for a particular application.
  • Page 81: Specifying A Search Path For External Entity Files

    A p p l i c a t i o n d e f i n i t i o n f i l e RetainStylesheetPIs Specifies whether FrameMaker will retain the stylesheet declaration for import and export of XML. It can be set to Enable or Disable. When this is set to Enable, FrameMaker does the following: •...
  • Page 82: Specifying A Search Path For Including Files In Rules Documents

    A p p l i c a t i o n d e f i n i t i o n f i l e An Entities element can contain only one EntitySearchPaths element. The software assumes the EntitySearchPaths element ends this way: EntitySearchPaths .
  • Page 83 A p p l i c a t i o n d e f i n i t i o n f i l e external entities referenced within a markup document. Its Path child elements indicate individual directories. It looks like: RulesSearchPaths: 1: directory .
  • Page 84: Specifying A Structure Api Client

    A p p l i c a t i o n d e f i n i t i o n f i l e Variable Abbreviation Interpretation The user’s home directory $HOME The directory containing the current read/write rules $RULESDIR document (for Macintosh and Unix, only) The structure directory in use (for information on what...
  • Page 85 A p p l i c a t i o n d e f i n i t i o n f i l e On a non-Western system, the text for an SGML file can contain double-byte text. This text can be in any one of a number of different text encodings.
  • Page 86 A p p l i c a t i o n d e f i n i t i o n f i l e Specifying the character encoding for XML files The XML specification supports UNICODE characters for document content and markup tokens.
  • Page 87 A p p l i c a t i o n d e f i n i t i o n f i l e that encoding. As a result, you should specify a display encoding for the structure application. The display encodings you can specify are: Display encoding: For this language: Western European languages...
  • Page 88: Limiting The Length Of A Log File

    A p p l i c a t i o n d e f i n i t i o n f i l e Exporting XML Your XML structure application can include an XmlExportEncoding element to specify the encoding to use when you save a document as XML. FrameMaker determines which encoding to use according to the following: FrameMaker uses: 1.
  • Page 89: Log Files

    L o g f i l e s Log files FrameMaker log files give you information used to identify and correct errors in your application. Generating log files FrameMaker can produce a log file of errors and warnings for each file it processes. If it runs without encountering errors or other conditions requiring messages, it does not create a log file.
  • Page 90: Using Hypertext Links

    O t h e r s p e c i a l f i l e s Using hypertext links When FrameMaker creates a log file, where possible it includes hypertext links as an additional debugging tool. Each message in a log file has one of the forms shown in the following examples: ->...
  • Page 91: Part Ii Working With An Edd

    Part II Working with an EDD Part II explains how to develop an element definition document (EDD) and define elements in it. If you’re developing an EDD as part of a larger structure application, you should be familiar with Part I, “Developing a FrameMaker structure application,” before using the material in this part.
  • Page 92 Working with an EDD...
  • Page 93: In This Chapter

    Developing an Element Definition Document (EDD) An element definition document (EDD) contains the structure rules, attribute definitions, and format rules for all of the elements in a group of FrameMaker documents. You write and maintain the definitions in the EDD and then convert them to an Element Catalog in a structured template.
  • Page 94: Overview Of The Development Process

    O v e r v i e w o f t h e d e v e l o p m e n t p r o c e s s What to do when you’re finished developing an EDD: •...
  • Page 95: Creating Or Updating An Edd From A Dtd

    C r e a t i n g o r u p d a t i n g a n E D D f r o m a D T D If you do not have a DTD, you can either export the Element Catalog from an existing FrameMaker document to create a new EDD or create a new empty EDD by selecting File>Developer Tools>New EDD.
  • Page 96: Creating An Edd From A Dtd

    C r e a t i n g o r u p d a t i n g a n E D D f r o m a D T D Once you have both a DTD and an EDD, you can refine the translation in an iterative process of developing read/write rules.
  • Page 97: Updating An Edd From A Dtd

    C r e a t i n g o r u p d a t i n g a n E D D f r o m a D T D to a FrameMaker element definition of the same name, and it produces an attribute definition for each attribute defined for the element.
  • Page 98: Starting An Edd Without Using A Dtd

    S t a r t i n g a n E D D w i t h o u t u s i n g a D T D the EDD and may include error messages for inconsistencies between the DTD and the EDD.
  • Page 99: The Element Catalog In An Edd

    T h e E l e m e n t C a t a l o g i n a n E D D Exporting an Element Catalog is helpful when you already have a structured document that you’d like to use as a basis for other documents. You will probably need to add or edit element definitions in the new EDD.
  • Page 100: All Elements In The Catalog

    T h e E l e m e n t C a t a l o g i n a n E D D The Version element displays the number of the FrameMaker release used when the EDD was created; the number is not editable. The following list describes what the optional child elements are for and where you can find more discussion of them in this manual: •...
  • Page 101 T h e E l e m e n t C a t a l o g i n a n E D D Element tag Purpose of the element Side head alignment Alignment Character for a decimal tab stop AlignOn Context specification in a format rule AllContextsRule...
  • Page 102 T h e E l e m e n t C a t a l o g i n a n E D D Element tag Purpose of the element Highest-level element in an EDD ElementCatalog Reference to a base paragraph format ElementPgfFormatTag Clause in a context or level rule Else...
  • Page 103 T h e E l e m e n t C a t a l o g i n a n E D D Element tag Purpose of the element Set of paragraph indents Indents Object format rule for a graphic, marker, cross- InitialObjectFormat reference, or equation Structure rule for automatic tagging in a table...
  • Page 104 T h e E l e m e n t C a t a l o g i n a n E D D Element tag Purpose of the element No text formatting changes NoAdditionalFormatting No autonumbering NoAutonumber Horizontal text range offset OffsetHorizontal Vertical text range offset OffsetVertical...
  • Page 105 T h e E l e m e n t C a t a l o g i n a n E D D Element tag Purpose of the element Limits on all right cell margins RightCellMarginLimits Right paragraph indent RightIndent Right paragraph indent, as a change to the current RightIndentChange...
  • Page 106: Defining Preliminary Settings In An Edd

    D e f i n i n g p r e l i m i n a r y s e t t i n g s i n a n E D D Element tag Purpose of the element Element type SystemVariable Object format rule for a system variable...
  • Page 107: Specifying Whether To Create Formats Automatically

    D e f i n i n g p r e l i m i n a r y s e t t i n g s i n a n E D D StructuredApplication. FrameMaker supplies the version number, which is not editable.
  • Page 108: Organizing And Commenting An Edd

    O r g a n i z i n g a n d c o m m e n t i n g a n E D D the application when you translate between a DTD and an EDD and when an end user shares documents between XML or SGML and FrameMaker.
  • Page 109: Writing Element Definitions

    W r i t i n g e l e m e n t d e f i n i t i o n s Head Rules These elements are for syntax descriptions of read/write rules Para in the reference chapters. Section Element (Container): Rule General rule: RuleName, (See | (ShortDesc | Synopsis,...
  • Page 110: About Element Tags

    W r i t i n g e l e m e n t d e f i n i t i o n s • Containers, tables, and footnotes can have text format rules that specify font and paragraph formatting for text in the element and its descendants. Object elements can have an object format rule that specifies a single property, such as a marker type or an equation size.
  • Page 111: Defining A Container, Table Or Footnote Element

    W r i t i n g e l e m e n t d e f i n i t i o n s For information on importing and testing the definitions, see “Creating an Element Catalog in a template” on page 103. •...
  • Page 112 W r i t i n g e l e m e n t d e f i n i t i o n s • Attribute definitions that specify attributes to store descriptive information with the element • Text format rules that determine how to format text in the element or its descendants •...
  • Page 113 W r i t i n g e l e m e n t d e f i n i t i o n s Basic steps This section gives an overview of the steps for defining a container, table, table part, or footnote.
  • Page 114 W r i t i n g e l e m e n t d e f i n i t i o n s If you do not specify a general rule, FrameMaker gives the element a default general rule that depends on the element’s type.
  • Page 115: Defining A Rubi Group Element

    W r i t i n g e l e m e n t d e f i n i t i o n s In FrameMaker, attributes can be used to record information such as the current status of an element, to maintain IDs and ID references for cross-referencing between elements, and to allow an element to be formatted using the current value of its attribute.
  • Page 116 W r i t i n g e l e m e n t d e f i n i t i o n s Therefore, the children of either the Rubi Group or the Rubi elements should be text range elements;...
  • Page 117: Defining An Object Element

    W r i t i n g e l e m e n t d e f i n i t i o n s Defining an object element A FrameMaker document uses special object elements for tables, graphics, markers, cross- references, equations, system variables, footnotes, Rubi groups, and Rubi text.
  • Page 118 W r i t i n g e l e m e n t d e f i n i t i o n s Element (Marker): GlossaryTerm Element tag Initial marker type 1. In all contexts. Use marker type: Glossary Element type Element (Graphic): Figure Initial graphic element format...
  • Page 119 W r i t i n g e l e m e n t d e f i n i t i o n s An element type determines what other child elements will be available as you write the definition.
  • Page 120: Keyboard Shortcuts For Working In An Edd

    K e y b o a r d s h o r t c u t s f o r w o r k i n g i n a n E D D Insert an InitialObjectFormat or SystemVariableFormatRule element, and insert and define context elements as necessary.
  • Page 121: Moving Around The Structure

    C r e a t i n g a n E l e m e n t C a t a l o g i n a t e m p l a t e Moving around the structure Use these shortcuts to move the insertion point around the structure of an EDD. To move the insertion point Press To the next element down in the structure...
  • Page 122: Importing Element Definitions

    C r e a t i n g a n E l e m e n t C a t a l o g i n a t e m p l a t e Importing element definitions To import element definitions, choose Element Definitions from the File>Import submenu in the template.
  • Page 123: Saving An Edd As A Dtd For Export

    S a v i n g a n E D D a s a D T D f o r e x p o r t see that the elements behave in the way you expect. You may need to test the elements in the document, make revisions in the EDD, reimport the elements into the EDD, reimport the catalog into the document, and repeat the process as necessary.
  • Page 124: Creating A Dtd From An Edd

    S a v i n g a n E D D a s a D T D f o r e x p o r t the DTD from the EDD using the rules, test the results on sample documents, and repeat the process as many times as necessary.
  • Page 125: Sgml Declarations

    S a m p l e d o c u m e n t s a n d E D D s SGML declarations FrameMaker runs a new DTD through an XML or SGML parser. In the process, it may identify errors in the syntax of the DTD.
  • Page 126 S a m p l e d o c u m e n t s a n d E D D s $FMHOME/fminit/uilanguage/Samples/FMSGML/ $FMHOME/fminit/uilanguage/Samples/Templates/Structured/ • For Windows: $FMHOME\samples\fmsgml\ $FMHOME\samples\templates\Structured\ • For Macintosh: $FMHOME:Samples:FMSGML: $FMHOME:Samples:Templates:Structured: The FMSGML directory contains a commented EDD for this developer’s guide and one structured document that uses the EDD.
  • Page 127: In This Chapter

    Structure Rules for Containers, Tables, and Footnotes Containers, tables, table parts, footnotes, and Rubi groups can all hold other elements; they build the structural hierarchy of a document. For each of these elements in an EDD, you need to define the allowable contents to describe a document structure that is valid. Content rules are structure rules that describe allowable content in FrameMaker.
  • Page 128: Overview Of Edd Structure Rules

    O v e r v i e w o f E D D s t r u c t u r e r u l e s Overview of EDD structure rules All containers, tables, table parts, footnotes, and Rubi groups must have a general rule that specifies what the element is allowed to contain in a document.
  • Page 129: Writing An Edd General Rule

    W r i t i n g a n E D D g e n e r a l r u l e Chapter Step At least one required child element is missing. Step Section Note Section An element (Note) is in an invalid location.
  • Page 130: Syntax Of A General Rule For Edd Elements

    W r i t i n g a n E D D g e n e r a l r u l e Syntax of a general rule for EDD elements A general rule can list child element tags and content symbols, and it can use occurrence indicators, connectors, and parentheses to further describe the contents allowed.
  • Page 131 W r i t i n g a n E D D g e n e r a l r u l e If you need to mix connectors in an element rule, use parentheses to define groups of element tags. In the rule above, if you want a Caption followed by either a Graphic or a Table put parentheses around Graphic | Table.
  • Page 132: Restrictions On General Rules For Tables

    W r i t i n g a n E D D g e n e r a l r u l e For example, this rule specifies that the element must begin with a Head, then it must have at least one Paragraph or one List element, and then it can have one or more optional Section elements: Head, (Paragraph | List)+, Section*...
  • Page 133: Default General Rules For Edd Elements

    W r i t i n g a n E D D g e n e r a l r u l e Element type Restrictions The tokens <TEXT>, <TEXTONLY>, <ANY>, and <EMPTY> are not allowed. Heading, body, or footing Limited to one or more row child elements.
  • Page 134: Specifying Validity At The Highest Level In A Flow

    S p e c i f y i n g v a l i d i t y a t t h e h i g h e s t l e v e l i n a f l o w If you try to save an EDD as a DTD when there are empty general rules, the resulting DTD will have syntax errors.
  • Page 135: Inclusions

    A d d i n g i n c l u s i o n s a n d e x c l u s i o n s level elements saves you the effort of allowing or prohibiting child elements for individual lower-level elements.
  • Page 136: Exclusions

    H o w c o n t e n t r u l e s t r a n s l a t e t o m a r k u p d a t a even though the footnote may be a valid inclusion in the table because table footnotes are allowed only in titles and cells.
  • Page 137: Inserting Descendants Automatically In Containers

    I n s e r t i n g d e s c e n d a n t s a u t o m a t i c a l l y i n c o n t a i n e r s Inserting descendants automatically in containers In the definition of a container, you can specify nested descendants to insert automatically.
  • Page 138: Inserting Table Parts Automatically In Tables

    I n s e r t i n g t a b l e p a r t s a u t o m a t i c a l l y i n t a b l e s List You can specify multiple Item...
  • Page 139: Initial Structure Pattern

    I n s e r t i n g t a b l e p a r t s a u t o m a t i c a l l y i n t a b l e s Initial structure pattern To define an initial structure pattern for a table, heading, body, footing, or row, add an InitialStructurePattern element anywhere after the general rule and before the...
  • Page 140: Default Initial Structure

    I n s e r t i n g t a b l e p a r t s a u t o m a t i c a l l y i n t a b l e s If an end user adds a row to an existing table by inserting a row element, the structure of the new row is based on the initial structure pattern of the parent heading, body, or footing.
  • Page 141: Groups

    I n s e r t i n g R u b i e l e m e n t s a u t o m a t i c a l l y i n R u b i g r o u p s Body Region...
  • Page 142 D e b u g g i n g s t r u c t u r e r u l e s • Inclusions or exclusions specified for an element that is not a container or for a container with the general rule <TEXTONLY>...
  • Page 143: In This Chapter

    Text Format Rules for Containers, Tables, and Footnotes You can define text formatting properties for containers, tables, table parts, and footnotes in FrameMaker. When an end user inserts one of these elements in a document, text in the element or in a descendant is formatted automatically according to the format rules in the EDD.
  • Page 144: Overview Of Text Format Rules

    O v e r v i e w o f t e x t f o r m a t r u l e s • “Defining the formatting changes in a rule” on page 143 • “Specifications for individual format properties” on page 146 Other format rules for special purposes: •...
  • Page 145: How Elements Inherit Formatting Information

    H o w e l e m e n t s i n h e r i t f o r m a t t i n g i n f o r m a t i o n Element (Container): Head General rule: <TEXT>...
  • Page 146: The General Case

    H o w e l e m e n t s i n h e r i t f o r m a t t i n g i n f o r m a t i o n It is even possible to have only one paragraph format for an entire document. The format is associated with the document’s highest-level element, and all other elements inherit the format and specify changes to it when necessary.
  • Page 147 H o w e l e m e n t s i n h e r i t f o r m a t t i n g i n f o r m a t i o n Element (Container): Section General rule: Head, (Para | List)+, Section* Text format rules This paragraph format...
  • Page 148: Inheritance In A Table Or Footnote

    H o w e l e m e n t s i n h e r i t f o r m a t t i n g i n f o r m a t i o n Section format: body Each Item gets its paragraph format from Section and picks...
  • Page 149: Inheritance In A Document Within A Book

    H o w e l e m e n t s i n h e r i t f o r m a t t i n g i n f o r m a t i o n Inheritance in a document within a book In a document that is part of a book, FrameMaker searches through an element’s ancestors for a paragraph format in the same way that it does in other documents.
  • Page 150: Specifying An Element Paragraph Format

    S p e c i f y i n g a n e l e m e n t p a r a g r a p h f o r m a t Specifying an element paragraph format An element definition can include a reference to a base paragraph format. If an instance of the element contains text, the text’s format is the paragraph format plus any changes specified for the current context in the element’s format rules.
  • Page 151: All-Contexts Rules

    W r i t i n g c o n t e x t - d e p e n d e n t f o r m a t r u l e s defines contexts or levels, it can have separate if, else/if, and else clauses for different possibilities.
  • Page 152: Context-Specific Rules

    W r i t i n g c o n t e x t - d e p e n d e n t f o r m a t r u l e s Element (Table Head): TableHead General rule: TableHeadRow+ Text format rules 1.
  • Page 153 W r i t i n g c o n t e x t - d e p e n d e n t f o r m a t r u l e s formatting change if the current element is nested within two or more Section elements. (For a way to describe nesting that means exactly the level indicated, see “Level rules”...
  • Page 154 W r i t i n g c o n t e x t - d e p e n d e n t f o r m a t r u l e s Indicator Specification is true if the element is The only element in its parent {only} Followed by the named element or text content...
  • Page 155 W r i t i n g c o n t e x t - d e p e n d e n t f o r m a t r u l e s for List and rely on attribute values to determine whether an instance of List is bulleted or numbered.
  • Page 156: Level Rules

    W r i t i n g c o n t e x t - d e p e n d e n t f o r m a t r u l e s For example, suppose you want to apply a formatting change to an Item when it appears inside a nested List element (a List inside a List).
  • Page 157 W r i t i n g c o n t e x t - d e p e n d e n t f o r m a t r u l e s context rules Section < Section < Section means “nested in at least three Section elements,”...
  • Page 158: Nested Format Rules

    W r i t i n g c o n t e x t - d e p e n d e n t f o r m a t r u l e s Stopping the count at an ancestor You can have FrameMaker stop counting when it reaches a particular element in the hierarchy.
  • Page 159: Multiple Format Rules

    W r i t i n g c o n t e x t - d e p e n d e n t f o r m a t r u l e s Element (Container): Item General rule: <TEXT> Text format rules 1.
  • Page 160: Context Labels

    W r i t i n g c o n t e x t - d e p e n d e n t f o r m a t r u l e s Element (Container): Head General rule: <TEXT> Text format rules 1.
  • Page 161: Defining The Formatting Changes In A Rule

    D e f i n i n g t h e f o r m a t t i n g c h a n g e s i n a r u l e To provide a context label in a format rule clause, insert a ContextLabel element after the If, ElseIf, or Else specification, and type the text of the label.
  • Page 162: Text Range Formatting

    D e f i n i n g t h e f o r m a t t i n g c h a n g e s i n a r u l e Insert the element ParagraphFormatTag, and type the tag of the paragraph format. •...
  • Page 163: No Additional Formatting

    D e f i n i n g t h e f o r m a t t i n g c h a n g e s i n a r u l e • Refer to a list of changes to properties stored elsewhere in the EDD. The changes in the list modify the specified font properties in the paragraph format in use.
  • Page 164: Specifications For Individual Format Properties

    S p e c i f i c a t i o n s f o r i n d i v i d u a l f o r m a t p r o p e r t i e s In some cases, you may also want to use the no-formatting option to improve the readability of a format rule.
  • Page 165: Basic Properties

    S p e c i f i c a t i o n s f o r i n d i v i d u a l f o r m a t p r o p e r t i e s unit, FrameMaker uses the one set in View Options in the document.
  • Page 166 S p e c i f i c a t i o n s f o r i n d i v i d u a l f o r m a t p r o p e r t i e s FirstIndentRelative dimension Sets the left indent for the first line in a paragraph (relative to the left indent in use).
  • Page 167 S p e c i f i c a t i o n s f o r i n d i v i d u a l f o r m a t p r o p e r t i e s SpaceAboveChange dimension Sets the space above a paragraph (added to the current space above).
  • Page 168: Font Properties

    S p e c i f i c a t i o n s f o r i n d i v i d u a l f o r m a t p r o p e r t i e s TabAlignment keyword Sets left, center, right, or decimal alignment for tabbed text on a tab stop.
  • Page 169 S p e c i f i c a t i o n s f o r i n d i v i d u a l f o r m a t p r o p e r t i e s Moves a text range element.
  • Page 170: Pagination Properties

    S p e c i f i c a t i o n s f o r i n d i v i d u a l f o r m a t p r o p e r t i e s Sets the space between characters.
  • Page 171: Numbering Properties

    S p e c i f i c a t i o n s f o r i n d i v i d u a l f o r m a t p r o p e r t i e s Alignment keyword For a side head, aligns the baseline of the head with the first baseline, top baseline, or top edge of the paragraph across from it.
  • Page 172: Advanced Properties

    S p e c i f i c a t i o n s f o r i n d i v i d u a l f o r m a t p r o p e r t i e s Advanced properties The Advanced properties set hyphenation and word spacing options and determine whether to display a graphic with a paragraph.
  • Page 173: Table Cell Properties

    S p e c i f i c a t i o n s f o r i n d i v i d u a l f o r m a t p r o p e r t i e s Minimum integer Sets the smallest space allowed between words.
  • Page 174: Writing First And Last Format Rules

    W r i t i n g f i r s t a n d l a s t f o r m a t r u l e s Minimum, Maximum, and Optimum Specifies the range of spacing percentages to use, and the optimum, or preferred, percentage of spacing to use.
  • Page 175: How First And Last Rules Are Applied

    W r i t i n g f i r s t a n d l a s t f o r m a t r u l e s paragraph that happens to be the first or last child—so you need to define the special formatting only once.
  • Page 176: Defining Prefixes And Suffixes

    D e f i n i n g p r e f i x e s a n d s u f f i x e s A first or last rule can also apply to a prefix or suffix that is formatted in a paragraph of its own.
  • Page 177: A Prefix Or Suffix For A Text Range

    D e f i n i n g p r e f i x e s a n d s u f f i x e s When FrameMaker formats an element with a prefix or suffix, it applies format rules in this order: •...
  • Page 178: A Prefix Or Suffix For A Sequence Of Paragraphs

    D e f i n i n g p r e f i x e s a n d s u f f i x e s Element (Container): Note General rule: <TEXT> Prefix rules 1. In all contexts. Prefix: Important: If a paragraph element also has an autonumber, the prefix appears after an autonumber at the beginning of the paragraph, and a suffix appears before an autonumber at the end of the paragraph.
  • Page 179: A Prefix Or Suffix For A Text Range Or A Paragraph

    D e f i n i n g p r e f i x e s a n d s u f f i x e s a prefix) or a last format rule (for a suffix). The prefix is the first paragraph in the parent, or the suffix is the last paragraph in the parent.
  • Page 180: Attributes In A Prefix Or Suffix Rule

    W h e n t o u s e a n a u t o n u m b e r , p r e f i x o r s u f f i x , o r f i r s t o r l a s t r u l e Attributes in a prefix or suffix rule You can refer to an attribute in a prefix or suffix rule, and the value from the attribute is written as the text string.
  • Page 181: Defining A Format Change List

    D e f i n i n g a f o r m a t c h a n g e l i s t Here are a few cases in which you may want to use an autonumber, a prefix or suffix, or a first or last rule: •...
  • Page 182 D e f i n i n g a f o r m a t c h a n g e l i s t A format change list typically contains a general-purpose set of changes used by different kinds of elements. For example, this list changes the amount of spacing and indentation and can be applied to any kind of display text, such as examples and long quotations: Format change list: DisplayText Basic properties...
  • Page 183: Setting Minimum And Maximum Limits On Properties

    S e t t i n g m i n i m u m a n d m a x i m u m l i m i t s o n p r o p e r t i e s values, you can also set your own limits.
  • Page 184: Debugging Text Format Rules

    D e b u g g i n g t e x t f o r m a t r u l e s Set of limits Minimum / maximum FirstIndentLimits, LeftIndentLimits, or 0" / 39" RightIndentLimits LineSpacingLimits, SpaceAboveLimits, or -32,767"...
  • Page 185 D e b u g g i n g t e x t f o r m a t r u l e s As you examine the formatted contents of the document, you can use the Show Element Context dialog box to find out what format rules are being applied to text in a particular instance of an element.
  • Page 186 D e b u g g i n g t e x t f o r m a t r u l e s Text Format Rules for Containers, Tables, and Footnotes...
  • Page 187: Chapter 11 Attribute Definitions

    Attribute Definitions Attributes provide a way to store descriptive information with an instance of an element that is not part of the element’s content. In FrameMaker, you can define attributes for many purposes—such as to record the current status of an element’s content, to allow cross- referencing between elements with ID attributes, or to specify how an element is to be formatted.
  • Page 188: How An End User Works With Attributes

    H o w a n e n d u s e r w o r k s w i t h a t t r i b u t e s • A status attribute in a section element can describe the current review stage of the section’s contents (Status=Alpha).
  • Page 189: Writing Attribute Definitions For An Element

    W r i t i n g a t t r i b u t e d e f i n i t i o n s f o r a n e l e m e n t values, whichever the user requests. Invalid values are identified by an x next to the attribute name.
  • Page 190: Attribute Name

    W r i t i n g a t t r i b u t e d e f i n i t i o n s f o r a n e l e m e n t Attribute name When you insert an Attribute element, the Name child element is inserted automatically along with it.
  • Page 191: Specification For A Required Or Optional Value

    W r i t i n g a t t r i b u t e d e f i n i t i o n s f o r a n e l e m e n t Type Values allowed in the attribute A string that uniquely identifies the element UniqueID...
  • Page 192: Hidden And Read-Only Attributes

    W r i t i n g a t t r i b u t e d e f i n i t i o n s f o r a n e l e m e n t If a value is optional, you can assign a default value to the attribute. A default value can be used to control the element’s formatting or to work with a structure API client.
  • Page 193: List Of Values For Choice Attributes

    W r i t i n g a t t r i b u t e d e f i n i t i o n s f o r a n e l e m e n t List of values for Choice attributes For an attribute of type Choice, you need to provide a list of possible values for the end user.
  • Page 194: Default Value

    U s i n g U n i q u e I D a n d I D R e f e r e n c e a t t r i b u t e s value by other means (such as pasting), FrameMaker identifies the attribute value as invalid.
  • Page 195 U s i n g U n i q u e I D a n d I D R e f e r e n c e a t t r i b u t e s beginning page number of a section it refers to. To determine what information from a source appears in a cross-reference, you define a cross-reference format.
  • Page 196: Uniqueid Attributes

    U s i n g U n i q u e I D a n d I D R e f e r e n c e a t t r i b u t e s Para (using the Attributes dialog box). He or she can go to the source from the Para later by searching for the element with the ID.
  • Page 197: Idreference Attributes

    U s i n g U n i q u e I D a n d I D R e f e r e n c e a t t r i b u t e s the uniqueness of IDs as the user edits a document. For example, if the user enters an ID that is not unique, FrameMaker does not accept the value and displays an alert.
  • Page 198: Using Attributes To Format Elements

    U s i n g a t t r i b u t e s t o f o r m a t e l e m e n t s In the attribute definition, insert an IDReference or IDReferences element after the Name element.
  • Page 199 U s i n g a t t r i b u t e s t o f o r m a t e l e m e n t s type for each instance of the element and have the instance formatted according to that information.
  • Page 200: Using Attributes To Provide A Prefix Or Suffix

    U s i n g a t t r i b u t e s t o p r o v i d e a p r e f i x o r s u f f i x FrameMaker can use the default value of an attribute to determine context. In the Table example above, if Type is not specified for a table in a document, the table’s initial format will be Format A (the format for the default value Summary).
  • Page 201 U s i n g a t t r i b u t e s t o p r o v i d e a p r e f i x o r s u f f i x A reference to an attribute value can also include element tags. In this case, FrameMaker uses the value for the named attribute in the closest containing element with the specified tag.
  • Page 202 U s i n g a t t r i b u t e s t o p r o v i d e a p r e f i x o r s u f f i x Attribute Definitions...
  • Page 203: Chapter 12 Object Format Rules

    Object Format Rules A FrameMaker document uses special elements for tables, graphics, markers, cross- references, equations, and system variables. Each of these objects can have a formatting property in a document, such as a table format or an equation size. You can define this property in an object format rule for the element, and the format is applied automatically when an end user inserts an instance of the element in a document.
  • Page 204: Overview Of Object Format Rules

    O v e r v i e w o f o b j e c t f o r m a t r u l e s • “Specifying a system variable” on page 195 Information to help you correct errors in format rules: •...
  • Page 205: Context Specifications For Object Format Rules

    C o n t e x t s p e c i f i c a t i o n s f o r o b j e c t f o r m a t r u l e s The end user can change a marker type, cross-reference format, or other property (except for a system variable) at any time, and the change is not considered to be a format rule override.
  • Page 206: Context-Specific Rules

    C o n t e x t s p e c i f i c a t i o n s f o r o b j e c t f o r m a t r u l e s Context-specific rules A format rule can define one or more possible contexts, with a format for each context.
  • Page 207 C o n t e x t s p e c i f i c a t i o n s f o r o b j e c t f o r m a t r u l e s For example, this specification is true if an element appears in a List within a Preface or a Chapter: List <...
  • Page 208: Setting A Table Format

    S e t t i n g a t a b l e f o r m a t must have the attribute name and value specified. (If the element does not have an attribute value but the attribute is defined to have a default value, the default value is used.) When an end user inserts an object element that has an attribute in its format rule, the Edit Attributes dialog box appears right away so that the user can provide an attribute value (if the user has the element set to display this dialog box automatically.).
  • Page 209: Specifying A Graphic Content Type

    S p e c i f y i n g a g r a p h i c c o n t e n t t y p e columns and rows. Like paragraph formats and character formats, table formats are defined and stored in catalogs in the documents.
  • Page 210: Setting A Marker Type

    S e t t i n g a m a r k e r t y p e about the object. You can specify a content type for a graphic element, to determine which dialog box to open for new instances of the element. The Anchored Frame dialog box sets the size, position, and alignment of the frame and other options such as cropping and floating.
  • Page 211 S e t t i n g a m a r k e r t y p e You can set an initial marker type for a new instance of a marker element. When an end user inserts the element in a document, the specified marker type is preselected in the Insert Marker dialog box.
  • Page 212: Setting A Cross-Reference Format

    S e t t i n g a c r o s s - r e f e r e n c e f o r m a t regarded as a format rule override. If the user re-imports element definitions with “Remove Format Rule Overrides”...
  • Page 213: Specifying A System Variable

    S p e c i f y i n g a s y s t e m v a r i a b l e symbols, and the horizontal spread between characters. The properties for the sizes are set in the Equation Sizes dialog box in a document. You can set an initial equation size for a new instance of an equation element.
  • Page 214 S p e c i f y i n g a s y s t e m v a r i a b l e Element (System Variable): Date System variable format rule 1. If context is: TitlePageDate Use system variable: Current Date (Long) Else Use system variable: Current Date (Short) These are the system variables available:...
  • Page 215: Debugging Object Format Rules

    D e b u g g i n g o b j e c t f o r m a t r u l e s Some of the system variables, such as those for running headers and page numbers, are used most often on master pages.
  • Page 216 D e b u g g i n g o b j e c t f o r m a t r u l e s The current element and its ancestors The format rule for the element selected on the left. An arrow identifies the clause that applies to the instance.
  • Page 217: Part Iii Translating Between Markup Data And Framemaker

    Part III Translating between markup data and FrameMaker Part III provides details of the model FrameMaker uses for translating between markup data and FrameMaker documents and on how you can modify this translation. You should be familiar with the material in Part I, “Developing a FrameMaker structure application” before using the material in this part.
  • Page 218 • Chapter 25, “Read/Write Rules Summary” Contains a summary of the read/write rules provided for translating between various markup and FrameMaker constructs. • Chapter 26, “Read/Write Rules Reference” Contains an alphabetical list of reference material on all read/write rules. Translating between markup data and FrameMaker...
  • Page 219: Chapter 13 Introduction To Translating Between Markup Data And Framemaker

    Introduction to Translating between Markup Data and FrameMaker FrameMaker can read and write markup data without any help from you. However, its default translation of markup constructs may not be suitable for your DTD. In such cases, you have to write a structure application to modify the translation. In this chapter This chapter talks about the information your application typically contains.
  • Page 220: What You Can Do With Structure Api Clients

    W h a t y o u c a n d o w i t h s t r u c t u r e A P I c l i e n t s Treating special characters In SGML and XML you can use an entity to represent special characters.
  • Page 221: A Detailed Example

    A d e t a i l e d e x a m p l e Working with the FDK requires C and FDK programming skills. The FDK allows you an arbitrary amount of control over FrameMaker’s processing. For this reason, there is no way to briefly describe the possibilities here.
  • Page 222: Document Instance

    A d e t a i l e d e x a m p l e <!--Allow * as the start-tag of an item element--> <!ENTITY strtitem STARTTAG "item"> <!SHORTREF listmap "*" strtitem> <!USEMAP listmap list> <!--Cross-references--> <!ELEMENT xref - O EMPTY> <!ATTLIST xref id IDREF #IMPLIED>...
  • Page 223: Edd Fragment

    A d e t a i l e d e x a m p l e EDD fragment Here is an EDD fragment you might produce from the DTD fragment: Element (Container): Section General rule: Head, (Para | List)*, Section* Text format rules Element paragraph format: body Element (Container): Head...
  • Page 224: Formatting And Read/Write Rules

    A d e t a i l e d e x a m p l e occurs as the child of more than one Section element. The Item element bases it’s formatting on the value of the Type attribute of the parent List element. Formatting and read/write rules When creating an EDD from a DTD, FrameMaker automatically generates most of these FrameMaker element definitions (other than their formatting rules) from the corresponding...
  • Page 225: Opening Xml Documents

    O p e n i n g X M L d o c u m e n t s Summary of Transportation 2000 Plan Elements 1.2.1 Highway System A base network of roads for people and goods movement, designed to operate at maximum efficiency during off-peak and near capacity in peak hours.
  • Page 226 O p e n i n g X M L d o c u m e n t s • If you have enabled Network File Locking through File > Preferences > General, FrameMaker locks both FrameMaker and XML documents that you are editing to prevent other users from modifying files you have open.
  • Page 227: Chapter 14 Read/Write Rules And Their Syntax

    Read/Write Rules and Their Syntax Read/write rules are your primary device for modifying FrameMaker’s default translations. In this chapter This chapter describes the syntax of the rules and how you create them. Chapter 26, “Read/ Write Rules Reference,” describes each of the rules in detail. In the outline below, click a topic to go to its page.
  • Page 228: Rule Order

    R u l e o r d e r FrameMaker reads the content of the document and not its structure. Keywords in rules cannot include non-breaking hyphens. Important: Eight-bit characters, greater than 0x80, are not supported in filenames occurring within read/write rule files. For portability, avoid using those characters in filenames within read/write rule files.
  • Page 229: Rule Syntax

    R u l e s y n t a x is when multiple rules apply equally to the same situation. In such cases, the software uses the rule that appears first in the document. For example, assume you have these rules: element "list"...
  • Page 230: Case Conventions

    C a s e c o n v e n t i o n s A single subrule can appear at the end of a rule without the enclosing braces. For example: element "list" { attribute "indent" drop; is equivalent to element "list"...
  • Page 231: Constant Syntax

    S t r i n g s a n d c o n s t a n t s • A backslash followed by one, two, or three other digits is interpreted as a decimal character code. • A backslash immediately preceding any character other than a digit or the letter x indicates that the following character is part of the string.
  • Page 232: Comments

    C o m m e n t s Comments Comments can appear anywhere in a rules document where white space is permitted, except within quoted strings. Comments, like those in C code, are surrounded by the delimiters /* and */. Tables, graphics, and equations can appear within comments but are erroneous elsewhere in a rules document.
  • Page 233: Commands For Working With A Rules Document

    C o m m a n d s f o r w o r k i n g w i t h a r u l e s d o c u m e n t translating FrameMaker cross-references, equations, footnotes, graphics, or tables to markup: CROSSREF, EQUATION, FOOTNOTE, GRAPHIC, TABLE, TITLE, HEADING, BODY, FOOTING, ROW, and CELL.
  • Page 234 C o m m a n d s f o r w o r k i n g w i t h a r u l e s d o c u m e n t Read/Write Rules and Their Syntax...
  • Page 235: In This Chapter

    Saving EDD Formatting Information as a CSS Stylesheet15 Typically, an EDD contains a significant amount of formatting information. FrameMaker uses this information to map formatting properties to elements. This mapping depends on the given element’s tag, its position in the document structure, and its values for specified attributes.
  • Page 236: Comparison Of Edd Format Rules And Css

    D e f a u l t t r a n s l a t i o n Comparison of EDD format rules and CSS Following is a table of format rule properties that can be used in an EDD, and how FrameMaker translates them to CSS.
  • Page 237 D e f a u l t t r a n s l a t i o n Property in EDD CSS statement Values (and comments) Browser support Tsume UNSUPPORTED Indent properties Property in EDD CSS statement Values (and comments) Browser support FirstIndent...
  • Page 238 D e f a u l t t r a n s l a t i o n Property in EDD CSS statement Values (and comments) Browser support DefaultPunctuation after content Alignment UNSUPPORTED No equivalent in CSS Anywhere UNSUPPORTED Support unnecessary - this is unmodified pagination TopOfColumn page-break-...
  • Page 239 D e f a u l t t r a n s l a t i o n Table cell properties Property in EDD CSS statement Values (and comments) Browser support CellMargins padding In the EDD you can specify values OP, NS for Change, Custom, or FromTableFormatPlus—padding...
  • Page 240: Differences In Translation

    D e f a u l t t r a n s l a t i o n Selector in EDD CSS selector Browser support (and comments) {between ABC QRS} ABC + XYZ + QRS {} NS, OP {any} XYZ[att != val] ABC >...
  • Page 241 D e f a u l t t r a n s l a t i o n Element (Container): Para General rule: <TEXT> Text format rules 1. If context is: Section{notfirst} Default font properties Angle: Italic In this case, the Para element uses italic text unless its parent Section element is the first of a group of siblings.
  • Page 242: Generating A Css

    G e n e r a t i n g a C S S This will usually give appropriate results. There are circumstances when the EDD uses the order of processing to limit execution, which result in CSS that can’t make the same distinction.
  • Page 243: Generating A Css On Save As Xml

    G e n e r a t i n g a C S S After you generate a CSS in this way, the stylesheet is not necessarily used by any XML documents. If you specify the same path and file name as an existing CSS, and that CSS is used by an XML document, the following will result: •...
  • Page 244 G e n e r a t i n g a C S S Stylesheets The parent element for the CSS specification. It contains CssPreferences, RetainStyleSheetPIs, and XmlStylesheet elements. CssPreferences Specifies whether or not to generate a CSS, and whether to generate special attributes in the XML.
  • Page 245: In This Chapter

    Translating Elements and Their Attributes Elements and their attributes are the fundamental components of both FrameMaker and markup documents. Most information in this chapter is “bidirectional.” It is about translations that can be recognized and performed when both reading and writing markup documents and DTDs, and the examples apply to both cases.
  • Page 246: Default Translation

    D e f a u l t t r a n s l a t i o n • “Formatting an element as a boxed set of paragraphs” on page 240 • “Suppressing the display of an element’s content” on page 240 •...
  • Page 247: Translating Attributes

    D e f a u l t t r a n s l a t i o n • A declared content of either CDATA or (for SGML) RCDATA translates to the FrameMaker general rule <TEXTONLY>. • A declared content of EMPTY translates to the FrameMaker general rule <EMPTY>. When FrameMaker converts an EDD to a DTD, it performs the reverse translations.
  • Page 248 D e f a u l t t r a n s l a t i o n When FrameMaker writes a FrameMaker document as XML or SGML, it writes markup attribute specifications for attributes with an explicitly supplied value. Such explicit values may be entered directly by the end user, created by the FrameMaker cross-reference facility, or supplied by an FDK client.
  • Page 249: Naming Elements And Attributes

    D e f a u l t t r a n s l a t i o n Declared Value in Markup FrameMaker Attribute Type SGML-only NUTOKENS Strings NOTATION Choice Name token group Choice On export, FrameMaker makes the following conversions in the absence of read/write rules: FrameMaker Attribute Type Declared Value in Markup String CDATA...
  • Page 250 D e f a u l t t r a n s l a t i o n encounter naming difficulties unless you have adhered to SGML naming rules in your EDD. You will need to write rules to reflect the differences. Likewise, if you create an EDD by importing an XML DTD, you will have no problems.
  • Page 251: Inclusions And Exclusions

    D e f a u l t t r a n s l a t i o n PART, and pArt, become the generic identifier part. The software performs the same conversion for attribute names. Important: If the NAMECASE parameter states that names are not case sensitive (NAMECASE GENERAL YES), the same characters with different capitalization in FrameMaker export as the same element GI or attribute name.
  • Page 252: Modifications To The Default Translation

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n • It generates a record end at the end of every paragraph and flow in the FrameMaker document.
  • Page 253: Renaming Attributes

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Renaming attributes Just as you can choose to rename elements, you can choose to rename their attributes when translating between markup and FrameMaker.
  • Page 254: Translating A Markup Element To A Footnote Element

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n can rename their values either for all occurrences, or within a single context. To do so, you use one of these rules: value "val"...
  • Page 255: Translating A Markup Element To A Rubi Group Element

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Translating a markup element to a Rubi group element Documents that include Japanese text most likely require Rubi to express the pronunciation of certain words.
  • Page 256: Retaining Content But Not Structure Of An Element

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n FrameMaker does not support direct translation of this representation. To create a Rubi group when the Rubi text is represented as an attribute, you’ll need to write a structure API client.
  • Page 257: Retaining Structure But Not Content Of An Element

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n For example, assume you have these element declarations in your DTD: <!ELEMENT memo - - (top, body)>...
  • Page 258: Formatting An Element As A Boxed Set Of Paragraphs

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n To generate the appropriate content for the element on import to FrameMaker, you have two choices.
  • Page 259: Discarding A Markup Or Framemaker Attribute

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n your markup that a page or line break is desired. You can discard this element when the markup document is imported to FrameMaker and have a structure API client insert the necessary break;...
  • Page 260: Specifying A Default Value For An Attribute

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n The fontsize attribute indicates formatting for the element. You’ll have to specify that information in some other way, perhaps with a format rule in your EDD or with a structure API client.
  • Page 261: Changing An Attribute's Type Or Declared Value

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n an XML or SGML instance, or when exporting a FrameMaker document. Also, the default value is used only to initiate formatting.
  • Page 262: Creating Read-Only Attributes

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n For example, assume your DTD defines size as an attribute of type CDATA. If you know that values of this attribute always represent real numbers, you can use this rule: cdata attribute "size"...
  • Page 263 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n To create the appropriate translation, you may need to use read/write rules to rename attribute values.
  • Page 264 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n FrameMaker automatically handles certain FrameMaker formatting properties associated with tables, graphics, and equations.
  • Page 265: In This Chapter

    Translating Entities and Processing Instructions Entities in markup serve a variety of functions in markup documents. These functions can be represented in widely different ways in FrameMaker. FrameMaker does not have a single construct that corresponds with entities in markup. For information on common uses of entities, see “Entities”...
  • Page 266: Default Translation

    D e f a u l t t r a n s l a t i o n • “Translating external text entities as text insets” on page 264 • “Translating internal text entities as text insets” on page 265 •...
  • Page 267 D e f a u l t t r a n s l a t i o n If the FrameMaker document was made by importing an XML or SGML instance, and that instance had entities declared in the internal DTD subset, FrameMaker will regenerate those entity declarations when exporting the document to markup.
  • Page 268 D e f a u l t t r a n s l a t i o n Exporting special marker types as processing instructions and entity references FrameMaker uses special marker types to store information on processing instructions, PI entities, and external data entities.
  • Page 269: On Import To Framemaker

    D e f a u l t t r a n s l a t i o n On import to FrameMaker By default, FrameMaker interprets entity references as appropriate document objects, and saves enough information to recreate the associated entity declarations on export. The software stores information about the entity declaration in the following ways: •...
  • Page 270 D e f a u l t t r a n s l a t i o n If the entity text has no markup characters (as in the first example), FrameMaker translates it to a variable of the same name. If the document template does not define a variable of that name, FrameMaker uses the entity text as the variable’s definition.
  • Page 271 D e f a u l t t r a n s l a t i o n Internal SDATA entities carry specific information for the system to interpret when processing the document. You can use such entities to represent special characters or canned text. The following are examples of internal SDATA entities: <!ENTITY bullet SDATA "[bullet]">...
  • Page 272 D e f a u l t t r a n s l a t i o n External data entities XML: This section discusses the use of external entities for graphic images and other types of non-SGML data. The XML specification refers to this type of entity as a nonparsed entity.
  • Page 273 D e f a u l t t r a n s l a t i o n External text entities External text entities specify an external file which can contain either markup or character data. In effect, the contents of the external file replaces the entity reference and the parser recognizes any markup within the replacement text.
  • Page 274 D e f a u l t t r a n s l a t i o n PI entities XML: The XML specification does not support PI entities—the following information pertains to SGML, only. PI entities are processing instructions in the form of entities. They are a convenient way of providing one level of indirection, allowing the user to change the processing instructions in one place if the document is moved to a different system.
  • Page 275: Modifications To The Default Translation

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Limitations to Writing Processing Instructions An XML or SGML document should not have processing instructions after the end tag for the highest-level element in the document.
  • Page 276: Specifying The Location Of Entity Declarations

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n that applies to the entity, the entity declaration takes precedence. For an example of parameter literal text, see “Translating entities as FrameMaker variables”...
  • Page 277: Translating Entities As Framemaker Variables

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Parameter Literal Rule Page Variables "fm variable:"...
  • Page 278: Translating Sdata Entities As Special Characters In Framemaker

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Alternatively, if your DTD contains the entity declaration: <!ENTITY date SDATA "[date]">...
  • Page 279 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Without the in clause, this parameter literal or rule causes FrameMaker to simply insert the character specified by code or char when importing an SGML document.
  • Page 280: Insets

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n For information on how FrameMaker supports ISO public entities, see Appendix F, “ISO Public Entities.”...
  • Page 281: Translating Sdata Entities As Framemaker Reference Elements

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n entity "ename" is fm text inset "fname" in reference flow "flowname";...
  • Page 282: Translating External Text Entities As Text Insets

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n where fmtag is the name of an element on a FrameMaker reference page in the associated FrameMaker template and ename is an SGML entity.
  • Page 283: Translating Internal Text Entities As Text Insets

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n text insets that update manually. Authors can select these text insets to change this setting through the user interface.
  • Page 284: Changing The Structure And Formatting Of A Text Inset On Import

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Insertion of a FrameMaker text inset in a document always inserts an end of paragraph in the document.
  • Page 285: Discarding External Data Entity References

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n where ename is the entity name and the is fm text inset rule has the arguments described in “Translating internal text entities as text insets,”...
  • Page 286: Facilitating Entry Of Special Characters That Translate As Entities

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Facilitating entry of special characters that translate as entities XML: The XML specification allows UNICODE in XML.
  • Page 287: Using Entities For Storing Graphics Or Equations

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n For more information on these rules, see “processing instruction” on page 451 and “drop” on page 373.
  • Page 288 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Translating Entities and Processing Instructions...
  • Page 289: Chapter 18 Translating Tables

    Translating Tables Many documents require the use of tables to organize information into cells in rows and columns. FrameMaker has a complete tool for creating tables and has a specialized element structure for representing them. Markup does not standardize the representation of tables;...
  • Page 290: Default Translation

    D e f a u l t t r a n s l a t i o n • “Specifying which column a table cell occurs in” on page 284 • “Omitting explicit representation of table parts” on page 285 •...
  • Page 291 D e f a u l t t r a n s l a t i o n How CALS elements translate If you create an EDD from a DTD that contains the CALS table declarations, the software translates the CALS table element to a container element and translates the tgroup element to a FrameMaker table element.
  • Page 292 D e f a u l t t r a n s l a t i o n table element as a FrameMaker element of type table and to unwrap the tgroup element. If your structure application includes a FrameMaker template, the software accommodates this behavior without read/write rules.
  • Page 293: On Export To Markup

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n within that tgroup, the software checks to see if the cell element specifies a value for colsep.
  • Page 294: Formatting Properties For Tables

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n want. You’ll use rules to make minor modifications such as renaming elements or changing the ruling style for a table.
  • Page 295 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Column width: width of a single column. Column widths: width of successive columns in the table.
  • Page 296 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Row type: whether the associated table row is a heading, footing, or body row, or the associated table cell occurs in a row of that type.
  • Page 297: Identifying And Renaming Table Parts

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Vertical straddle: how many rows this straddled cell spans. Important: If you are not using the CALS table model and you want to specify straddling information on export to markup, you should use only the horizontal straddle and vertical straddle properties.
  • Page 298: Representing Framemaker Table Properties As Attributes In Markup

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n these elements. If you’re using the CALS table model, you don’t need to identify the table parts, but you may want to use different element names in FrameMaker.
  • Page 299: Representing Framemaker Table Properties Implicitly In Markup

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n If your DTD uses a particular attribute name for the same purpose within multiple elements, you may want to use this rule as a highest-level rule to set a default.
  • Page 300: Adding Format Rules That Use Cals Attributes (Cals Only)

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n For example, you may have a markup element tab2 that represents tables with a 1-inch column followed by a 2-inch column.
  • Page 301: Working With Colspecs And Spanspecs

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n For information on writing format rules, see Chapter 10, “Text Format Rules for Containers, Tables, and Footnotes.”...
  • Page 302: Specifying Which Column A Table Cell Occurs In

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Specifying which column a table cell occurs in In markup your table may not have elements for rows or particular table parts such as the heading or body.
  • Page 303: Omitting Explicit Representation Of Table Parts

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Omitting explicit representation of table parts In markup you have the flexibility of thinking of tables as either inherently structured with rows and cells or as simply a formatting choice for some completely different element structure.
  • Page 304 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Element (Table Row): GlossaryRow General rule: Term, Definition Element (Table Cell): Term General rule: <TEXT>...
  • Page 305: Creating Parts Of A Table Even When Those Parts Have No Content

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n 3. When it encounters the second label element, the software fills in the second column of the current heading row.
  • Page 306 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n To have the software create a special table part even if it has no content, use one of these rules: reader insert table title element "fmtag";...
  • Page 307: Specifying The Ruling Style For A Table

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n With the modified definitions, you use modified rules. Since label is no longer part of the markup element structure, you replace these rules: element "glossary"...
  • Page 308: Exporting Table Widths Proportionally

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Exporting table widths proportionally When you export a table, the software writes the width of the columns as absolute measurements by default.
  • Page 309 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n For example, a book on marine life might have tables of fish, including the general category and several subtypes of that category, with locations in which you can find the subtypes.
  • Page 310 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Element (Table Cell): Label General rule: <EMPTY>...
  • Page 311: Using A Table To Format An Element As A Boxed Set Of Paragraphs

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n element "loc" { is fm table cell element "Location"; fm property column number value is "3";...
  • Page 312 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n To format this element as a boxed paragraph in FrameMaker, you use a one-cell table with appropriately defined ruling properties.
  • Page 313: Creating Tables Inside Other Tables

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n For information on these rules, see “element” on page 376, “fm element” on page 397, “is fm table element”...
  • Page 314 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Translating Tables...
  • Page 315: In This Chapter

    Translating Graphics and Equations FrameMaker provides a set of tools for creating graphics or equations. It also provides tools for importing graphic objects created with another software package into a FrameMaker document. Markup, on the other hand, does not standardize the representation of either graphics or equations;...
  • Page 316: Default Translation

    D e f a u l t t r a n s l a t i o n • “Changing the name of the graphic file on export” on page 314 • “Changing the file format of the graphic file on export” on page 316 •...
  • Page 317: General Import And Export Of Graphic Elements

    D e f a u l t t r a n s l a t i o n Code Meaning FRMV FrameVector G4IM/GP4 CCITT Group 4 to Image GEM file (Windows) Graphics Interchange Format (Compuserve) HPGL Hewlett-Packard Graphics Language IGES Initial Graphics Exchange Specification (CAD files) IMG4 Image to CCITT Group 4 (UNIX)
  • Page 318: On Export To Markup

    D e f a u l t t r a n s l a t i o n or a CDATA attribute whose value is a filename containing the graphic. Other attributes can represent properties of the FrameMaker anchored frame in which the graphic sits inside a FrameMaker document.
  • Page 319 D e f a u l t t r a n s l a t i o n The default DTD declarations for graphics and equations are described in detail in the following sections. In summary, the following examples show the default declarations. <!-- graphic and equation elements-->...
  • Page 320 D e f a u l t t r a n s l a t i o n Element and attribute structure This set of declarations represents graphics and equations using elements with a declared content of EMPTY and two primary attributes, entity and file.
  • Page 321 D e f a u l t t r a n s l a t i o n • align corresponds to the alignment property and indicates the anchored frame’s horizontal alignment on the page. Its possible values and the corresponding FrameMaker property values are as follows: Attribute value Property value...
  • Page 322 D e f a u l t t r a n s l a t i o n • position corresponds to the position property and indicates where on the page to put the anchored frame. If not supplied, the value is below. Possible values of position and the corresponding FrameMaker property values are as follows: Attribute value Property value...
  • Page 323 D e f a u l t t r a n s l a t i o n FrameMaker interprets this attribute as a number of degrees of rotation. If not supplied, the value is 0.0. • impsize corresponds to the import size property and indicates the size of the imported graphic object by specifying a width and height.
  • Page 324 D e f a u l t t r a n s l a t i o n On export to markup, the software ensures the appropriate entities are in the document instance as follows. Unless otherwise specified, this table assumes the graphic element’s declaration in markup includes an entity attribute: FrameMaker: The graphic filename and entity name match...
  • Page 325: On Import To Framemaker

    D e f a u l t t r a n s l a t i o n If FrameMaker exports the single facet of a graphic element, the software exports the file in the indicated format and uses the facet name as the notation name. In all other cases, the software exports the file in CGM format and its notation name is CGM.
  • Page 326: Modifications To The Default Translation

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n information about when the software does and does not use the same graphic file, see “Creating graphic files on export”...
  • Page 327: Identifying And Renaming Graphic And Equation Elements

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n equation elements. For additional ways to modify the translation of graphics and equations, see the cross-references at the end of each section.
  • Page 328 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n where gi is a generic identifier, fmtag is an optional FrameMaker element tag, subrules are described later, and facet is a graphic facet.
  • Page 329: Renaming Markup Attributes That Correspond To Graphic Properties

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Representing the internal structure of equations As mentioned earlier in this chapter, FrameMaker treats an equation in the same way it does a graphic element.
  • Page 330: Omitting Representation Of Graphic Properties In Markup

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n With this rule, other elements can use the h attribute for different purposes. In both of these examples, the software creates an EDD from a DTD without creating an attribute that corresponds to the h attribute.
  • Page 331: Omitting Optional Elements And Attributes From The Default Dtd Declarations

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n For a summary of the FrameMaker graphic properties, see “Text of default graphics and equations declarations”...
  • Page 332: Changing The Name Of The Graphic File On Export

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n is facet; and notation_name is the data content notation in the corresponding markup entity declaration.
  • Page 333 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n where gi is a generic identifier; graphic_or_equation is one of the keywords graphic or equation;...
  • Page 334: Export

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n • “anchored frame” on page 365 •...
  • Page 335 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n For example, FrameMaker writes CGM files for all equation elements by default. If you want it to write QuickDraw PICT files instead, you can use this rule: element "eqn"...
  • Page 336: Specifying The Entity Name On Export

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n For a graphic element: On export to markup the software: Created in the FrameMaker document by Writes a graphic file named graphic1.pic...
  • Page 337: Changing How Framemaker Writes Out The Size Of A Graphic

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Assume authors import a graphic by reference into a FrameMaker element named Logo. Also assume the graphic is in a file named cologo.tif in TIFF format, so you could use the rule: element "logo"...
  • Page 338 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n where gi is a generic identifier; graphic_or_equation is one of the keywords graphic or equation;...
  • Page 339: In This Chapter

    Translating Cross-References A cross-reference is a passage in one place in a document that refers to another place, a source, in the same document or a different document. While markup does not explicitly support cross-references, it does provide the declared values ID, IDREF, and IDREFS for attributes;...
  • Page 340: On Export To Markup

    D e f a u l t t r a n s l a t i o n translates EMPTY markup language elements that use an IDREF attribute to or from FrameMaker cross-reference elements. FrameMaker interprets internal and external cross-references in multiple-file markup documents and FrameMaker books in special ways: •...
  • Page 341: On Import To Framemaker

    D e f a u l t t r a n s l a t i o n and an IDREF attribute on the cross-reference element, the export process works simply to provide a natural markup representation. If you define a cross-reference element without an IDREF attribute, then the software uses an internal mechanism for storing cross-reference information.
  • Page 342: Modifications To The Default Translation

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n When importing a markup document, FrameMaker creates a cross-reference element when it encounters an element with a single attribute whose declared value is IDREFS and declared content is EMPTY.
  • Page 343: Renaming The Markup Attributes Used With Cross-References

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Renaming the markup attributes used with cross-references (For details, see “On export to markup”...
  • Page 344: Translating Framemaker Cross-Reference Elements To Text In Markup

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Translating FrameMaker cross-reference elements to text in markup You may not want your FrameMaker cross-reference elements to remain elements in the markup representation—you can choose to translate them to text instead.
  • Page 345 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Structure Tools > Read Application Definitions command to process the modified application definition.
  • Page 346 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Translating Cross-References...
  • Page 347: In This Chapter

    Translating Variables and System Variable Elements You use variables in FrameMaker documents to store information that may change at some later time, such as a product’s name; information you know will change, such as the current date; or text that you must enter frequently. Variables make it easier for you to manage these changes.
  • Page 348: On Export To Markup

    D e f a u l t t r a n s l a t i o n • System variables are used to insert system specific calculations, such as the current date or the current page number. You cannot modify system variables. In addition, FrameMaker provides system variable elements.
  • Page 349: On Import To Framemaker

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n FrameMaker translates a non-element system variable as a reference to an entity in SGML with one of the following names: System variable Entity...
  • Page 350: Renaming Or Changing The Type Of Entities When Translating To Variables

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Renaming or changing the type of entities when translating to variables By default, FrameMaker converts non-element system variables and user variables to entity references.
  • Page 351: Translating Markup Elements As System Variable Elements

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n FrameMaker produces a reference to the general entity, but doesn’t create a new entity declaration.
  • Page 352: Entities

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Translating FrameMaker variables as SDATA entities For SGML, you can translate FrameMaker variables as SDATA entities by using the entity rule or by manipulating parameter literals.
  • Page 353: Chapter 22 Translating Markers

    Translating Markers You use markers in FrameMaker documents to store various kinds of information you don’t want visible to the document’s audience. Although there’s no analogous concept in markup, markers frequently correspond to various attributes or elements. FrameMaker provides a variety of marker types. Two of these marker types have special default translations.
  • Page 354: On Export To Markup

    D e f a u l t t r a n s l a t i o n On export to markup FrameMaker exports a marker element as an markup empty element of the same name, with two additional attributes, text and type. The value of the text attribute is the marker text;...
  • Page 355: Modifications To The Default Translation

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n template to use on import, then it translates the appropriate markup elements to marker elements when you import the document to FrameMaker.
  • Page 356: Properties To Identify Markers

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Using markup attributes and FrameMaker properties to identify markers When translating FrameMaker marker elements to markup elements, by default FrameMaker uses the markup attributes type and text.
  • Page 357 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Discarding non-element FrameMaker markers FrameMaker always allows you to insert a non-element marker in a document.
  • Page 358 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Translating Markers...
  • Page 359: Chapter 23 Translating Conditional Text

    Translating Conditional Text Conditional text is a FrameMaker mechanism for specifying portions of a document that can be included or omitted as needed. For information on working with conditional text, see the FrameMaker User Guide. When FrameMaker exports a structured document to SGML, it exports shown conditional text, but does not indicate that the text was conditional.
  • Page 360: Condition Settings

    D e f a u l t t r a n s l a t i o n Condition settings A separate processing instruction at the beginning of the XML document defines each condition tag. This processing instruction has the form: <?Fm Condition tag color style status?>...
  • Page 361: On Export To Markup

    D e f a u l t t r a n s l a t i o n For example, if a list of recipes uses condition tags to identify recipes with particular ingredients, the list can be customized for people with various food allergies. Such a document might contain markup such as: <?Fm Condstart fruit?>...
  • Page 362: On Import To Framemaker

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n permit multiple Title elements in your DTD. If you expect only one Title to be shown at a time, the EDD can still permit only a single Title.
  • Page 363 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n After you edit the application definition file, use File > Structure Tools > Read Application Definitions or restart FrameMaker to enable the option you select.
  • Page 364 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Translating Conditional Text...
  • Page 365: Chapter 24 Processing Multiple Files As Books

    Processing Multiple Files as Books FrameMaker provides a mechanism for grouping multiple FrameMaker documents into a single unit called a book. Each document remains a separate, complete FrameMaker document, but FrameMaker provides a set of facilities for working with those documents as a unit.
  • Page 366: Default Translation

    D e f a u l t t r a n s l a t i o n • “Using elements to identify book components on import” on page 351 • “Suppressing the creation of processing instructions for a book on export” on page 353 Default translation Books in FrameMaker and their counterparts in markup don’t have special structure associated with them in the EDD or DTD.
  • Page 367 D e f a u l t t r a n s l a t i o n would place the omitted end-tag before the start-tag for the next element. Since this start- tag appears after the processing instruction, the end-tag generates an error in the log file. For example, assume you have a book broken into four parts—the front matter, two chapters, and an index.
  • Page 368: On Export To Markup

    D e f a u l t t r a n s l a t i o n On export to markup FrameMaker treats documents in a FrameMaker book as external text entities. In addition to the file it creates for the entire book (the document entity), it creates a separate file for each structured document.
  • Page 369: Modifications To The Default Translation

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Each text entity starts with the appropriate document processing instruction. Thus, the entity bkc2 has the form: <?FM document ch1?>...
  • Page 370 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n This will cause occurrences of section elements to create files named Sect1.fm, Sect2.fm, and so on and occurrences of chapter elements to create files named chapter1.doc, chapter2.doc, and so on.
  • Page 371: Suppressing The Creation Of Processing Instructions For A Book On Export

    M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n the software doesn’t create a separate document file for it. On the other hand, if you import this SGML document: <!DOCTYPE chapter .
  • Page 372 M o d i f i c a t i o n s t o t h e d e f a u l t t r a n s l a t i o n Processing Multiple Files as Books...
  • Page 373: Chapter 25 Read/Write Rules Summary

    Read/Write Rules Summary This chapter lists the available read/write rules by category and briefly describes the purpose of each rule. The categories, which are arranged alphabetically, are as follows: all elements, attributes, books, entities, cross-references, footnotes, equations, markers, graphics, processing instructions, markup documents, tables, text, text insets, and variables. All Elements Use this rule Page...
  • Page 374: Books

    B o o k s Use this rule Page Translate a markup attribute to a particular is fm property FrameMaker property Translate a value for a markup attribute to is fm property value a FrameMaker property value Translate a value of a markup notation is fm value attribute or name token group to a value for a FrameMaker choice attribute...
  • Page 375: Entities

    E n t i t i e s Use this rule Page Translate a markup attribute to a particular is fm property FrameMaker property Translate a value for a markup attribute to is fm property value a FrameMaker property value Translate a value of a markup notation is fm value attribute or name token group to a value...
  • Page 376: Footnotes

    F o o t n o t e s Use this rule Page Specify export information for translating equation FrameMaker equations Specify the filename used for exporting an export to file equation Determine the form of names of entities entity name is created for exported equations Specify the data content notation for an notation is...
  • Page 377: Markers

    M a r k e r s Use this rule Page Specify export information for translating facet FrameMaker graphics that have a single inset Specify the filename used for exporting a export to file graphic or a facet of a graphic Force the software to export graphic files convert referenced graphics that were imported by reference...
  • Page 378: Processing Instructions

    P r o c e s s i n g i n s t r u c t i o n s Use this rule Page Determine whether marker text for marker marker text is elements becomes content or an attribute value in markup Drop references to external data entities external data entity...
  • Page 379: Markup Documents

    M a r k u p d o c u m e n t s Use this rule Page Discard processing instructions drop Markup documents Use this rule Page Specify whether or not to use an external include dtd DTD subset to contain the DTD for a markup document created by FrameMaker Specify whether or not to include an SGML include sgml declaration...
  • Page 380: Text

    T e x t Use this rule Page Translate a value for a markup attribute to is fm property value a FrameMaker property value Translate a value of a markup notation is fm value attribute or name token group to a value for a FrameMaker choice attribute Translate a attribute’s name token value to value...
  • Page 381 T e x t Use this rule Page Determine treatment of FrameMaker non- fm variable element variables Translate a FrameMaker system variable fm element unwrap 397, element to text in markup Discard nonelement variables drop Structure Application Developer’s Guide...
  • Page 382 T e x t Read/Write Rules Summary...
  • Page 383: Anchored Frame

    Read/Write Rules Reference This chapter provides a reference to all read/write rules, listed in alphabetical order. The entry for each rule starts with a brief explanation of the purpose of the rule and how to use it. The rule’s description may include the following sections: Synopsis and contexts The rule’s syntax and the context in which it can be used.
  • Page 384 a n c h o r e d f r a m e contain the external data entity—for instances that are not anchored frames containing only a single imported graphic object. Synopsis and contexts element "gi" { is fm graphic element ["fmtag"]; writer anchored frame subrule;...
  • Page 385: Attribute

    a t t r i b u t e To accomplish all this, use this rule: element "graphic" { is fm graphic element; writer anchored frame export to file "$(docname).pic" as "PICT"; Assume the FrameMaker document is named mydoc.fm. For the first graphic that is not a single facet, the software writes out a graphic file named mydoc1.pic in the PICT format.
  • Page 386 a t t r i b u t e Arguments An optional markup declared value, specifying the type of the markup structdv attribute. Legal values are: cdata, name, names, nmtoken, nmtokens, number, numbers, nutoken, nutokens, entity, entities, notation, id, idref, idrefs, and group. The name of a markup attribute.
  • Page 387: Character Map

    c h a r a c t e r m a p • Assume you have several elements that represent graphic objects. Each of them has an attribute w, representing the width of the object. Use this rule to make the width be 3 inches unless otherwise specified for a particular element: attribute "w"...
  • Page 388 c h a r a c t e r m a p Arguments A mapping between the character set used in the markup document cmap and the FrameMaker character set. Each cmap has one of the following forms: sgmlch = fmch; sgmlch = trap;...
  • Page 389 c h a r a c t e r m a p • By default, FrameMaker assumes that the character set your SGML documents use is ISO Latin-1. It provides a default mapping between those character sets. For details, see Appendix E, “Character Set Mapping.”...
  • Page 390: Convert Referenced Graphics

    c o n v e r t r e f e r e n c e d g r a p h i c s See also • For information on the FrameMaker character set, see the FrameMaker user’s manual. •...
  • Page 391: Do Not Include Dtd

    d o n o t i n c l u d e d t d • For graphic elements with a single TIFF facet, the following example converts the graphic files in the graphic element to PICT: element "graphic" { is fm graphic element;...
  • Page 392 d r o p 4. external data entity reference drop; 5. fm attribute "attr" drop; 6. fm element "fmtag" drop; 7. fm marker type [, . . ., type ] drop; 8. fm variable drop; 9. processing instruction drop; Arguments The name of a markup or FrameMaker attribute.
  • Page 393: Drop Content

    d r o p c o n t e n t rules in the EDD can be used to indicate a page break in FrameMaker; there is no need to mark the break with an element. To drop the markup element break, use this rule: element "break"...
  • Page 394: Element

    e l e m e n t Arguments A generic identifier. Details • You can use this rule when you have an element whose content is created in a system- specific way. Because you plan to rely on some system to create the content, the existing content at the time you import or export a document may not be relevant.
  • Page 395 e l e m e n t Synopsis and contexts element "gi" {. . . subrule; . . .} Arguments A generic identifier. The subrules of element indicate the treatment of the markup subrule element: attribute, page 367, specifies what to do with a markup element’s attributes.
  • Page 396 e l e m e n t is fm system variable element, page 433, specifies that the element corresponds to a FrameMaker system variable element. is fm table element, page 435, specifies that the element corresponds to a FrameMaker table element. is fm table part element, page 436, specifies that the element corresponds to a FrameMaker element for a particular table part, such as a table title or cell.
  • Page 397: End Vertical Straddle

    e n d v e r t i c a l s t r a d d l e writer equation, page 385, tells FrameMaker what to do with equation elements. This subrule applies only to equation elements. writer facet, page 394, tells FrameMaker what to do with a graphic element that has a single non-internal FrameMaker facet.
  • Page 398 e n d v e r t i c a l s t r a d d l e Synopsis and contexts element "gi" { is fm table row_or_cell element ["fmtag"]; reader end vertical straddle "name " [, . . . "name "] [before this row];...
  • Page 399: Entity

    e n t i t y entity You use the entity rule to translate an entity to an appropriate FrameMaker representation. With this rule, you can translate an entity to a particular character or set of characters, a reference element, a text inset, or a FrameMaker variable. If you choose to translate the entity to a text inset, you can also specify how to format that text inset in the resulting document.
  • Page 400 e n t i t y Reformat Using Target Document’s catalog; 2. While importing Remove: Manual Page Breaks; and 3. While Importing Remove: Other Format Overrides. For more information, see the section “Importing text” in Chapter 5 of the FrameMaker User Guide. retain source document formatting, page 456, specifies that the software remove the internal structure of the text inset and retain the formatting of the text inset as it appeared in the source...
  • Page 401: Entity Name Is

    e n t i t y n a m e i s • To have FrameMaker create a text inset for the legalese entity using the text in the file legal.fm and to have the software format that text inset as it appears in legal.doc, use this rule: entity "legalese"...
  • Page 402 e n t i t y n a m e i s A string representing the base name for an entity name. ename Details • By default, when FrameMaker exports an external data entity for a graphic or equation, it uses the entity name that is stored with the graphic inset. If there is no such entity name, the software generates a name for the entity based on the element name.
  • Page 403: Equation

    e q u a t i o n Rules mentioned in “element” on page 376 synopses “is fm graphic element” on page 422 “is fm equation element” on page 420 “anchored frame” on page 365 “equation” on page 385 “facet” on page 394 “writer”...
  • Page 404 e q u a t i o n Examples • Assume you have an element named math with an attribute of type Entity that is mapped to the fm property entity for this element. If you want to create TIFF files for the equations in a document named mytest.doc, you might use this rule: element "math"...
  • Page 405: Export Dpi Is

    e x p o r t d p i i s export dpi is You use the export dpi rule only in an element rule for a graphic or equation element, to provide information the software needs when writing a document containing graphics or equations to markup.
  • Page 406 e x p o r t d p i i s Examples • Assume you export the FrameMaker file Math.doc and have the following rule: element "eqn" { is fm equation element "Equation"; writer equation export dpi is 72; When FrameMaker finds an instance of the Equation element, it exports equations as graphic files at 72 dpi.
  • Page 407: Export To File

    e x p o r t t o f i l e export to file You use the export to file rule only in an element rule for a graphic or equation element, to provide information the software needs when writing a document containing graphics or equations to markup.
  • Page 408 e x p o r t t o f i l e backslashes. The fname argument can contain the variables $(docname) and $(entity), described below. A file data content format code, such as TIFF or PICT. See format Chapter 19, “Translating Graphics and Equations,” for a complete list of graphic format codes.
  • Page 409: External Data Entity Reference

    e x t e r n a l d a t a e n t i t y r e f e r e n c e When FrameMaker finds an instance of the Equation element, it generates filenames of the form MathN.eqn until it finds a name that doesn’t collide with an already existing file.
  • Page 410: External Dtd

    e x t e r n a l d t d Arguments None. Details • In markup, the values of general entity name attributes, such as those used with graphics, are not considered entity references. This rule does not affect how FrameMaker treats general entity name attributes.
  • Page 411 e x t e r n a l d t d Arguments A system identifier. sysid A public identifier. pubid Details • To use this rule, you must have a DTD specified for the current structure application. You define a structure application in the structapps.fm file. •...
  • Page 412: Facet

    f a c e t See also Related rules “include dtd” on page 408 “include sgml declaration” on page 409 “write structured document” on page 466 “write structured document instance only” on page 466 Rules mentioned in “writer” on page 467 synopses facet Use the facet rule only in an element rule for a graphic element, to provide information...
  • Page 413 f a c e t specify size in, page 456, specifies the units to use when writing the file. Details To specify all facets, use the keyword default for the facetname argument. For example: element "pict" { is fm graphic element "Picture"; writer { facet default { convert referenced graphics;...
  • Page 414: Fm Attribute

    f m a t t r i b u t e fm attribute You use the fm attribute rule with the “drop” subrule to discard an attribute that you’ve defined for a FrameMaker element but that does not exist on the corresponding markup element.
  • Page 415: Fm Element

    f m e l e m e n t See also Related rules “attribute” on page 367 “is fm attribute” on page 414 Rules mentioned in “element” on page 376 synopses “drop” on page 373 General information Chapter 16, “Translating Elements and Their Attributes” on this topic fm element Use the fm element rule to tell FrameMaker what to do on export with FrameMaker...
  • Page 416: Fm Marker

    f m m a r k e r • If Modification Date is a FrameMaker system variable element that you wish to translate to text on export to markup, use this rule: fm element "Modification Date" unwrap; See also Related rules “element”...
  • Page 417: Fm Property

    f m p r o p e r t y • The order of fm marker rules is not important. A more specific occurrence of the rule always takes precedence over a more general occurrence. For example, the following rules: fm marker "Index"...
  • Page 418 f m p r o p e r t y Arguments A FrameMaker property. Possible properties are: prop • For cross-reference elements: cross-reference format. • For graphic and equation elements: entity, file, dpi, import size, import by reference or copy, sideways, import angle, horizontal offset, vertical offset, position, baseline offset, near-side offset, alignment, cropped, floating, angle, width, or height.
  • Page 419 f m p r o p e r t y • Some FrameMaker properties have no natural markup counterparts. If you choose to not translate such properties as markup attributes, a markup document will not contain information on appropriate values for these properties. In this situation, you can use the fm property rule to explicitly set property values when reading a markup document.
  • Page 420: Fm Variable

    f m v a r i a b l e fm variable On export, use the fm variable rule to tell FrameMaker what to do with certain variables. Use this rule if you do not want them translated to entities. Read/write rules do not support double-byte characters, so you cannot use this rule to process variables with double-byte characters in their names.
  • Page 421: Fm Version

    f m v e r s i o n fm version The fm version rule specifies the version of the product being run. It is required and must be the first rule in all rules documents. If you create your rules document with the New Read/Write Rules command, this rule automatically appears in the document.
  • Page 422 g e n e r a t e b o o k A generic identifier. A filename for the book component. FrameMaker adds a counter to fname the name (before the suffix if there is one) as needed, to generate a unique filename.
  • Page 423 g e n e r a t e b o o k • There are a couple of points to consider when dividing a markup document into book components: - Every FrameMaker document must contain exactly one highest-level element. That is, there cannot be two elements in a single file that do not have an ancestor element in the same file.
  • Page 424: Implied Value Is

    i m p l i e d v a l u e i s Examples • If you know that a markup document should always correspond to a FrameMaker book and that individual files in the book should start when the document reaches a toc or chapter element, you can use this rule: reader generate book { put element "toc"...
  • Page 425 i m p l i e d v a l u e i s defined as <!ATTLIST list style (bul | num) #IMPLIED>. For importing the DTD, you can use this rule to set up a default value in the EDD for the Style attribute of the List element.
  • Page 426: Include Dtd

    i n c l u d e d t d And you have this rule: element "xref" { is fm cross-reference element; attribute "format" { is fm property cross-reference format; implied value is "Page"; When FrameMaker encounters an instance of the xref element in a markup document and that instance doesn’t have a value for the format attribute, the software use the Page cross-reference format for the cross-reference in the FrameMaker document.
  • Page 427: Include Sgml Declaration

    i n c l u d e s g m l d e c l a r a t i o n • To write an entire markup document, including a DTD and (for SGML) an SGML declaration with the document instance, you must use the following rules: writer { include sgml declaration;...
  • Page 428: Insert Table Part Element

    i n s e r t t a b l e p a r t e l e m e n t declaration is copied from the file in the associated application subset. To see the default SGML declaration used by FrameMaker, see Appendix D, “SGML Declaration.” XML: This read/write rule is for SGML-only.
  • Page 429 i n s e r t t a b l e p a r t e l e m e n t Arguments A generic identifier. A FrameMaker element tag for a table element. fmtag One of the keywords: title, heading, or footing. part A FrameMaker element tag for a table part element.
  • Page 430 i n s e r t t a b l e p a r t e l e m e n t Element (Table Row): State Head Row General rule: Label Element (Table Cell): Label General rule: <EMPTY> Text format rules 1.
  • Page 431 i n s e r t t a b l e p a r t e l e m e n t fm element "State Head" drop; fm element "State Body" unwrap; fm element "State Row" unwrap; To convert the following instance to the desired FrameMaker document: <statetab>...
  • Page 432: Is Fm Attribute

    i s f m a t t r i b u t e is fm attribute Use the is fm attribute rule to specify that a markup attribute translates to a FrameMaker attribute. The optional parts of this rule allow you to have the software make several changes to the attribute during translation.
  • Page 433 i s f m a t t r i b u t e • To specify only that the attribute is an attribute in both representations, use this version: attribute "sgmlattr" is fm attribute; • To also rename it during translation, use this version: attribute "sgmlattr"...
  • Page 434: Is Fm Char

    i s f m c h a r • Assume that a markup element has an attribute with declared value name and that the attribute has a defined set of allowable values. You can translate that attribute and some of its possible values with the following rule: element "fish"...
  • Page 435 i s f m c h a r Details • For SGML, instead of using this rule to translate an SDATA entity, you can use a parameter literal of a particular form. For information on how to do so, see “Translating SDATA entities as special characters in FrameMaker”...
  • Page 436: Is Fm Cross-Reference Element

    i s f m c r o s s - r e f e r e n c e e l e m e n t and applied to the character, and that the DTD for your application has an entity declaration for “sum”).
  • Page 437: Is Fm Element

    i s f m e l e m e n t Examples • To have the markup element xref become the FrameMaker cross-reference element Xref, use this rule: element "xref" is fm cross-reference element; • To have it become the FrameMaker cross-reference element CrossRef, use this rule: element "xref"...
  • Page 438: Is Fm Equation Element

    i s f m e q u a t i o n e l e m e n t Examples • To translate the markup element par to the FrameMaker element Paragraph, use this rule: element "par" is fm element "Paragraph"; See also Rules mentioned in “element”...
  • Page 439: Is Fm Footnote Element

    i s f m f o o t n o t e e l e m e n t • To have FrameMaker equation element Equation become the markup element eqn, use this rule: element "eqn" is fm equation element "Equation"; See also Related rules “is fm graphic element”...
  • Page 440: Is Fm Graphic Element

    i s f m g r a p h i c e l e m e n t See also Rules mentioned in “element” on page 376 synopses General information Chapter 16, “Translating Elements and Their Attributes” on this topic is fm graphic element Use the is fm graphic element rule to identify a markup element that translates to a graphic element in FrameMaker.
  • Page 441: Is Fm Marker Element

    i s f m m a r k e r e l e m e n t • To translate it to the Picture graphic element, use this rule: element "pict" is fm graphic element "Picture"; See also Related rules “is fm equation element”...
  • Page 442: Is Fm Property

    i s f m p r o p e r t y • To translate it to the Marker marker element, use this rule: element "m" is fm marker element "Marker"; See also Related rules “marker text is” on page 444 “fm marker”...
  • Page 443 i s f m p r o p e r t y • For table elements: column ruling, column widths, columns, page wide, row ruling, table border ruling, or table format. • For table cell elements: column name, column number, column ruling, end column name, horizontal straddle, more rows, rotate, row ruling, span name, start column name, or vertical straddle.
  • Page 444: Is Fm Property Value

    i s f m p r o p e r t y v a l u e element "table" { is fm table element; attribute "w" is fm property column width; Examples • The markup attribute w may be used for multiple elements to represent the width of a table’s columns.
  • Page 445 i s f m p r o p e r t y v a l u e 3. element "gi" {. . . attribute "attr" {. . . value "token" is fm property value propval; . . .} . . .} Arguments A token in a name token group.
  • Page 446 i s f m p r o p e r t y v a l u e By default, the defined values and corresponding property values for the position property are as follows: Defined value Property value inline inline below below bottom bottom...
  • Page 447 i s f m p r o p e r t y v a l u e • FrameMaker defines the table border ruling property for working with tables and the alignment and vertical alignment properties for working with colspecs and spanspecs.
  • Page 448: Is Fm Reference Element

    i s f m r e f e r e n c e e l e m e n t See also Related rules “fm property” on page 399 “is fm property” on page 424 Rules mentioned in “attribute” on page 367 synopses “element”...
  • Page 449 i s f m r e f e r e n c e e l e m e n t page in the FrameMaker template associated with the structure application. When it encounters an instance of an element associated with one of the reference pages while writing a FrameMaker document to markup, it generates an entity reference.
  • Page 450: Is Fm Rubi Element

    i s f m r u b i e l e m e n t is fm rubi element Use the is fm rubi element rule to identify a markup element that translates to a Rubi element in FrameMaker. You can choose either to have the same name in both representations or to change the name during translation.
  • Page 451: Is Fm System Variable Element

    i s f m s y s t e m v a r i a b l e e l e m e n t support double-byte characters, so you cannot use this rule to process elements with double-byte characters in their names. Synopsis and contexts element "gi"...
  • Page 452 i s f m s y s t e m v a r i a b l e e l e m e n t Synopsis and contexts element "gi" {. . . is fm system variable element ["fmtag"]; . . .} Arguments A generic identifier.
  • Page 453: Is Fm Table Element

    i s f m t a b l e e l e m e n t is fm table element Use the is fm table element rule to identify a markup element that translates to a table element in FrameMaker. You can choose either to have the same name in both representations or to change the name during translation.
  • Page 454: Is Fm Table Part Element

    i s f m t a b l e p a r t e l e m e n t See also Rules mentioned in “element” on page 376 synopses General information Chapter 18, “Translating Tables” on this topic is fm table part element Use the is fm table part element rule to identify a markup element that translates to a table part element in FrameMaker, such as a table title element.
  • Page 455: Is Fm Text Inset

    i s f m t e x t i n s e t reader end vertical straddle, page 379, indicates that the associated table row or cell element terminates a vertical table straddle. This subrule applies only if part is row or cell.
  • Page 456 i s f m t e x t i n s e t A filename containing the text to include. This file must be a fname FrameMaker document or a file of a type for which FrameMaker has a filter, for example, a MS-Word document. One of the keywords: body or reference, indicating the type of text body_or_ref flow in which to find the text to include.
  • Page 457: Is Fm Value

    i s f m v a l u e • FrameMaker requires that a structured flow have exactly one highest-level element. For this reason, you cannot use a single text inset to include multiple elements at the top level of the inset. You must use multiple text insets for this purpose. •...
  • Page 458 i s f m v a l u e 3. element "gi" {. . . attribute "attr" {. . . value "token" is fm value "val"; . . .} . . .} Arguments A token in a name token group. token An allowed value for a FrameMaker choice attribute.
  • Page 459: Is Fm Variable

    i s f m v a r i a b l e is fm variable Use the is fm variable rule to translate a declared markup text entity to a FrameMaker non-element variable. Synopsis and contexts 1. entity "ename" is fm variable ["var"]; 2.
  • Page 460 i s p r o c e s s i n g i n s t r u c t i o n in conjunction with the drop rule when you want to discard some but not all non-element markers. Synopsis and contexts fm marker ["type ", .
  • Page 461: Line Break

    l i n e b r e a k line break Use the line break rule to tell FrameMaker about any limits on the length of lines in a markup file it generates. You also use it to tell the software whether or not to interpret line breaks in a markup document as FrameMaker paragraph breaks within elements.
  • Page 462: Marker Text Is

    m a r k e r t e x t i s space informs FrameMaker that a line break within a text segment should be treated as a space. This is the default. Examples • Line breaks may need to be treated differently within different elements. For example, a line break within an example element may need to be preserved on import, while a line break within a par element may be a word break: element "example"...
  • Page 463: Notation Is

    n o t a t i o n i s With this rule, the FrameMaker element definition: Element (Marker): Marker corresponds to the DTD declarations: <!ELEMENT mkr - O EMPTY> <!ATTLIST mkr text CDATA #IMPLIED type CDATA #IMPLIED> In this case, if the FrameMaker document contains an instance of the Marker element whose marker text is “Some marker text”...
  • Page 464 n o t a t i o n i s Synopsis and contexts element "gi" { is fm graphic_or_eqn element ["fmtag"]; writer type ["facetname"] notation is "notation"; . . .}} Arguments A generic identifier. One of the keywords: graphic or equation. graphic_or_eqn One of the rules anchored frame, facet, or equation.
  • Page 465: Output Book Processing Instructions

    o u t p u t b o o k p r o c e s s i n g i n s t r u c t i o n s If you export the FrameMaker file intro.doc, the software writes the following entity declaration for the first instance of the af element that it finds: <!ENTITY af1 SYSTEM "intro1.gr"...
  • Page 466: Preserve Fm Element Definition

    p r e s e r v e f m e l e m e n t d e f i n i t i o n General information Chapter 24, “Processing Multiple Files as Books” on this topic preserve fm element definition Use the preserve fm element definition rule to tell FrameMaker, when it is updating an EDD from a revised DTD, not to update the definition of a set of FrameMaker elements and their attributes on the basis of the DTD and other rules.
  • Page 467: Preserve Line Breaks

    p r e s e r v e l i n e b r e a k s If you update the EDD containing the preceding definitions and use as input the DTD with the preceding declarations, FrameMaker replaces the definitions of Figure1 and Figure2 with: Element (Container): Figure1 General rule: Caption, Header, Line+...
  • Page 468 p r e s e r v e l i n e b r e a k s Arguments None Details • For an element using this rule, the software writes a an RE (line break) immediately after the open tag and immediately before the close tag. •...
  • Page 469: Processing Instruction

    p r o c e s s i n g i n s t r u c t i o n See also Rules mentioned in “element” on page 376 synopses Related rules “line break” on page 443 processing instruction Use the processing instruction rule to drop processing instructions that are not recognized by FrameMaker.
  • Page 470: Proportional Width Resolution Is

    p r o p o r t i o n a l w i d t h r e s o l u t i o n i s proportional width resolution is Use the proportional width resolution is rule to change the number used as the total for proportional column widths in tables.
  • Page 471: Put Element

    p u t e l e m e n t See also Related rules “use proportional widths” on page 463 General information Chapter 18, “Translating Tables” on this topic put element See “generate book” on page 403. reader The reader rule indicates a rule that applies only on import to FrameMaker. It can be used at the highest level to set a default, or within an element rule to specify information particular to that element.
  • Page 472: Reformat As Plain Text

    r e f o r m a t a s p l a i n t e x t insert table part element, page 410, specifies that FrameMaker should generate a table part (table title, table heading, or table footing) even if there is no content for that part. Allowed only within an element rule for a table element.
  • Page 473: Reformat Using Target Document Catalogs

    r e f o r m a t u s i n g t a r g e t d o c u m e n t c a t a l o g s Arguments An entity name. ename See also Related rules “reformat using target document catalogs,”...
  • Page 474: Retain Source Document Formatting

    r e t a i n s o u r c e d o c u m e n t f o r m a t t i n g General information Chapter 17, “Translating Entities and Processing Instructions” on this topic retain source document formatting Use the retain source document formatting rule in an entity rule for an entity you want to translate as a text inset in FrameMaker.
  • Page 475 s p e c i f y s i z e i n Synopsis and contexts element "gi" { is fm graphic_or_eqn element ["fmtag"]; writer type ["facetname"] specify size in units . . .} Arguments A generic identifier. One of the keywords: graphic or equation. graphic_or_eqn One of the rules anchored frame, facet, or equation.
  • Page 476: Start New Row

    s t a r t n e w r o w FrameMaker generates the attribute height="3.150cm" and attribute width="3.150cm". • However, with the same graphic, if the rule is: element "graph" { is fm graphic element; writer anchored frame specify size in mm; FrameMaker generates height="31.500mm"...
  • Page 477 s t a r t n e w r o w A FrameMaker element tag. fmtag An optional name to identify this row name Details • Your DTD may contain elements that you want to format as tables in FrameMaker even though the element hierarchy does not match that required by FrameMaker for tables.
  • Page 478: Start Vertical Straddle

    s t a r t v e r t i c a l s t r a d d l e General information Chapter 18, “Translating Tables” on this topic start vertical straddle Use the start vertical straddle rule inside the element rule for a table cell to specify that an occurrence of the cell element indicates the start of a vertical straddle.
  • Page 479: Table Ruling Style Is

    t a b l e r u l i n g s t y l e i s General information Chapter 18, “Translating Tables” on this topic table ruling style is You use the table ruling style is rule to specify the ruling style for all tables. Synopsis and contexts reader table ruling style is "style";...
  • Page 480 u n w r a p Arguments A generic identifier. A FrameMaker element tag. fmtag Details • When FrameMaker encounters an element to be unwrapped, it does not insert a corresponding element into the document it is creating. Instead, it inserts the content of an unwrapped element.
  • Page 481: Use Processing Instructions

    u s e p r o c e s s i n g i n s t r u c t i o n s See also Related rules “preserve fm element definition” on page 448 “drop” on page 373 Rules mentioned in “element”...
  • Page 482: Value

    v a l u e • Assume you have the same table as in the last example and you use this rule: writer { use proportional widths; proportional width resolution is "8"; FrameMaker writes this start-tag for the table: <table colwidth="1* 1* 2* 2* 2*"> See also Related rules “proportional width resolution is”...
  • Page 483: Value Is

    v a l u e i s Details • The rule can be used at the highest level to set a default, within a highest-level attribute rule to set the default for all attributes that use that token, or within an element rule to set the default for a particular token within a particular attribute in that element.
  • Page 484: Write Structured Document

    w r i t e s t r u c t u r e d d o c u m e n t write structured document By default, when you save a FrameMaker document to markup, the software writes out the document instance, any declarations for the internal DTD subset, and a DOCTYPE statement which references the external DTD subset, but (for SGML) not an SGML declaration nor the declarations within the external DTD subset.
  • Page 485: Writer

    w r i t e r • You cannot use the write structure document instance only rule in the same read/write rules file as any of the write structure document, include dtd, or include sgml declaration rules. See also Related rules “external dtd”...
  • Page 486 w r i t e r equation, page 385, tells FrameMaker what to do with equation elements. Allowed only with an element rule for an equation element. external dtd, page 392, specifies an external DTD to use. Allowed only at the highest level. facet, page 394, tells FrameMaker what to do with a graphic element that has a single non-internal FrameMaker facet.
  • Page 487 w r i t e r Examples • To tell FrameMaker not to use processing instructions to identify book components when writing a FrameMaker book as a markup document, use this rule: writer do not output book processing instructions; • Assume you want all graphics to be exported in TIFF format.
  • Page 488 w r i t e r Read/Write Rules Reference...
  • Page 489: Appendix A Conversion Tables For Adding Structure To Documents

    Conversion Tables for Adding Structure to Documents You can set up a conversion table to help end users automate the task of adding structure to documents. The conversion table uses paragraph and character formats to identify which document objects to wrap in elements, and element tags to identify which child elements to wrap in parent elements.
  • Page 490: Setting Up A Conversion Table

    S e t t i n g u p a c o n v e r s i o n t a b l e To add structure to a document or book, an end user chooses the Structure Current Document, Structure Documents, or Structure Current Book command from the File>Utilities submenu and refers to one of the conversion tables.
  • Page 491: Generating An Initial Conversion Table

    S e t t i n g u p a c o n v e r s i o n t a b l e For information on defining and modifying the rules in a table, see “Adding or modifying rules in a conversion table”...
  • Page 492: Setting Up A Conversion Table From Scratch

    A d d i n g o r m o d i f y i n g r u l e s i n a c o n v e r s i o n t a b l e When you create an initial table, FrameMaker does not examine the document’s format catalogs—it looks only at objects actually used in the document.
  • Page 493: About Tags In A Conversion Table

    A d d i n g o r m o d i f y i n g r u l e s i n a c o n v e r s i o n t a b l e 2.
  • Page 494: Identifying A Document Object To Wrap

    A d d i n g o r m o d i f y i n g r u l e s i n a c o n v e r s i o n t a b l e Identifying a document object to wrap To identify a document object to wrap in an element, type an object type identifier and (optionally) a format tag in the first column of the table.
  • Page 495: Identifying An Element To Wrap

    A d d i n g o r m o d i f y i n g r u l e s i n a c o n v e r s i o n t a b l e Object type Identifier Format tag...
  • Page 496: Identifying A Sequence To Wrap

    A d d i n g o r m o d i f y i n g r u l e s i n a c o n v e r s i o n t a b l e For example: Wrap this object In this element...
  • Page 497: Providing An Attribute For An Element

    A d d i n g o r m o d i f y i n g r u l e s i n a c o n v e r s i o n t a b l e For example: To identify this sequence Use this specification...
  • Page 498: Using A Qualifier With An Element

    A d d i n g o r m o d i f y i n g r u l e s i n a c o n v e r s i o n t a b l e (The string type allows any arbitrary text string.) For information on these restrictions, see “Attribute type”...
  • Page 499: Handling Special Cases

    H a n d l i n g s p e c i a l c a s e s Note that if you specify an attribute for formatting information in the second column, you cannot use the attribute as a label for preserving formatting during the conversion process. You still need to use the qualifier.
  • Page 500: Flagging Format Overrides

    H a n d l i n g s p e c i a l c a s e s To break a table or graphic out of its paragraph and promote it one level, add the keyword promote in parentheses after the element tag for the table or graphic. (The keyword is not case-sensitive.) For example: Wrap this object In this element...
  • Page 501: Wrapping Untagged Formatted Text

    H a n d l i n g s p e c i a l c a s e s Wrapping untagged formatted text It is possible for someone to format a text range by applying commands from the Font, Size, and Style submenus in the Format menu—and not use a character format at all.
  • Page 502: Tags

    T e s t i n g a n d c o r r e c t i n g a c o n v e r s i o n t a b l e text range element. This way, the graphics in a structured document will automatically have a marker identifying a location to be included in an index.
  • Page 503 T e s t i n g a n d c o r r e c t i n g a c o n v e r s i o n t a b l e You may find it helpful to wrap only document objects for your first testing pass, without wrapping in higher levels of hierarchy.
  • Page 504 T e s t i n g a n d c o r r e c t i n g a c o n v e r s i o n t a b l e Conversion Tables for Adding Structure to Documents...
  • Page 505: Appendix B The Cals Table Model

    The CALS Table Model The CALS table model is a specific set of element and attribute declarations for defining tables, defined in “Markup Requirements and Generic Style Specification for Electronic Printed Output and Exchange of Text,” MIL-M-28001B. If your markup documents use these elements and attributes or some simple variations of them, FrameMaker can translate them to tables and table parts without the assistance of read/write rules.
  • Page 506: Element And Attribute Definition List Declarations

    E l e m e n t a n d a t t r i b u t e d e f i n i t i o n l i s t d e c l a r a t i o n s Unit Abbreviation centimeter...
  • Page 507 E l e m e n t a n d a t t r i b u t e d e f i n i t i o n l i s t d e c l a r a t i o n s <!ELEMENT table - - (title?, tgroup+)>...
  • Page 508: Element Structure

    E l e m e n t s t r u c t u r e <!ELEMENT thead - O (colspec*, row+)> <!ATTLIST thead valign (top|middle|bottom) "bottom" > <!ELEMENT tfoot - O (colspec*, row+)> <!ATTLIST tfoot valign (top|middle|bottom) "top" > <!ELEMENT tbody - O (row+)>...
  • Page 509: Attribute Structure

    A t t r i b u t e s t r u c t u r e The colspec empty element has attributes describing characteristics of a table column. The spanspec empty element has attributes describing straddling characteristics of a portion of a table.
  • Page 510 A t t r i b u t e s t r u c t u r e • Using the spanname attribute as an indirect reference to the columns. • Using the colname attribute (for a non-straddled cell). The CALS Table Model...
  • Page 511: Appendix C Read/Write Rules For Cals Table Model

    Read/Write Rules for CALS Table Model By default, FrameMaker can read and write CALS tables without your intervention. For information on what it does by default and how you can change that behavior with read/ write rules, see Chapter 18, “Translating Tables.” FrameMaker does not use read/write rules to implement its default interpretation of CALS tables.
  • Page 512 element "tgroup" /* If table is a container element, use this subrule: */ is fm table element; /* If table is a table element, use this subrule: */ unwrap; /*The rest of the subrules for tgroup are always applicable.*/ attribute "cols" is fm property columns;...
  • Page 513 element "thead" is fm table heading element; attribute "valign" is fm attribute; element "tfoot" is fm table footing element; attribute "valign" is fm attribute; element "tbody" is fm table body element; attribute "valign" is fm attribute; element "row" is fm table row element; attribute "valign"...
  • Page 514 Read/Write Rules for CALS Table Model...
  • Page 515: Appendix D Sgml Declaration

    SGML Declaration To be complete, an SGML document must start with an SGML declaration. This appendix contains the text of the SGML declaration used by FrameMaker when you do not supply one. It also describes the variants of the concrete syntax that you can use in your SGML declaration and unsupported optional SGML features.
  • Page 516 T e x t o f t h e d e f a u l t S G M L d e c l a r a t i o n DESCSET 0 9 UNUSED 9 2 9 11 2 UNUSED 13 1 13 14 18 UNUSED 32 95 32...
  • Page 517: Sgml Concrete Syntax Variants

    S G M L c o n c r e t e s y n t a x v a r i a n t s MINIMIZE DATATAG NO OMITTAG YES RANK NO SHORTTAG YES LINK SIMPLE NO IMPLICIT NO EXPLICIT NO OTHER CONCUR NO SUBDOC NO...
  • Page 518: Unsupported Optional Sgml Features

    U n s u p p o r t e d o p t i o n a l S G M L f e a t u r e s • The following quantities can be increased up to 253: GRPCNT GRPGTCNT GRPLVL...
  • Page 519: Appendix E Character Set Mapping

    Character Set Mapping FrameMaker writes SGML documents using the ISO Latin-1 character set. This character set differs from FrameMaker’s character set. Consequently, the software uses a default character set mapping to translate between the character sets. XML: The XML specification allows for UNICODE in content and in markup tokens, so the use of ISO character sets is not necessary.
  • Page 520 This means that the FrameMaker character \x10 translates to the ISO Latin-1 character \x20. • If there is no row corresponding to a character code, then that character code is the same in both character sets. Character code Mapping from ISO Latin-1 to Mapping from FrameMaker FrameMaker to ISO Latin-1...
  • Page 521 Character code Mapping from ISO Latin-1 to Mapping from FrameMaker FrameMaker to ISO Latin-1 \x1C \x1C = trap trap = \x1C \x1D \x1D = trap trap = \x1D \x1E \x1E = trap trap = \x1E \x1F \x1F = trap trap = \x1F \x7F \x7F = trap trap = \x7F...
  • Page 522 Character code Mapping from ISO Latin-1 to Mapping from FrameMaker FrameMaker to ISO Latin-1 \x9A \x9A = trap \xF6 = \x9A \x9B \x9B = trap \xF5 = \x9B \x9C \x9C = trap \xFA = \x9C \x9D \x9D = trap \xF9 = \x9D \x9E \x9E = trap \xFB = \x9E...
  • Page 523 Character code Mapping from ISO Latin-1 to Mapping from FrameMaker FrameMaker to ISO Latin-1 \xBA \xBA = \xBC trap = \xBA \xBB \xBB = \xC8 \xAA = \xBB \xBC \xBC = trap \xBA = \xBC \xBD \xBD = trap trap = \xBD \xBE \xBE = trap \xE6 = \xBE...
  • Page 524 Character code Mapping from ISO Latin-1 to Mapping from FrameMaker FrameMaker to ISO Latin-1 \xDA \xDA = \xF2 \x2F = \xDA \xDB \xDB = \xF3 \xA4 = \xDB \xDC \xDC = \x86 trap = \xDC \xDD \xDD = trap trap = \xDD \xDE \xDE = trap trap = \xDE...
  • Page 525 Character code Mapping from ISO Latin-1 to Mapping from FrameMaker FrameMaker to ISO Latin-1 \xFA \xFA = \x9C trap = \xFA \xFB \xFB = \x9E \xB0 = \xFB \xFC \xFC = \x9F \xB8 = \xFC \xFD \xFD = trap trap = \xFD \xFE \xFE = trap trap = \xFE...
  • Page 526 Character Set Mapping...
  • Page 527: Appendix F Iso Public Entities

    ISO Public Entities Annex D of the SGML standard defines several sets of internal SDATA entities. Each entity represents a character; each entity set is a logical grouping of these entities. DTDs frequently include these entity sets by using parameter entity references to external entities accessed with a public identifier.
  • Page 528: What You Need To Use Iso Public Entities

    W h a t y o u n e e d t o u s e I S O p u b l i c e n t i t i e s What you need to use ISO public entities For your end users to use characters from the ISO public entity sets, your application needs two pieces of information for each character entity: the entity’s declaration, and an SGML read/write rule that tells FrameMaker how to translate a reference to that entity in an SGML...
  • Page 529: Entity Declaration Files

    W h a t y o u n e e d t o u s e I S O p u b l i c e n t i t i e s Entity declaration files Each entity declaration file starts with two comment declarations that suggest both the public identifier and the entity name by which to identify the entity set.
  • Page 530 W h a t y o u n e e d t o u s e I S O p u b l i c e n t i t i e s You can include individual files in your application’s read/write rules document by using the #include statement.
  • Page 531 W h a t y o u n e e d t o u s e I S O p u b l i c e n t i t i e s where ename is the entity name and var is one of the FrameMaker variables defined below.
  • Page 532: What Happens With The Declarations And Rules

    W h a t h a p p e n s w i t h t h e d e c l a r a t i o n s a n d r u l e s Variable Defined as FmFrac58 FmFrac78 Your end user’s documents may not have these character formats or variables defined.
  • Page 533 W h a t h a p p e n s w i t h t h e d e c l a r a t i o n s a n d r u l e s Further, assume the application has no rules or has a rules document that contains the following lines: #include "isolat1.rw"...
  • Page 534 W h a t h a p p e n s w i t h t h e d e c l a r a t i o n s a n d r u l e s ISO Public Entities...
  • Page 535: Importing Sgml Documents In Batch Mode

    SGML Batch Utilities for UNIX The UNIX version of FrameMaker provides two utility programs, fmimportsgml and fmexportsgml, in addition to the utility programs defined for FrameMaker and described in the FrameMaker user’s manual. You use fmimportsgml for batch importing of markup files and fmexportsgml for batch exporting of FrameMaker files to markup.
  • Page 536 I m p o r t i n g S G M L d o c u m e n t s i n b a t c h m o d e where: names the directory where fmimportsgml stores output -dir dir files.
  • Page 537: Exporting Documents As Sgml In Batch Mode

    E x p o r t i n g d o c u m e n t s a s S G M L i n b a t c h m o d e The software uses the MyApp application defined in structapps.fm to create the files a.doc and b.doc in the /fmbook directory.
  • Page 538: Appendix G Sgml Batch Utilities For Unix

    E x p o r t i n g d o c u m e n t s a s S G M L i n b a t c h m o d e displays the software version. When -v is specified, all other parameters are ignored.
  • Page 539: Appendix H Developing Xml Or Sgml Publishing Applications

    Developing XML or SGML Publishing Applications Implementing an XML or SGML application in the FrameMaker publishing environment Before you begin creating structure applications, you should understand the relationship between markup and FrameMaker, and the task of developing structure applications. To introduce you to the task of integrating FrameMaker in an XML or SGML publishing environment, this chapter provides: •...
  • Page 540 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t Generalized Markup Language) defines a text processing application to be “a related set of processes performed on documents of related types.”...
  • Page 541 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t processing facilitates publishing in additional media, such as CD-ROM and the Internet, as well as other applications, such as database distribution.
  • Page 542 XML document. Since users can best work with an editor if they have some visual indication of the document’s structure, applications for markup text editors, such as Adobe FrameMaker, Softquad’s XMetaL, and Arbortext’s Epic, also require some formatting specifications. Some editors also provide for rules to determine: •...
  • Page 543 F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t Adobe FrameMaker Application Development Developing a FrameMaker application shares many steps with developing a markup application for any other editing or publishing tool.
  • Page 544 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t The analysis phase The specific features of a FrameMaker application largely depend on the tasks it will perform: •...
  • Page 545 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t document.
  • Page 546 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t use throughout an organization, reexamination and systematic inspection may reveal unexpected inconsistencies and suggest new approaches.
  • Page 547: Development

    I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t Provision must also be made for ongoing support.
  • Page 548 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t Element Definition Documents At the heart of every FrameMaker application is an element definition document (EDD).
  • Page 549 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t Element Definition Document (EDD) for Reports This Element Definition Document defines the structure rules for a report.
  • Page 550 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t Moving Data Between markup and FrameMaker FrameMaker maintains the native element and attribute structure of markup in a WYSIWYG environment.
  • Page 551 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t structures between the two forms.
  • Page 552 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t •...
  • Page 553 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t FrameMaker Template Export...
  • Page 554 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t Application Definition Version 5.0 Application name: Maintenance...
  • Page 555 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t •...
  • Page 556: Typical Application Development Scenarios

    I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t Each row in the table is a separate rule.
  • Page 557 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t - Identify elements used for graphics, tables and table components, and cross- references - Discard elements and attributes that the organization will not use even if they are...
  • Page 558 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t EDD, in the definitions of the changed elements as well as in definitions that refer to those elements.
  • Page 559 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t 4.
  • Page 560: Conclusions

    I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t Wrap this object or In this element With this qualifier...
  • Page 561 Application development involves creating these files along with data analysis, documentation, and maintenance activities. Adobe, the Adobe logo, and FrameMaker are trademarks of Adobe Systems Incorporated. ©1997 Adobe Systems Incorporated. All rights reserved. Printed in the USA. 000000 9/97. Structure Application Developer’s Guide...
  • Page 562 I m p l e m e n t i n g a n X M L o r S G M L a p p l i c a t i o n i n t h e F r a m e M a k e r p u b l i s h i n g e n v i r o n m e n t Developing XML or SGML Publishing Applications...
  • Page 563: Glossary

    Glossary This glossary contains common terms used by FrameMaker, XML, and SGML. For references to more information about the terms, see the index. ancestor An element that contains a given element in a document’s structure. For example, if a Section element contains a Head element followed by a Paragraph element, and the Paragraph contains a Variable element, the Paragraph and Section elements are both ancestors of the Variable element, but the Head element is not an ancestor of the Variable element.
  • Page 564 element followed by a Paragraph element, and the Paragraph element contains a Variable element, the Head and Paragraph elements are both child elements of the Section element, but the Variable element is not. See also parent element, ancestor, descendant, and sibling. concrete syntax In SGML, a set of choices on the markup a document will use.
  • Page 565 markup does not define the term attribute type, you can loosely think of an attribute’s declared value as its type. default value In markup, the portion of an attribute definition that indicates whether an attribute is required and what value to use if the user doesn’t specify one. In FrameMaker, refers only to the value to use if a user doesn’t supply a value for an attribute.
  • Page 566 Element Catalog In FrameMaker, the information extracted from an EDD and stored within each structured FrameMaker document. Makes an external element definition document unnecessary. See also element definition document. element declaration In markup, information describing a particular element. Includes both a name (generic identifier) for the element and content rules.
  • Page 567 format rules In FrameMaker, the part of an element definition that specifies which predefined format to apply to an element. Format rules can use different formats for different contexts in a document. See also content rules. general entity In markup, an entity that can be referenced from within the content of an element or an attribute value literal.
  • Page 568 internal entity In markup, an entity whose replacement text is determined solely by information in its declaration. ISO public entity In SGML, an entity that occurs in one of the entity sets defined in Annex D of the SGML Standard. These entities provide commonly used special characters.
  • Page 569 instruction to indicate a location in an markup document that should have a page break. public identifier In markup, a way of identifying an external entity. Formal public identifiers have a specified syntax that includes an identifier of the owner of the entity and an indication of the markup construct it provides.
  • Page 570 start-tag In markup, the markup that indicates the beginning of an element. Structure API client In FrameMaker, an FDK client created to change the translation between FrameMaker and markup documents. See also FDK client. subrule In FrameMaker, an read/write rule that is part of another rule. suffix Text that is automatically placed after the content of an element.
  • Page 571 An acronym for Extensible Markup Language. By definition, XML is a subset of SGML. Structure Application Developer’s Guide...
  • Page 572 Glossary...
  • Page 573: Index

    Index entity catalogs 58-59 absolute values, in format rules 128 external entities 60-61 Advanced properties (text formatting) 154-155 filename extensions, specifying 56 {after} sibling indicator 135, 189 files for rules documents 64 alignment settings individual entities 59 for paragraphs 148 length of log files 70 for table cells 155 namespaces, enabling 56...
  • Page 574 correspondence to markup languages 231 attributes, modifying translation to and from renaming for markup languages 235 markup languages restrictions on 172 changing attribute types 243 attribute (rule) 367 discarding attributes 241 attribute types renaming attributes 235 changing for markup languages 243 renaming values 235 correspondence to markup languages 230 specifying default values 242...
  • Page 575 on export to markup languages 350-351 wrapping text formatted without 483 on import from markup languages 348-349 character map (rule) 369 books, modifying translation to and from markup character set mapping 501-507 languages characters allowed identifying book components 351-353 in attribute names 172 suppressing creation of PIs 353 in choice attribute values 175 books, read/write rules for 356...
  • Page 576 comparison with markup languages 16 finding errors in formats of 197 debugging 123 formats for 43-44 overview of 110 IDReference attributes for 179 translation to markup languages 118 object format rules for 194 context labels, in format rules 142 UniqueID attributes for 178-179 context rules (for formatting) 134-138, 188-190 cross-references, default translation to and from ancestor tags in 134, 188...
  • Page 577 Element Catalogs debugging. See errors creating in a template 103-105 default elements in an EDD catalog 81-88 attribute values 176 exporting to an EDD 80 general rules 115 element definition documents (EDDs) 75-107 initial structure for tables 122 adding comments to 90 SGML declaration 497-499 comparison with DTDs 13 descendants...
  • Page 578 structure rules in 109-124 attribute 367 text format rules in 125-167 drop 373 element (rule) 376 drop content 375 element tags element 376 correspondence to markup languages 231 fm element 397 in conversion tables 473, 475, 476 is fm element 419 in element definitions 92 preserve fm element definition 448, 449 in read/write rules 214...
  • Page 579 entities, modifying translation to and form SGML equations translating SDATA as elements 263 comparison with markup languages 20 entities, modifying translation to and from markup defining elements for 99-102 languages finding errors in sizes of 197 changing structure and format of insets 266 in conversion tables 477 discarding external data references 267 object format rules for 194...
  • Page 580 languages, translation to and from format rule overrides external data entity reference (rule) 391 object format rules and 187 external dtd (rule) 392 text format rules and 127 external DTD subsets 14, 41, 77 format rules comparison with markup languages 19 See also object format rules and text format facet (rule) 394 rules...
  • Page 581 creating graphic files on export 306 element and attribute structure 302 hidden and read-only attributes entity and file attributes 302 specifying in definitions 174 exporting entity declarations 305 HTML graphic properties 304 conversion macros 48 on export to markup languages 300-305 elements mapped from FrameMaker on import from markup languages 307 elements 47...
  • Page 582 is fm attribute (rule) 414 with autonumbers 157 is fm char (rule) 416 level rules (for formatting) 138-140 is fm cross-reference element (rule) 418 ancestor tags in 139 is fm element (rule) 419 counts using current element 139 is fm equation element (rule) 420 order of clauses in 138 is fm footnote element (rule) 421 limits on formatting values 165...
  • Page 583 fm property 399 is fm marker element 423 nested format rules 140 is fm property 424 notation is (rule) 445 is fm property value 426 {notfirst} sibling indicator 135, 189 is fm value 439 {notlast} sibling indicator 135, 189 is processing instruction 441 Numbering properties (text formatting) 153 marker text is 444 numeric attributes 172...
  • Page 584 finding errors in 166 processing instructions (PIs), read/write rules how inherited from ancestors 127-131 for 360 setting a base element format 132 drop 373 paragraphs fm marker 398 as a prefix or suffix 159, 161 is processing instruction 441 formatting elements as 143 output book processing instructions 447 parentheses processing instruction 451...
  • Page 585 syntax for 211 default for FrameMaker 497-499 uses for 201 for a DTD created from an EDD 107 variables in 213 specifying location of 57 See also specific rules and categories of rules SGML documents, read/write rules for reader (rule) 453 include sgml declaration 409 read-only attributes SGML parser...
  • Page 586 structure rules 109-124 debugging 123 tab stop settings 149 overview of 110 Table Cell properties (text formatting) 155 Structure View table ruling style is (rule) 461 attributes in 170 tables cross-references in 177 building structure from format tags 484 invalid contents in 110 comparison with markup languages 21 subrules, for format rules 140 default general rules for 115...
  • Page 587 representing properties implicitly 281 formatting specifications in 146-155 rotating tables on a page 295 how inherited from ancestors 127-131 specifying columns for cells 284 level rules in 138-140 specifying location of rows or cells 283 limits on values in 165 specifying ruling style for tables 289 multiple format rules 141 table cell paragraph properties 279...
  • Page 588 fm element unwrap 397 UniqueID attributes fm variable 402 comparison with markup languages 21 is fm system variable element 433 defining 178 is fm variable 441 translating IDs to markup languages 179 variables. See system variables or user variables using for cross-references 176 version numbers in EDDs 88 values provided by end users 178 vertical bar (|)

This manual is also suitable for:

Framemaker 7.1

Table of Contents