buildframework/helium/sf/java/sysdef/demo/data/sf/os/buildtools/bldsystemtools/sysdeftools/filtering.xsl
author wbernard
Fri, 13 Aug 2010 14:59:05 +0300
changeset 628 7c4a911dc066
parent 587 85df38eb4012
permissions -rw-r--r--
helium_11.0.0-e00f171ca185
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     1
<?xml version="1.0"?>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     2
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common"  exclude-result-prefixes="exslt">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     3
<!--Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     4
	All rights reserved.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     5
	This component and the accompanying materials are made available
628
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
     6
	under the terms of the License "Eclipse Public License v1.0"
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     7
	which accompanies this distribution, and is available
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     8
	at the URL "http://www.eclipse.org/legal/epl-v10.html".
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     9
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    10
	Initial Contributors:
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    11
	Nokia Corporation - initial contribution.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    12
	Contributors:
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    13
	Description:
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    14
	Filter a sysdef in the 2.0 or 3.0 syntax
628
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    15
	The functionality of these filters is not supported outside of this tool. 
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    16
	The filtering concepts here may not be carried forward in future system definition processing tools
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    17
-->
628
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    18
<!--Description:This filters a sysdef in either the 2.0 or 3.0 syntax
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    19
If using the 3.0 syntax, specific IDs optionally be included verbatim
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    20
-->
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    21
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    22
<!--Input:<sysdef> - (required) The system definition XML file to process.
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    23
		Can be in the 2.0 or 3.0 format, and can be a fragment or
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    24
		stand-alone.-->
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    25
<!--Output:<sysdef> - (optional) The system definition XML file to save the
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    26
		output as. If not present it will write to stdout.-->
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    27
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    28
<xsl:output method="xml" indent="yes"/>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    29
628
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    30
<xsl:param name="filter-type">only</xsl:param>
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    31
<!-- <type> - The method of filtering. Legal values are:
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    32
		"only" = every component/unit can only have zero or more of
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    33
			these specified filters. ie, it can only have filters
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    34
			from this list, no other filters are allowed. This
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    35
			covers the common use case of "I want anything with gt
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    36
			and or techview, but no other filters" that was the
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    37
			first step in all old symbian.com builds. 
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    38
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    39
		"has" =  every component/unit must have all of these filters.
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    40
			ie it can have any other filters, but all specified
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    41
			filters must all be present. This covers the case where
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    42
			filter="test" identifies tests and there is no special
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    43
			filter to identify things that are not tests. So a
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    44
			filter for "!test" will strip out anything with
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    45
			filter="test" (plus any other filters) for a production
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    46
			build, and a filter of "test" will strip out everything
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    47
			that does not have filter="test" (plus any other
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    48
			filters) for a test build. Opposite filters will
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    49
			generate sets that are exactly opposite to each other.
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    50
628
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    51
		"with" =  components/units that have the opposite filter are
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    52
			removed. This covers the old symbian.com case of
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    53
			java, !java and "don't care" components. In other words
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    54
			we have a global feature that every item can be built
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    55
			only when the feature is set, only when the feature is
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    56
			not set, or it does not care and will always be built.
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    57
			So for a !java build only items containing filter="java"
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    58
			are stripped out. For a java build, only items with
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    59
			filter="!java" are stripped out. Anything which does not
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    60
			explicitly mention java are always unaffected. Opposite
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    61
			filters will generate sets which overlap.
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    62
-->
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    63
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    64
628
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    65
<xsl:param name="filter"/> <!-- <list> - (required) A comma-separated list of filters
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    66
		used to process the sysdef.-->
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    67
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    68
<xsl:param name="addbuild" select="0"/> <!--1 - (optional) If present, it will add a system build
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    69
		section that accepts everything. This is needed for genxml
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    70
		processing -->
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    71
628
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    72
<xsl:param name="verbatim"/> <!-- <list> - (optional) A comma-separated list of system
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    73
		model IDs to include unfiltered. IDs must take the form as in
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    74
		the document they appear (ie using the same namespace prefix).
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    75
		This does not work on 2.0 syntax sysdefs. -->
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    76
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    77
<xsl:variable name="ID-list" select="concat(',',translate(normalize-space($verbatim),' ',''),',')"/> <!-- remove all spaces from $idlist and add surrounding commas for easier processing-->
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    78
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    79
<xsl:template match="node()|@*"><xsl:copy-of select="."/></xsl:template>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    80
<xsl:template match="*"><xsl:param name="data"/>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    81
	<xsl:copy>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    82
		<xsl:copy-of select="@*"/>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    83
		<xsl:apply-templates select="node()">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    84
			<xsl:with-param name="data" select="$data"/>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    85
		</xsl:apply-templates>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    86
	</xsl:copy>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    87
</xsl:template>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    88
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    89
<xsl:template match="component|unit"><xsl:param name="data"/> <!-- filterable items -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    90
	 <xsl:variable name="display">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    91
	 	<xsl:apply-templates select="$data" mode="filter">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    92
			<xsl:with-param name="item" select="current()"/>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    93
		</xsl:apply-templates>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    94
	 </xsl:variable>
628
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    95
	 <xsl:if test="$display != 'hide' or ($verbatim != '' and ancestor-or-self::*[contains($ID-list,concat(',',@id,','))])"> 
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    96
		<!-- if 'hide', remove completely from the output, but always include any ID listed as a $ID-list item-->
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    97
		<xsl:copy>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    98
			<xsl:copy-of select="@*"/>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    99
			<xsl:apply-templates select="node()">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   100
				<xsl:with-param name="data" select="$data"/>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   101
			</xsl:apply-templates>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   102
		</xsl:copy>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   103
	</xsl:if>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   104
</xsl:template>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   105
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   106
<xsl:template match="/SystemDefinition">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   107
	<xsl:variable name="f">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   108
		<xsl:element name="filter-{$filter-type}">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   109
			<xsl:call-template name="filter-list">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   110
				<xsl:with-param name="f" select="$filter"/>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   111
			</xsl:call-template>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   112
		</xsl:element>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   113
	</xsl:variable>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   114
	<xsl:choose>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   115
		<xsl:when test="starts-with(@schema,'3.0')"/> <!-- no DTD needed for 3.0 sysdef -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   116
		<xsl:when test="$addbuild">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   117
			<xsl:call-template name="DTD-bld"/> <!-- insert 2.0.1 DTD w/sysbuild parts-->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   118
		</xsl:when>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   119
		<xsl:otherwise>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   120
			<xsl:call-template name="DTD"/> <!-- insert 2.0.1 DTD -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   121
		</xsl:otherwise>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   122
	</xsl:choose>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   123
	<xsl:copy>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   124
		<xsl:copy-of select="@*"/>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   125
		<xsl:variable name="content"> <!-- save content for potential further processing -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   126
			<xsl:apply-templates select="node()">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   127
				<xsl:with-param name="data" select="exslt:node-set($f)/*"/>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   128
			</xsl:apply-templates>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   129
		</xsl:variable>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   130
		<!-- just output content as is. We could create a template to remove any filtered out items, but so far there's no compelling need -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   131
		<xsl:copy-of select="$content"/>  
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   132
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   133
		<xsl:if test="$addbuild">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   134
			<SystemBuild schema="1.0.0">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   135
				<configuration name="any" description="text">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   136
					<xsl:attribute name="filter">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   137
						<xsl:for-each select="//@filter[not(.=following::*/@filter)]">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   138
							<xsl:value-of select="."/><xsl:if test="position()!=last()">,</xsl:if>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   139
						</xsl:for-each>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   140
					</xsl:attribute>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   141
					<xsl:for-each select="exslt:node-set($content)/systemModel/layer[descendant::unit]">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   142
						<!-- only include layers we know have units -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   143
						<ref item="{@name}"/>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   144
					</xsl:for-each>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   145
				</configuration>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   146
			</SystemBuild>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   147
		</xsl:if>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   148
	</xsl:copy>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   149
</xsl:template>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   150
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   151
628
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
   152
<xsl:include href="lib/filter-module.xsl"/>
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   153
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   154
<xsl:template name="DTD-bld">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   155
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE SystemDefinition [
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   156
 <!ELEMENT SystemDefinition ( systemModel?, SystemBuild? )>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   157
 <!ATTLIST SystemDefinition
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   158
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   159
  schema CDATA #REQUIRED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   160
 <!ELEMENT systemModel (layer+)>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   161
 <!ELEMENT layer (block* | collection*)*>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   162
 <!ATTLIST layer
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   163
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   164
  long-name CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   165
  levels NMTOKENS #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   166
  span CDATA #IMPLIED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   167
 <!ELEMENT block (subblock* | collection*)*>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   168
 <!ATTLIST block
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   169
  levels NMTOKENS #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   170
  span CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   171
  level NMTOKEN #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   172
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   173
  long-name CDATA #IMPLIED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   174
 <!ELEMENT subblock (collection)*>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   175
 <!ATTLIST subblock
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   176
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   177
  long-name CDATA #IMPLIED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   178
 <!ELEMENT collection (component)*>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   179
 <!ATTLIST collection
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   180
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   181
  long-name CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   182
  level NMTOKEN #IMPLIED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   183
 <!ELEMENT component (unit)*>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   184
 <!ATTLIST component
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   185
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   186
  long-name CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   187
  deprecated CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   188
  introduced CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   189
  contract CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   190
  plugin (Y|N) "N"
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   191
  filter CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   192
  class NMTOKENS #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   193
  supports CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   194
  purpose ( optional | mandatory | development ) "optional">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   195
 <!ELEMENT unit EMPTY>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   196
 <!ATTLIST unit
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   197
  mrp CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   198
  filter CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   199
  bldFile CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   200
  root CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   201
  version NMTOKEN #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   202
  prebuilt NMTOKEN #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   203
  late (Y|N) #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   204
  priority CDATA #IMPLIED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   205
 <!ELEMENT SystemBuild (option* | target+ | targetList+ | list+ | configuration+)*>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   206
 <!ATTLIST SystemBuild schema CDATA #REQUIRED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   207
 <!ELEMENT list (ref+)>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   208
 <!ATTLIST list
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   209
  name ID #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   210
  description CDATA #REQUIRED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   211
 <!ELEMENT ref EMPTY>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   212
 <!ATTLIST ref item CDATA #REQUIRED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   213
 <!ELEMENT targetList EMPTY>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   214
 <!ATTLIST targetList
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   215
  name ID #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   216
  description CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   217
  target IDREFS #REQUIRED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   218
 <!ELEMENT target EMPTY>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   219
 <!ATTLIST target
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   220
  name ID #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   221
  abldTarget CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   222
  description CDATA #REQUIRED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   223
 <!ELEMENT option EMPTY>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   224
 <!ATTLIST option
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   225
  name ID #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   226
  abldOption CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   227
  description CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   228
  enable (Y | N ) #REQUIRED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   229
 <!ELEMENT configuration (listRef+ | ref+ | task+)*>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   230
 <!ATTLIST configuration
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   231
  name ID #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   232
  description CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   233
  filter CDATA #REQUIRED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   234
 <!ELEMENT task (listRef* , (buildLayer | specialInstructions))>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   235
 <!ELEMENT listRef EMPTY>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   236
 <!ATTLIST listRef list CDATA #REQUIRED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   237
 <!ELEMENT buildLayer EMPTY>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   238
 <!ATTLIST buildLayer
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   239
  command CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   240
  targetList IDREFS #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   241
  unitParallel (Y | N ) #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   242
  targetParallel (Y | N ) "N">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   243
 <!ELEMENT specialInstructions EMPTY>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   244
 <!ATTLIST specialInstructions
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   245
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   246
  cwd CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   247
  root CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   248
  command CDATA #REQUIRED>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   249
]>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   250
]]></xsl:text>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   251
</xsl:template>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   252
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   253
<xsl:template name="DTD">
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   254
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE SystemDefinition [
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   255
<!ELEMENT SystemDefinition ( systemModel )>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   256
<!ATTLIST SystemDefinition
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   257
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   258
  schema CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   259
>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   260
<!-- all paths are relative to the environment variable specified by the root attribute, or SOURCEROOT if not.  -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   261
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   262
<!-- System Model Section of DTD -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   263
<!ELEMENT systemModel (layer+)>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   264
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   265
<!ELEMENT layer (block* | collection*)*>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   266
<!-- Kernel Services, Base Services, OS Services, Etc -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   267
<!ATTLIST layer
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   268
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   269
  long-name CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   270
  levels NMTOKENS #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   271
  span CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   272
>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   273
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   274
<!ELEMENT block (subblock* | collection*)*>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   275
 <!-- Generic OS services, Comms Services, etc -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   276
<!ATTLIST block
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   277
  levels NMTOKENS #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   278
  span CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   279
  level NMTOKEN #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   280
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   281
  long-name CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   282
>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   283
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   284
<!ELEMENT subblock (collection)*>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   285
<!-- Cellular Baseband Services, Networking Services, etc -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   286
<!ATTLIST subblock
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   287
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   288
  long-name CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   289
>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   290
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   291
<!ELEMENT collection (component)*>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   292
<!-- Screen Driver, Content Handling, etc -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   293
<!ATTLIST collection
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   294
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   295
  long-name CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   296
  level NMTOKEN #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   297
>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   298
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   299
<!ELEMENT component (unit)*>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   300
<!-- contains units or is a  package or prebuilt -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   301
<!ATTLIST component
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   302
  name CDATA #REQUIRED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   303
  long-name CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   304
  deprecated CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   305
  introduced CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   306
  contract CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   307
  plugin (Y|N) "N"
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   308
  filter CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   309
  class NMTOKENS #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   310
  supports CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   311
  purpose ( optional | mandatory | development ) "optional"
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   312
>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   313
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   314
<!ELEMENT unit EMPTY >
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   315
<!-- must be buildable (bld.inf) -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   316
<!-- bldFile  may someday be removed in favour of mrp -->
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   317
<!ATTLIST unit
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   318
  mrp CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   319
  filter CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   320
  bldFile CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   321
  root CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   322
  version NMTOKEN #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   323
  prebuilt NMTOKEN #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   324
  late (Y|N) #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   325
  priority CDATA #IMPLIED
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   326
>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   327
]>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   328
]]></xsl:text>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   329
</xsl:template>
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   330
</xsl:stylesheet>