<?xml version="1.0" encoding="iso-8859-1"?>

<!--
ADOBE SYSTEMS INCORPORATED
Copyright 2006 © 2006 Adobe Systems Incorporated
All Rights Reserved

NOTICE:  Adobe permits you to use, modify, and distribute this file in accordance with the 
terms of the Adobe license agreement accompanying it.  If you have received this file from a 
source other than Adobe, then your use, modification, or distribution of it requires the prior 
written permission of Adobe.
-->

<!DOCTYPE dmodule [
<!NOTATION CGM PUBLIC "-//USA-DOD//NOTATION Computer Graphics Metafile//EN" "">
<!ENTITY S1000D101 SYSTEM "S1000D101.cgm" NDATA CGM>
<!ENTITY S1000D102 SYSTEM "S1000D102.cgm" NDATA CGM>
<!ENTITY S1000D103 SYSTEM "S1000D103.cgm" NDATA CGM>
<!ENTITY S1000D104 SYSTEM "S1000D104.cgm" NDATA CGM>
]>
 <dmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\S1000D221\app221\221schema\descriptSchema.xsd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:fm="http://www.itp-x.co.uk/xslt" xmlns:dc="http://www.purl.org/dc/elements/1.1/" xmlns:dm="http://www.s1000d.org/dm">
<rdf:Description>
<dc:Title>Adobe FrameMaker 7.2 Application Pack for S1000D-Information for developers</dc:Title>
<dc:Creator>00001</dc:Creator>
<dc:Subject>Adobe FrameMaker 7.2 Application Pack for S1000D-Information for developers</dc:Subject>
<dc:Publisher>00001</dc:Publisher>
<dc:Contributor>00001</dc:Contributor>
<dc:Date>2006-08-31</dc:Date>
<dc:Type>text</dc:Type>
<dc:Format>text/xml</dc:Format>
<dc:Identifier>ITPX-A-00-00-00-00A-041A-A_001-00</dc:Identifier>
<dc:Rights>01</dc:Rights>
</rdf:Description>
<idstatus>
<dmaddres>
<dmc>
<avee>
<modelic>ITPX</modelic>
<sdc>A</sdc>
<chapnum>00</chapnum>
<section>0</section>
<subsect>0</subsect>
<subject>25</subject>
<discode>00</discode>
<discodev>A</discodev>
<incode>041</incode>
<incodev>A</incodev>
<itemloc>A</itemloc>
</avee>
</dmc>
<dmtitle>
<techname>Adobe FrameMaker 7.2 Application Pack for S1000D</techname>
<infoname>Information for developers</infoname>
</dmtitle>
<issno inwork="00" type="new" issno="001"/>
<issdate month="08" day="31" year="2006"/>
</dmaddres>
<status>
<security class="01"/>
<datarest>
<instruct>
<distrib>To be made available to all Adobe FrameMaker
7.2 Application Pack for S1000D users.</distrib>
<expcont>Export of this data module to all countries that are the
residence of organizations that are users of S1000D is permitted.
Storage of this data module is to be at the discretion of the organization.</expcont>
<handling>There are no specific handling instructions for this data
module.</handling>
<destruct>Users may destroy this data module in accordance with
their own local procedures.</destruct>
<disclose>There are no dissemination limitations that apply to this
data module.</disclose>
</instruct>
<inform>
<copyright>
<para>2006 Adobe Systems Incorporated. All rights reserved.  </para>
</copyright>
<datacond>NOTICE:  Adobe permits you to use, modify, and distribute
this file in accordance with the 
terms of the Adobe license agreement accompanying it.  If you have
received this file from a 
source other than Adobe, then your use, modification, or distribution
of it requires the prior 
written permission of Adobe.</datacond>
</inform>
</datarest>
<rpc rpcname="Adobe">00001</rpc>
<orig origname="Adobe">00001</orig>
<applic/>
<brexref>
<refdm xlink:actuate="onRequest" xlink:type="simple" xlink:show="replace">
<avee>
<modelic>ITPX</modelic>
<sdc>A</sdc>
<chapnum>00</chapnum>
<section>0</section>
<subsect>0</subsect>
<subject>00</subject>
<discode>00</discode>
<discodev>A</discodev>
<incode>022</incode>
<incodev>A</incodev>
<itemloc>D</itemloc>
</avee>
<issno type="new" issno="001"/>
</refdm>
</brexref>
<qa>
<firstver type="tabtop"/>
</qa>
<skill skill="sk02"/>
</status>
</idstatus>
<content>
<descript>
<para0 id="i1014274">
<title>
<?FM MARKER [Cross-Ref] 11465: Header: XSLT stylesheets?>XSLT stylesheets</title>
<para>The XSLT stylesheets for import and export were designed to
enhance the use of structure in FrameMaker. The following table
describes the main features of the XSLT processing.</para>
<subpara1 id="BABEEBEB">
<title>
<?FM MARKER [Cross-Ref] 34788: CellBody: Figure transformation?>Figure transformation</title>
<para>The figure transformation performs several functions:<randlist prefix="pf02">
<item>Moves child &lt;hotspot&gt; elements from
the &lt;graphic&gt; object element.</item>
<item>Adds the &lt;fm:graphic&gt; element as a container for &lt;graphic&gt;,
&lt;fm:title&gt;, &lt;hotspot&gt; and &lt;rfa&gt; elements.</item>
<item>Creates new &lt;fm:title&gt; and child &lt;fm:reftitle&gt; elements
below each graphic that cross-reference to the renamed &lt;fig-title&gt;
element above the graphic. </item>
<item>The figure&#8217;s &lt;title&gt; element has been renamed to &lt;fig-title&gt;
because an id attribute has been added. Do not make any cross references
to this element because the id is dropped on export to XML.</item>
<item>All transformations are reversed for export to XML.</item>
<item>Writes out the graphic entities on export.</item>
</randlist>
</para>
<figure>
<title>Figure transformation</title>
<graphic reprowid="6.642in" reprohgt="3.527in" xlink:type="simple" boardno="S1000D101"/>
</figure>
</subpara1>
<subpara1>
<title>BREX handling</title>
<para>The BREX handling performs the following functions:<randlist prefix="pf02">
<item>Concatenates the file name of the current
data module&#8217;s referenced BREX file.</item>
<item>Merges the BREX file with the current data module and exchanges
the source alphanumeric attribute values for the full names from
the BREX.</item>
<item>Writes out a MIF file fragment for each attribute type to
the location defined by the $mifpath parameter that&#8217;s set in the
Structured Application Definition Document.</item>
</randlist>
</para>
<para>The XML application template is dynamically configured to
match the BREX.</para>
</subpara1>
<subpara1>
<title>IPD transformation</title>
<para>The IPD transform completely rearranges the IPD content structure
as shown below.</para>
<figure>
<title>IPD transformation</title>
<graphic reprowid="4.696in" reprohgt="8.829in" xlink:type="simple" boardno="S1000D102"/>
</figure>
</subpara1>
<subpara1>
<title>Cross reference transformation</title>
<para>The cross reference transformation moves all child elements
from the &lt;xref&gt; element. The existing xref element becomes a
container for the optional &lt;fm:xreftext&gt; element, which now contains the
source xref&#8217;s text content (if any). The active FrameMaker cross
reference object element is &lt;fm:xref&gt;. The complexity of the
structure is because of the restrictions on mixed content for XML.</para>
<figure>
<title>Cross reference transformation</title>
<graphic reprowid="4.377in" reprohgt="2.175in" xlink:type="simple" boardno="S1000D103"/>
</figure>
</subpara1>
<subpara1>
<title>ToC generation</title>
<para>Generates the internal ToC entries on import for Descriptive
and Procedural data modules.</para>
</subpara1>
<subpara1>
<title>Refs generation</title>
<para>Generates and sorts the reference data module list tables
on import for Descriptive and Procedural data modules.</para>
</subpara1>
<subpara1>
<title>Preliminary requirements tables</title>
<para>In the procedural data module, the preliminary requirements
information must be formatted as tables although the source XML
does not conform to any existing table structure.</para>
<subpara2>
<title>Required conditions</title>
<figure>
<title>Required conditions transformation</title>
<graphic reprowid="5.497in" reprohgt="5.820in" xlink:type="simple" boardno="S1000D104"/>
</figure>
</subpara2>
</subpara1>
<subpara1>
<title>rdf metadata generation</title>
<para>Generates the rdf:Description section on save to XML, ensuring
that the rdf metadata is always correct when saved while removing
unnecessary clutter from the FrameMaker document.</para>
</subpara1>
<subpara1 id="i1002438">
<title>
<?FM MARKER [Cross-Ref] 58945: Header: S1000D&#8482; resources?>The fm namespace</title>
<para>The XSLT transformations often add structure to match FrameMaker&#8217;s
requirements. These added elements are created in the fm namespace
to make them easy to identify. </para>
<para>The only place where this rule cannot be used is in some added
attributes elements. Although FrameMaker supports namespaces in
attribute names, it does not recognize the namespace prefix for
some EDD formatting rules. </para>
</subpara1>
</para0>
<para0 id="i1015512">
<title>
<?FM MARKER [Cross-Ref] 77533: Header: Extending the S1000D Application Pack?>Extending the S1000D Application Pack</title>
<para>The Adobe FrameMaker 7.2 Application Pack for S1000D has been designed with extensibility in mind.
The XSLT stylesheets are modular so that you can choose which to
use for your own S1000D applications. To create a new S1000D application,
follow these steps (they assume the new application is for the Schedule
data module):<seqlist>
<item>Open the Structured Application Definition
Document.</item>
<item>Copy the description template (.fm file, not MIF) and rename
it to schd221.tpl.fm.</item>
<item>Copy the description read/write rules file and rename it to
schd221.rwr.fm.</item>
<item>Add any new schedule specific rules to schd221.rwr.fm.</item>
<item>Copy the S1000D2.21Description XML application then rename
the copy as required (for example S1000D221Schedule).</item>
<item>Alter the file name references to suit the data module type.</item>
<item>Open the XML schema for the data module type. A new EDD is
created with an equivalent DTD. This DTD may be edited to create
FrameMaker specific structures. Common stuctures such as &lt;xref&gt;
and &lt;tocs&gt; can be copied from one of the existing DTDs. To ensure
that the DTD and EDD have equivalent structures, always make the
changes in the DTD then import the DTD into the EDD.</item>
<item>Create new primary XSLT stylesheets for import and export
by copying, renaming, and editing desc221.imp.xsl and desc221.exp.xsl.
Whenever you alter the DTD, you will probably need to create XSLT
transformations for import and export. Whenever possible keep your new
XSLT in separate files. These files must then be included in the
primary stylesheet using xsl:include.</item>
<item>When you have fully tested the application, save the template
as a MIF file. Open the MIF file in a text editor and insert each
BREX MIF file include statement as shown below:<randlist prefix="pf01">
<item>&lt;EDAttrDef </item>
<item>    &lt;EDAttrName `class'&gt;</item>
<item>    &lt;EDAttrRequired No&gt;</item>
<item>    &lt;EDAttrReadOnly No&gt;</item>
<item>    &lt;EDAttrHidden No&gt;</item>
<item>    include (attr221.00.mif)</item>
<item>   &gt; # end of EDAttrDef</item>
<item/>
</randlist>
</item>
</seqlist>
</para>
<subpara1>
<title>Creating XSLT stylesheets for FrameMaker</title>
<para>FrameMaker&#8217;s read/write rules share some abilities with XSLT.
It, therefore, makes sense to avoid functional overlap. Limit the
read/write rules for operations that cannot be done with XSLT, plus
non-essential element renaming.</para>
</subpara1>
</para0>
</descript>
</content>
</dmodule>
