<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fm="http://www.itp-x.co.uk/xslt">

<!--
****************************************************************
* 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.                                                    *
* _____________________________________________________________*
* Adobe FrameMaker 7.2 Application Pack for S1000D             *
*                                                              *
* Preliminary requirements import transform                    *
* Version   Date         By                                    *
* 0.2b      2006-08-21   Ian Proudfoot, iTP-X                  *
*                                                              *
****************************************************************
-->
	<xsl:template name="rtitle-id">
		<xsl:element name="fm:rtitle">
			<xsl:attribute name="id">
				<xsl:value-of select="generate-id()"/>
			</xsl:attribute>
			<xsl:element name="fm:tcont"/>
		</xsl:element>
	</xsl:template>

	<xsl:template match="reqconds">
		<xsl:element name="reqconds">
			<xsl:call-template name="rtitle-id"/>
			<xsl:element name="fm:rhead">
				<xsl:element name="fm:rhrow">
					<xsl:element name="fm:rhcell"/>
				</xsl:element>
			</xsl:element>
			<xsl:element name="fm:reqbody">
				<xsl:for-each select="noconds">
					<xsl:element name="fm:noconds.row">
						<xsl:element name="fm:noconds">
							<xsl:copy-of select="."/>
						</xsl:element>
					</xsl:element>
				</xsl:for-each>
				<xsl:for-each select="reqcond">
					<xsl:element name="fm:reqcond.row">
						<xsl:element name="fm:reqcond">
							<xsl:element name="reqcond">
								<xsl:apply-templates/>
							</xsl:element>
						</xsl:element>
					</xsl:element>
				</xsl:for-each>
				<xsl:for-each select="reqcondm">
					<xsl:element name="fm:reqcondm.row">
						<xsl:element name="fm:reqcondm">
							<xsl:element name="reqcondm">
								<xsl:apply-templates/>
							</xsl:element>
						</xsl:element>
					</xsl:element>
				</xsl:for-each>
				<xsl:for-each select="reqcontp">
					<xsl:element name="fm:reqcontp.row">
						<xsl:element name="fm:reqcontp">
							<xsl:element name="reqcontp">
								<xsl:apply-templates/>
							</xsl:element>
						</xsl:element>
					</xsl:element>
				</xsl:for-each>
			</xsl:element>
		</xsl:element>
	</xsl:template>

	<xsl:template match="reqpers">
		<xsl:element name="reqpers">
			<xsl:call-template name="rtitle-id"/>
			<xsl:element name="fm:reqpers.head">
				<xsl:element name="fm:reqpers.hrow">
					<xsl:element name="fm:head1"/>
					<xsl:element name="fm:head2"/>
					<xsl:element name="fm:head3"/>
					<xsl:element name="fm:head4"/>
					<xsl:element name="fm:head5"/>
				</xsl:element>
			</xsl:element>
			<xsl:element name="fm:reqpers.body">
				<xsl:for-each select="asrequir|person">
					<xsl:choose>
						<xsl:when test="following-sibling::perscat[1]">
							<xsl:element name="fm:reqpers.row">
								<xsl:element name="fm:person">
									<xsl:copy-of select="."/>
								</xsl:element>
								<xsl:element name="fm:perscat">
									<xsl:copy-of select="following-sibling::perscat[1]"/>
								</xsl:element>
								<xsl:element name="fm:perskill">
									<xsl:apply-templates select="following-sibling::perskill[1]"/>
								</xsl:element>
								<xsl:element name="fm:trade">
									<xsl:copy-of select="following-sibling::trade[1]"/>
								</xsl:element>
								<xsl:element name="fm:esttime">
									<xsl:copy-of select="following-sibling::esttime[1]"/>
								</xsl:element>
							</xsl:element>
						</xsl:when>
						<xsl:otherwise>
							<xsl:element name="fm:asrequir.row">
								<xsl:element name="fm:person">
									<xsl:copy-of select="."/>
								</xsl:element>
								<xsl:element name="fm:empty"/>
								<xsl:element name="fm:empty"/>
								<xsl:element name="fm:empty"/>
								<xsl:element name="fm:empty"/>
							</xsl:element>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:for-each>
			</xsl:element>
		</xsl:element>
	</xsl:template>
	<!--Support Equipment-->
	<xsl:template match="supequip">
		<xsl:element name="supequip">
			<xsl:call-template name="rtitle-id"/>
			<xsl:element name="fm:slist.head">
				<xsl:element name="fm:slist.hrow">
					<xsl:element name="fm:head1"/>
					<xsl:element name="fm:head2"/>
					<xsl:element name="fm:head3"/>
				</xsl:element>
			</xsl:element>
			<xsl:element name="supeqli">
				<xsl:choose>
					<xsl:when test="supeqli/supequi/nosupeq">
						<xsl:element name="fm:none.row">
							<xsl:element name="fm:empty"/>
							<xsl:element name="fm:empty"/>
							<xsl:element name="fm:empty"/>
						</xsl:element>
					</xsl:when>
					<xsl:otherwise>
						<xsl:for-each select="supeqli/supequi">
							<xsl:element name="supequi">
								<xsl:copy-of select="@*"/>
								<xsl:element name="fm:nomen">
									<xsl:copy-of select="applic"/>
									<xsl:copy-of select="nomen"/>
								</xsl:element>
								<xsl:element name="fm:ident">
									<xsl:copy-of select="csnref"/>
									<xsl:copy-of select="isn"/>
									<xsl:copy-of select="identno"/>
									<xsl:copy-of select="refs"/>
									<xsl:copy-of select="remarks"/>
								</xsl:element>
								<xsl:element name="fm:qty">
									<xsl:copy-of select="qty"/>
								</xsl:element>
							</xsl:element>
						</xsl:for-each>
					</xsl:otherwise>
				</xsl:choose>
			</xsl:element>
		</xsl:element>
	</xsl:template>
	<!--Supplies-->
	<xsl:template match="supplies">
		<xsl:element name="supplies">
			<xsl:call-template name="rtitle-id"/>
			<xsl:element name="fm:slist.head">
				<xsl:element name="fm:slist.hrow">
					<xsl:element name="fm:head1"/>
					<xsl:element name="fm:head2"/>
					<xsl:element name="fm:head3"/>
				</xsl:element>
			</xsl:element>
			<xsl:element name="supplyli">
				<xsl:choose>
					<xsl:when test="nosupply">
						<xsl:element name="fm:none.row">
							<xsl:element name="fm:empty"/>
							<xsl:element name="fm:empty"/>
							<xsl:element name="fm:empty"/>
						</xsl:element>
					</xsl:when>
					<xsl:otherwise>
						<xsl:for-each select="supplyli/supply">
							<xsl:element name="supply">
								<xsl:copy-of select="@*"/>
								<xsl:element name="fm:nomen">
									<xsl:copy-of select="applic"/>
									<xsl:copy-of select="nomen"/>
								</xsl:element>
								<xsl:element name="fm:ident">
									<xsl:copy-of select="csnref"/>
									<xsl:copy-of select="isn"/>
									<xsl:copy-of select="identno"/>
									<xsl:copy-of select="refs"/>
									<xsl:copy-of select="remarks"/>
								</xsl:element>
								<xsl:element name="fm:qty">
									<xsl:copy-of select="qty"/>
								</xsl:element>
							</xsl:element>
						</xsl:for-each>
					</xsl:otherwise>
				</xsl:choose>
			</xsl:element>
		</xsl:element>
	</xsl:template>
	<!--Spares-->
	<xsl:template match="spares">
		<xsl:element name="spares">
			<xsl:call-template name="rtitle-id"/>
			<xsl:element name="fm:slist.head">
				<xsl:element name="fm:slist.hrow">
					<xsl:element name="fm:head1"/>
					<xsl:element name="fm:head2"/>
					<xsl:element name="fm:head3"/>
				</xsl:element>
			</xsl:element>
			<xsl:element name="sparesli">
				<xsl:choose>
					<xsl:when test="nospares">
						<xsl:element name="fm:none.row">
							<xsl:element name="fm:empty"/>
							<xsl:element name="fm:empty"/>
							<xsl:element name="fm:empty"/>
						</xsl:element>
					</xsl:when>
					<xsl:otherwise>
						<xsl:for-each select="sparesli/spare">
							<xsl:element name="spare">
								<xsl:copy-of select="@*"/>
								<xsl:element name="fm:nomen">
									<xsl:copy-of select="applic"/>
									<xsl:copy-of select="nomen"/>
								</xsl:element>
								<xsl:element name="fm:ident">
									<xsl:copy-of select="csnref"/>
									<xsl:copy-of select="isn"/>
									<xsl:copy-of select="identno"/>
									<xsl:copy-of select="refs"/>
									<xsl:copy-of select="remarks"/>
								</xsl:element>
								<xsl:element name="fm:qty">
									<xsl:copy-of select="qty"/>
								</xsl:element>
							</xsl:element>
						</xsl:for-each>
					</xsl:otherwise>
				</xsl:choose>
			</xsl:element>
		</xsl:element>
	</xsl:template>
</xsl:stylesheet><!-- Stylus Studio meta-information - (c) 2004-2006. Progress Software Corporation. All rights reserved.
<metaInformation>
<scenarios ><scenario default="yes" name="copy" userelativepaths="yes" externalpreview="no" url="..\Examples\DMC&#x2D;S1000DBIKE&#x2D;AAA&#x2D;DA2&#x2D;30&#x2D;00&#x2D;0000&#x2D;520A&#x2D;A_001&#x2D;02.XML" htmlbaseurl="" outputurl="" processortype="internal" useresolver="yes" profilemode="0" profiledepth="" profilelength="" urlprofilexml="" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext="" validateoutput="no" validator="internal" customvalidator=""/></scenarios><MapperMetaTag><MapperInfo srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/><MapperBlockPosition></MapperBlockPosition><TemplateContext></TemplateContext><MapperFilter side="source"></MapperFilter></MapperMetaTag>
</metaInformation>
-->