fm version is "7.0"; #include "isoall.rw" /* Preserve some element definitions for assorted reasons: - Navigation components have different models in the FrameMaker+SGML and SGML views. - Instead of DocBooks unlimited possible values for the Mark attribute of ItemizedList (and the corresponding Override attribute of ListItem), this implementation allows only an enumerated list of possibilities - Use the Role attribute on Graphic and InlineGraphic to control the initial object format; provide an explicit choice of values - Store Comments in FM Type 18 Markers (hence do not allow subelements) - Set order of attributes for XRef - The name token "faxtile" appears in the declared value of some notation attributes even though it is not a declared notation type */ reader preserve fm element definition "Graphic", "Index", "IndexTerm", "InlineGraphic", "ItemizedList", "ListItem", "LoT", "ModeSpec", "SetIndex", "ToC", "XRef"; /* Book structure */ reader generate book for doctype "set", "book", "part" { put element "appendix" in file "app.fm"; put element "article" in file "art.fm"; put element "bibliography" in file "biblio.fm"; put element "bookinfo" in file "info.fm"; put element "chapter" in file "chap.fm"; put element "colophon" in file "colo.fm"; put element "dedication" in file "dedicate.fm"; put element "glossary" in file "gloss.fm"; put element "index" in file; put element "lot" in file; put element "part" in file; put element "preface" in file "preface.fm"; put element "refentry" in file "refent.fm"; put element "reference" in file "ref.fm"; put element "setindex" in file "setind.fm"; put element "setinfo" in file "info.fm"; put element "title" in file; put element "titleabbrev" in file "titlea.fm"; put element "toc" in file "toc.fm"; } writer do not output book processing instructions; /* Rules for case in tokens of name token groups used in declared values in attribute definitions. */ value "added" is fm value "Added"; value "CDRom" is fm value "CDRom"; value "CGM-BINARY" is fm value "CGM-BINARY"; value "CGM-CHAR" is fm value "CGM-CHAR"; value "CGM-CLEAR" is fm value "CGM-CLEAR"; value "changed" is fm value "Changed"; value "deleted" is fm value "Deleted"; value "DITROFF" is fm value "DITROFF"; value "DVI" is fm value "DVI"; value "EnvironVar" is fm value "EnvironVar"; value "EPS" is fm value "EPS"; value "EQN" is fm value "EQN"; value "FAX" is fm value "FAX"; value "genentity" is fm value "GenEntity"; value "GIF" is fm value "GIF"; value "IGES" is fm value "IGES"; value "MenuItem" is fm value "MenuItem"; value "none" is fm value "None"; value "nuber" is fm value "Number"; value "off" is fm value "Off"; value "osname" is fm value "OSname"; value "ParamEntity" is fm value "ParamEntity"; value "PIC" is fm value "PIC"; value "PS" is fm value "PS"; value "qanda" is fm value "QandA"; value "refentry" is fm value "RefEntry"; value "systemname" is fm value "SystemName"; value "TBL" is fm value "TBL"; value "TEX" is fm value "TEX"; value "TIFF" is fm value "TIFF"; /* Rules for case of attribute names. */ attribute "arch" is fm attribute "Arch"; attribute "audience" is fm attribute "Audience"; attribute "condition" is fm attribute "Condition"; attribute "conformance" is fm attribute "Conformance"; attribute "defaultlabel" is fm attribute "DefaultLabel"; attribute "fpi" is fm attribute "FPI"; attribute "id" is fm attribute "Id"; attribute "inheritnum" is fm attribute "InheritNum"; attribute "lang" is fm attribute "Lang"; attribute "levle" is fm attribute "Level"; attribute "linkmode" is fm attribute "LinkMode"; attribute "localinfo" is fm attribute "LocalInfo"; attribute "moreinfo" is fm attribute "MoreInfo"; attribute "origin" is fm attribute "Origin"; attribute "os" is fm attribute "OS"; attribute "otherterm" is fm attribute "OtherTerm"; attribute "pagenum" is fm attribute "Pagenum"; attribute "parentbook" is fm attribute "ParentBook"; attribute "relation" is fm attribute "Relation"; attribute "remap" is fm attribute "Remap"; attribute "revisionflag" is fm attribute "RevisionFlag"; attribute "role" is fm attribute "Role"; attribute "security" is fm attribute"Security"; attribute "sortas" is fm attribute "SortAs"; attribute "spanend" is fm attribute "SpanEnd"; attribute "srccredit" is fm attribute "SrcCredit"; attribute "tgroupstyle" is fm attribute "TGroupStyle"; attribute "targetdocent" is fm attribute "TargetDocEnt"; attribute "url" is fm attribute "URL"; attribute "weight" is fm attribute "Weight"; attribute "userlevel" is fm attribute "UserLevel"; attribute "vendor" is fm attribute "Vendor"; attribute "xreflabel" is fm attribute "XRefLabel"; /* Element rules. Many of these rules simply capitalize letters other than the initial one in FrameMaker+SGML element tags.*/ element "abbrev" { is fm element "Abbrev"; } element "abstract" { is fm element "Abstract"; } element "accel" { is fm element "Accel"; } element "acronym" { is fm element "Acronym"; } element "action" { is fm element "Action"; } element "address" { is fm element "Address"; } element "affiliation" { is fm element "Affiliation"; } element "alt" { is fm element "Alt"; } element "anchor" { is fm element "Anchor"; } element "answer" { is fm element "Answer"; } element "appendix" { is fm element "Appendix"; } element "appendixinfo" { is fm element "AppendixInfo"; } element "application" { is fm element "Application"; } element "area" drop; element "areaset" drop; element "areaspec" drop; element "article" { is fm element "Article"; } element "articleinfo" { is fm element "ArticleInfo"; } element "artpagenums" { is fm element "ArtPageNums"; } element "attribution" { is fm element "Attribution"; } element "audiodata" drop; element "audioobject" drop; element "author" { is fm element "Author"; } element "authorblurb" { is fm element "AuthorBlurb"; } element "authorgroup" { is fm element "AuthorGroup"; } element "authorinitials" { is fm element "AuthorInitials"; } /* * B */ element "beginpage" { is fm element "BeginPage"; } element "biblioentry" { is fm element "BiblioEntry"; } element "bibliodiv" { is fm element "BiblioDiv"; } element "bibliography" { is fm element "Bibliography"; } element "bibliographyinfo" { is fm element "BibliographyInfo"; } element "bibliomisc" { is fm element "BiblioMisc"; } element "bibliomixed" { is fm element "BiblioMixed"; } element "bibliomset" { is fm element "BiblioMSet"; } element "biblioset" { is fm element "BiblioSet"; } element "blockquote" { is fm element "BlockQuote"; } element "bookinfo" { is fm element "BookInfo"; } element "bridgehead" { is fm element "BridgeHead"; } /* * C */ element "callout" { is fm footnote element "Callout"; } element "calloutlist" drop; element "caption" { is fm element "Caption"; } element "caution" { is fm element "Caution"; } element "chapter" { is fm element "Chapter"; } element "chapterinfo" { is fm element "ChapterInfo"; } element "citation" { is fm element "Citation"; } element "citerefentry" { is fm element "CiteRefEntry"; } element "citetitle" { is fm element "CiteTitle"; } element "classname" { is fm element "Classname"; } element "classsynopsis" { is fm element "ClassSynopsis"; } element "classsynopsisinfo" { is fm element "ClassSynopsisInfo"; } element "cmdsynopsis" { is fm element "CmdSynopsis"; } element "co" drop; element "colophon" { is fm element "Colophon"; } element "collab" { is fm element "Collab"; } element "collabname" { is fm element "CollabName"; } element "command" { is fm element "Command"; } element "computeroutput" { is fm element "ComputerOutput"; } element "confdates" { is fm element "ConfDates"; } element "confgroup" { is fm element "ConfGroup"; } element "confnum" { is fm element "ConfNum"; } element "confsponsor" { is fm element "ConfSponsor"; } element "conftitle" { is fm element "ConfTitle"; } element "constant" { is fm element "Constant"; } element "constructorsynopsis" { is fm element "ConstructorSynopsis"; } element "contractnum" { is fm element "ContractNum"; } element "contractsponsor" { is fm element "ContractSponsor"; } element "contrib" { is fm element "Contrib"; } element "copyright" { is fm element "Copyright"; } element "corpauthor" { is fm element "CorpAuthor"; } element "corpname" { is fm element "CorpName"; } /* * D */ element "database" { is fm element "Database"; } element "date" { is fm element "Date"; } element "dedication" { is fm element "Dedication"; } element "destructorsynopsis" { is fm element "DestructorSynopsis"; } /* * E */ element "edition" { is fm element "Edition"; } element "editor" { is fm element "Editor"; } element "email" { is fm element "Email"; } element "emphasis" { is fm element "Emphasis"; } /* * FrameMaker+SGML does not support nested tables, so drop the element used * for this purpose. */ element "entrytbl" { drop; } element "envar" { is fm element "EnVar"; } element "epigraph" { is fm element "Epigraph"; } element "equation" { is fm element "Equation"; } element "errorcode" { is fm element "ErrorCode"; } element "errorname" { is fm element "ErrorName"; } element "errortype" { is fm element "ErrorType"; } element "example" { is fm element "Example"; } element "exceptionname" { is fm element "ExceptionName"; } /* * F */ element "figure" { is fm element "Figure"; } element "fieldsynopsis" { is fm element "FieldSynopsis"; } element "filename" { is fm element "Filename"; } element "firstname" { is fm element "FirstName"; } element "firstterm" { is fm element "FirstTerm"; } element "footnote" { is fm footnote element "Footnote"; } element "footnoteref" { is fm element "FootnoteRef"; } element "foreignphrase" { is fm element "ForeignPhrase"; } element "formalpara" { is fm element "FormalPara"; } element "funcdef" { is fm element "FuncDef"; } element "funcparams" { is fm element "FuncParams"; } element "funcprototype" { is fm element "FuncPrototype"; } element "funcsynopsis" { is fm element "FuncSynopsis"; } element "funcsynopsisinfo" { is fm element "FuncSynopsisInfo"; } element "function" { is fm element "Function"; } /* * G */ element "glossary" { is fm element "Glossary"; } element "glossaryinfo" { is fm element "GlossaryInfo"; } element "glossdef" { is fm element "GlossDef"; } element "glossdiv" { is fm element "GlossDiv"; } element "glossentry" { is fm element "GlossEntry"; } element "glosslist" { is fm element "GlossList"; } element "glosssee" { is fm element "GlossSee"; } element "glossseealso" { is fm element "GlossSeeAlso"; } element "glossterm" { is fm element "GlossTerm"; } element "graphic" { is fm graphic element "Graphic"; attribute "fileref" is fm property file; attribute "entityref" { is fm property entity; is fm attribute; } } element "graphicco" drop; element "guibutton" { is fm element "GUIButton"; } element "guiicon" { is fm element "GUIIcon"; } element "guilabel" { is fm element "GUILabel"; } element "guimenu" { is fm element "GUIMenu"; } element "guimenuitem" { is fm element "GUIMenuItem"; } element "guisubmenu" { is fm element "GUISubmenu"; } /* * H */ element "hardware" { is fm element "Hardware"; } element "highlights" { is fm element "Highlights"; } element "holder" { is fm element "Holder"; } element "honorific" { is fm element "Honorific"; } /* * I */ element "imagedata" { is fm graphic element "ImageData"; attribute "fileref" is fm property file; attribute "entityref" { is fm property entity; is fm attribute; } } element "imageobject" { is fm element "ImageObject"; } element "imageobjectco" drop; element "important" { is fm element "Important"; } element "index" { reader drop content; writer drop content; } element "indexdiv" { drop; } element "indexentry" { drop; } element "indexinfo" { is fm element "IndexInfo"; } element "indexterm" { is fm marker element "IndexTerm"; } element "informalequation" { is fm element "InformalEquation"; } element "informalexample" { is fm element "InformalExample"; } element "informalfigure" { is fm element "InformalFigure"; } element "informaltable" { is fm element "InformalTable"; attribute "colsep" is fm property column ruling; attribute "frame" is fm property table border ruling; attribute "orient" drop; attribute "pgwide" is fm property page wide; attribute "rowsep" is fm property row ruling; attribute "tabstyle" is fm property table format; } element "initializer" { is fm element "Initializer"; } element "inlineequation" { is fm element "InlineEquation"; } element "inlinegraphic" { is fm graphic element "InlineGraphic"; attribute "fileref" is fm property file; attribute "entityref" { is fm property entity; is fm attribute; } } element "inlinemediaobject" { is fm element "InlineMediaObject"; } element "interfacename" { is fm element "InterfaceName"; } element "interface" { is fm element "Interface"; } element "invpartnumber" { is fm element "InvPartNumber"; } element "isbn" { is fm element "ISBN"; } element "issn" { is fm element "ISSN"; } element "issuenum" { is fm element "IssueNum"; } element "itemizedlist" { is fm element "ItemizedList"; } element "itermset" { is fm element "ITermSet"; } /* * J */ element "jobtitle" { is fm element "JobTitle"; } /* * K */ element "keycap" { is fm element "KeyCap"; } element "keycode" { is fm element "KeyCode"; } element "keycombo" { is fm element "KeyCombo"; } element "keysym" { is fm element "KeySym"; } element "keyword" { is fm marker element "Keyword"; } element "keywordset" { is fm element "KeywordSet"; } /* * L */ element "label" drop; element "legalnotice" { is fm element "LegalNotice"; } element "lineage" { is fm element "Lineage"; } element "lineannotation" { is fm element "LineAnnotation"; } element "link" { is fm element "Link"; } element "listitem" { is fm element "ListItem"; } element "literal" { is fm element "Literal"; } element "literallayout" { is fm element "LiteralLayout"; preserve line breaks; } element "lot" { is fm element "LoT"; writer drop content; reader drop content; } element "lotentry" drop; /* * M */ element "manvolnum" { is fm element "ManVolNum"; } element "markup" { is fm element "Markup"; } element "medialabel" { is fm element "MediaLabel"; } element "mediaobject" { is fm element "MediaObject"; } element "mediaobjectco" { is fm element "MediaObjectCO"; } element "memeber" { is fm element "Member"; } element "menuchoice" { is fm element "MenuChoice"; } element "methodname" { is fm element "MethodName"; } element "methodparam" { is fm element "MethodParam"; } element "methodsynopsis" { is fm element "MethodSynopsis"; } element "modespec" { is fm element "ModeSpec"; } element "modifier" { is fm element "Modifier"; } element "mousebutton" { is fm element "MouseButton"; } element "msg" { is fm element "Msg"; } element "msgaud" { is fm element "MsgAud"; } element "msgentry" { is fm element "MsgEntry"; } element "msgexplan" { is fm element "MsgExplan"; } element "msginfo" { is fm element "MsgInfo"; } element "msglevel" { is fm element "MsgLevel"; } element "msgmain" { is fm element "MsgMain"; } element "msgorig" { is fm element "MsgOrig"; } element "msgrel" { is fm element "MsgRel"; } element "msgset" { is fm element "MsgSet"; } element "msgsub" { is fm element "MsgSub"; } element "msgtext" { is fm element "MsgText"; } /* * N */ element "note" { is fm element "Note"; } /* * O */ element "objectinfo" { is fm element "ObjectInfo"; } element "olink" { is fm element "OLink"; } element "ooclass" { is fm element "OoClass"; } element "ooexception" { is fm element "OoException"; } element "oointerface" { is fm element "OoInterface"; } element "option" { is fm element "Option"; } element "optional" { is fm element "Optional"; } element "orderedlist" { is fm element "OrderedList"; } element "orgdiv" { is fm element "OrgDiv"; } element "orgname" { is fm element "OrgName"; } element "otheraddr" { is fm element "OtherAddr"; } element "othercredit" { is fm element "OtherCredit"; } element "othername" { is fm element "OtherName"; } /* * P */ element "pagenums" { is fm element "PageNums"; } element "para" { is fm element "Para"; } element "paramdef" { is fm element "ParamDef"; } element "parameter" { is fm element "Parameter"; } element "part" { is fm element "Part"; } element "partinfo" { is fm element "PartInfo"; } element "partintro" { is fm element "PartIntro"; } element "phrase" { is fm element "Phrase"; } element "pob" { is fm element "POB"; } element "publisher" { is fm element "Publisher"; } element "preface" { is fm element "Preface"; } element "prefaceinfo" { is fm element "PrefaceInfo"; } /* * Primary is handled by the client during import * and export */ element "primaryie" drop; element "printhistory" { is fm element "PrintHistory"; } element "procedure" { is fm element "Procedure"; } element "productname" { is fm element "ProductName"; } element "productnumber" { is fm element "ProductNumber"; } element "programlisting" { is fm element "ProgramListing"; } element "programlistingco" drop; element "property" { is fm element "Property"; } element "prompt" { is fm element "Prompt"; } element "pubdate" { is fm element "PubDate"; } element "publisher" { is fm element "Publisher"; } element "publishername" { is fm element "PublisherName"; } element "pubsnumber" { is fm element "PubsNumber"; } /* * Q */ element "qandadiv" { is fm element "QandADiv"; } element "qandaentry" { is fm element "QandAEntry"; } element "qandaset" { is fm element "QandASet"; } element "question" { is fm element "Question"; } element "quote" { is fm element "Quote"; } /* * R */ element "refclass" { is fm element "RefClass"; } element "refdescriptor" { is fm element "RefDescriptor"; } element "refentry" { is fm element "RefEntry"; } element "refentryinfo" { is fm element "RefEntryInfo"; } element "refentrytitle" { is fm element "RefEntryTitle"; } element "reference" { is fm element "Reference"; } element "referenceinfo" { is fm element "ReferenceInfo"; } element "refmeta" { is fm element "RefMeta"; } element "refmiscinfo" { is fm element "RefMiscInfo"; } element "refname" { is fm element "RefName"; } element "refnamediv" { is fm element "RefNameDiv"; } element "refpurpose" { is fm element "RefPurpose"; } element "refsect1" { is fm element "RefSect1"; } element "refsect1info" { is fm element "RefSect1Info"; } element "refsect2" { is fm element "RefSect2"; } element "refsect2info" { is fm element "RefSect2Info"; } element "refsect3" { is fm element "RefSect3"; } element "refsect3info" { is fm element "RefSect3Info"; } element "refsynopsisdiv" { is fm element "RefSynopsisDiv"; } element "refsynopsisdivinfo" { is fm element "RefSynopsisDivInfo"; } element "releaseinfo" { is fm marker element "ReleaseInfo"; marker text is content; } element "remark" { is fm marker element; marker text is content; } element "replaceable" { is fm element "Replaceable"; } element "returnvalue" { is fm element "ReturnValue"; } element "revdescription" { is fm element "RevDescription"; } element "revhistory" { is fm element "RevHistory"; } element "revision" { is fm element "Revision"; } element "revnumber" { is fm element "RevNumber"; } element "revremark" { is fm element "Revremark"; } /* * S */ element "sbr" { is fm element "Sbr"; } element "screen" { preserve line breaks; is fm element "Screen"; } element "screenco" drop; element "screeninfo" { is fm element "ScreenInfo"; } element "screenshot" { is fm element "ScreenShot"; } /* * Secondary is handled by the client during import and export */ element "secondaryie" drop; element "sect1" { is fm element "Sect1"; } element "sect1info" { is fm element "Sect1Info"; } element "sect2" { is fm element "Sect2"; } element "sect2info" { is fm element "Sect2Info"; } element "sect3" { is fm element "Sect3"; } element "sect3info" { is fm element "Sect3Info"; } element "sect4" { is fm element "Sect4"; } element "sect4info" { is fm element "Sect4Info"; } element "sect5" { is fm element "Sect5"; } element "sect5info" { is fm element "Sect5Info"; } element "section" { is fm element "Section"; } element "sectioninfo" { is fm element "SectionInfo"; } /* * See is handled by the client during import and export */ /* * SeeAlso is handled by the client during import and export */ element "seealsoie" drop; element "seeie" drop; element "seg" { is fm element "Seg"; } element "seglistitem" { is fm element "SegListItem"; } element "segtitle" { is fm element "SegTitle"; } element "segmentedlist" { is fm element "SegmentedList"; } element "seriesvolnums" { is fm element "SeriesVolNums"; } element "set" { is fm element "Set"; } element "setindex" { is fm element "SetIndex"; reader drop content; writer drop content; } element "setindexinfo" { is fm element "SetIndexInfo"; } element "setinfo" { is fm element "SetInfo"; } element "sgmltag" { is fm element "SGMLTag"; } element "shortaffil" { is fm element "ShortAffil"; } element "shortcut" { is fm element "Shortcut"; } element "sidebar" { is fm element "Sidebar"; } element "sidebarinfo" { is fm element "SidebarInfo"; } element "simpara" { is fm element "SimPara"; } element "simplelist" { is fm element "SimpleList"; } element "simplemsgentry" { is fm element "SimpleMsgEntry"; } element "simplesect" { is fm element "SimpleSect"; } element "step" { is fm element "Step"; } element "structfield" { is fm element "StructField"; } element "structname" { is fm element "StructName"; } element "subject" { is fm element "Subject"; } element "subjectset" { is fm element "SubjectSet"; } element "subjectterm" { is fm marker element; marker text is content; } element "subscript" { is fm element "Subscript"; } element "substeps" { is fm element "SubSteps"; } element "subtitle" { is fm element "Subtitle"; } element "superscript" { is fm element "Superscript"; } element "surname" { is fm element "Surname"; } element "symbol" { is fm element "Symbol"; } element "synopfragment" { is fm element "SynopFragment"; } element "synopfragmentref" { is fm element "SynopFragmentRef"; } element "synopsis" { is fm element "Synopsis"; } element "systemitem" { is fm element "SystemItem"; } /* * T */ element "table" { is fm element "Table"; attribute "orient" drop; } element "tbody" { is fm table body element "TBody"; } element "term" { is fm element "Term"; } /* * Tertiary is handled by the client during import and export */ element "tertiaryie" drop; element "tfoot" { is fm table footing element "TFoot"; } element "tgroup" { is fm table element "TGroup"; attribute "tgroupstyle" is fm property table format; } element "thead" { is fm table heading element "THead"; } element "tip" { is fm element "Tip"; } element "title" { is fm element "Title"; } element "titleabbrev" { is fm element "TitleAbbrev"; } /* * exporting the ToC element to the DocBook DTD is not implemented. */ fm element "toc" drop; element "toc" { is fm element "ToC"; reader drop content; } element "tocback" drop; element "tocchap" drop; element "tocentry" drop; element "tocfront" drop; element "toclevel1" drop; element "toclevel2" drop; element "toclevel3" drop; element "toclevel4" drop; element "toclevel5" drop; element "tocpart" drop; element "textobject" { is fm element "TextObject"; } element "token" { is fm element "Token"; } element "trademark" { is fm element "Trademark"; } element "type" { is fm element "Type"; } /* * U */ /* * ULink is handled by the client during import and export */ element "userinput" { is fm element "UserInput"; } /* * V */ element "varlistentry" { is fm element "VarListEntry"; } element "variablelist" { is fm element "VariableList"; } element "varname" { is fm element "VarName"; } element "varargs" { is fm element "varargs"; } element "videodata" drop; element "videoobject" drop; element "volumenum" { is fm element "VolumeNum"; } element "void" { is fm element "void"; } element "warning" { is fm element "Warning"; } element "wordasword" { is fm element "WordAsWord"; } element "xref" { is fm cross-reference element "XRef"; attribute "role" is fm property cross-reference format; attribute "linkend" is fm property cross-reference id; } element "year" { is fm element "Year"; }