uidesigner/com.nokia.sdt.component.symbian/component.xsd
author fturovic <frank.turovich@nokia.com>
Thu, 23 Apr 2009 14:14:04 -0500
branchRCL_2_0
changeset 120 996c7dde406c
parent 2 d760517a8095
permissions -rw-r--r--
revised header image to not be transparent
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
cawthron
parents:
diff changeset
     1
<?xml version="1.0" encoding="UTF-8"?>
cawthron
parents:
diff changeset
     2
<!-- Copyright (C) 2006 Nokia Corporation. All rights reserved. -->
cawthron
parents:
diff changeset
     3
cawthron
parents:
diff changeset
     4
<!-- Entities for parts of the definitions we're forced to repeat due to
cawthron
parents:
diff changeset
     5
the lack of multiple inheritance in EMF -->
cawthron
parents:
diff changeset
     6
<!DOCTYPE xsd:schema [
cawthron
parents:
diff changeset
     7
	<!ENTITY MapMemberAttributes '
cawthron
parents:
diff changeset
     8
			<xsd:attribute name="member" type="xsd:string" use="required">
cawthron
parents:
diff changeset
     9
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
    10
				The struct member.
cawthron
parents:
diff changeset
    11
				</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
    12
			</xsd:attribute>
cawthron
parents:
diff changeset
    13
					
cawthron
parents:
diff changeset
    14
			<xsd:attribute default="true" name="suppressDefault" type="xsd:boolean" use="optional">
cawthron
parents:
diff changeset
    15
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
    16
				If true, do not emit the member initializer if the property matches the default
cawthron
parents:
diff changeset
    17
				specified in the STRUCT.  If may be useful to set this to false if the
cawthron
parents:
diff changeset
    18
				default changes between SDK releases (to avoid branching components).
cawthron
parents:
diff changeset
    19
				</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
    20
			</xsd:attribute>
cawthron
parents:
diff changeset
    21
			'
cawthron
parents:
diff changeset
    22
	>
cawthron
parents:
diff changeset
    23
	
cawthron
parents:
diff changeset
    24
	<!ENTITY MapPropertyAttribute '
cawthron
parents:
diff changeset
    25
					<xsd:attribute name="property" type="xsd:string" use="required">
cawthron
parents:
diff changeset
    26
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
    27
						The property path providing the value.
cawthron
parents:
diff changeset
    28
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
    29
					</xsd:attribute>
cawthron
parents:
diff changeset
    30
	
cawthron
parents:
diff changeset
    31
			'
cawthron
parents:
diff changeset
    32
	>
cawthron
parents:
diff changeset
    33
	
cawthron
parents:
diff changeset
    34
	<!ENTITY MapTypeIdAttribute '
cawthron
parents:
diff changeset
    35
					<xsd:attribute name="typeId" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
    36
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
    37
						Identifies the id for this particular kind of type mapping.
cawthron
parents:
diff changeset
    38
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
    39
					</xsd:attribute>
cawthron
parents:
diff changeset
    40
	
cawthron
parents:
diff changeset
    41
			'
cawthron
parents:
diff changeset
    42
	>
cawthron
parents:
diff changeset
    43
]>
cawthron
parents:
diff changeset
    44
cawthron
parents:
diff changeset
    45
<xsd:schema xmlns="http://www.nokia.com/sdt/emf/component" 
cawthron
parents:
diff changeset
    46
   xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" 
cawthron
parents:
diff changeset
    47
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
cawthron
parents:
diff changeset
    48
   elementFormDefault="qualified" 
cawthron
parents:
diff changeset
    49
   targetNamespace="http://www.nokia.com/sdt/emf/component">
cawthron
parents:
diff changeset
    50
cawthron
parents:
diff changeset
    51
	<xsd:element name="componentDefinition">
cawthron
parents:
diff changeset
    52
		<xsd:annotation>
cawthron
parents:
diff changeset
    53
			<xsd:documentation>componentDefinition must be the root element of a component definition document.
cawthron
parents:
diff changeset
    54
			
cawthron
parents:
diff changeset
    55
			It includes zero or more compound property declarations, zero or more enum declarations and zero or one
cawthron
parents:
diff changeset
    56
			component declarations.
cawthron
parents:
diff changeset
    57
			
cawthron
parents:
diff changeset
    58
			Displayable strings can either be included literally within the XML or referenced in the 
cawthron
parents:
diff changeset
    59
			component.properties file by prefixing the string with %. For example, "%foo" references the 
cawthron
parents:
diff changeset
    60
			value of the "foo" property in component.properties. To obtain the string "%foo" 
cawthron
parents:
diff changeset
    61
			use a double %, e.g. "%%foo".
cawthron
parents:
diff changeset
    62
			</xsd:documentation>
cawthron
parents:
diff changeset
    63
		</xsd:annotation>
cawthron
parents:
diff changeset
    64
		<xsd:complexType>
cawthron
parents:
diff changeset
    65
			<xsd:sequence>
cawthron
parents:
diff changeset
    66
				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="compoundPropertyDeclaration"/>
cawthron
parents:
diff changeset
    67
				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="enumPropertyDeclaration"/>
cawthron
parents:
diff changeset
    68
				<xsd:element minOccurs="0" ref="component"/>
cawthron
parents:
diff changeset
    69
			</xsd:sequence>
cawthron
parents:
diff changeset
    70
		</xsd:complexType>
cawthron
parents:
diff changeset
    71
	</xsd:element>
cawthron
parents:
diff changeset
    72
	<xsd:element name="component">
cawthron
parents:
diff changeset
    73
        <xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
    74
        This is the container element for all the information about a single component.
cawthron
parents:
diff changeset
    75
        </xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
    76
        <xsd:complexType>
cawthron
parents:
diff changeset
    77
			<xsd:sequence>
cawthron
parents:
diff changeset
    78
				<xsd:element minOccurs="0" ref="documentation"/>
cawthron
parents:
diff changeset
    79
				<xsd:element minOccurs="0" ref="symbian"/>
cawthron
parents:
diff changeset
    80
				<xsd:element minOccurs="0" ref="designerImages"/>
cawthron
parents:
diff changeset
    81
				<xsd:element minOccurs="0" ref="attributes"/>
cawthron
parents:
diff changeset
    82
				<xsd:element minOccurs="0" ref="properties"/>
cawthron
parents:
diff changeset
    83
				<xsd:element minOccurs="0" maxOccurs="unbounded" ref="extensionProperties"/>
cawthron
parents:
diff changeset
    84
				<xsd:element minOccurs="0" ref="propertyOverrides"/>
cawthron
parents:
diff changeset
    85
				<xsd:element minOccurs="0" ref="events"/>
cawthron
parents:
diff changeset
    86
				<xsd:element minOccurs="0" ref="sourceGen"/>
cawthron
parents:
diff changeset
    87
				<xsd:element minOccurs="0" ref="sourceMapping"/>
cawthron
parents:
diff changeset
    88
				<xsd:element minOccurs="0" ref="implementations"/>
cawthron
parents:
diff changeset
    89
			</xsd:sequence>
cawthron
parents:
diff changeset
    90
			<xsd:attribute name="qualifiedName" type="xsd:string" use="required">
cawthron
parents:
diff changeset
    91
				<xsd:annotation><xsd:documentation>A globally unique name for a component. By convention these use dotted names, such as
cawthron
parents:
diff changeset
    92
				com.example.MyComponent. Different versions of a component, in different files, can share the same qualified name. These values
cawthron
parents:
diff changeset
    93
				should not be localized.
cawthron
parents:
diff changeset
    94
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
    95
			</xsd:attribute>
cawthron
parents:
diff changeset
    96
			<xsd:attribute name="friendlyName" type="xsd:string" use="required">
cawthron
parents:
diff changeset
    97
				<xsd:annotation><xsd:documentation>A short name displayed in the user interface. These values should be localized.
cawthron
parents:
diff changeset
    98
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
    99
			</xsd:attribute>
cawthron
parents:
diff changeset
   100
			<xsd:attribute name="instanceNameRoot" type="xsd:string">
cawthron
parents:
diff changeset
   101
				<xsd:annotation><xsd:documentation>The root part of the name used in assigned unique names to component instances. For example,
cawthron
parents:
diff changeset
   102
			if the root is "label" then names will be assigned in sequence "label1", "label2", and so forth. These values should not be localized.
cawthron
parents:
diff changeset
   103
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   104
			</xsd:attribute>
cawthron
parents:
diff changeset
   105
			<xsd:attribute name="version" type="xsd:string">
cawthron
parents:
diff changeset
   106
				<xsd:annotation><xsd:documentation>Identifies the version of the component specified by this document. Uses OSGI style version strings, composed
cawthron
parents:
diff changeset
   107
			of up to 3 integers and a text qualifier, of the form &lt;major version&gt;.&lt;minor version&gt;.&lt;micro version&gt;.&lt;qualifier&gt;.
cawthron
parents:
diff changeset
   108
			See http://help.eclipse.org/help31/topic/org.eclipse.platform.doc.isv/reference/osgi/org/osgi/framework/Version.html for further information.
cawthron
parents:
diff changeset
   109
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   110
			</xsd:attribute>
cawthron
parents:
diff changeset
   111
			<xsd:attribute name="baseComponent" type="xsd:string">
cawthron
parents:
diff changeset
   112
				<xsd:annotation><xsd:documentation>The fully qualifed name of the base component. The version of the base component
cawthron
parents:
diff changeset
   113
			cannot be specified, it will be whichever is selected via SDK matching.
cawthron
parents:
diff changeset
   114
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   115
			</xsd:attribute>
cawthron
parents:
diff changeset
   116
			<xsd:attribute name="category" type="xsd:string">
cawthron
parents:
diff changeset
   117
				<xsd:annotation><xsd:documentation>Specifies the grouping for the editor's component palette. If this string matches the key
cawthron
parents:
diff changeset
   118
				of a known group then the localized name is looked up within the Symbian component provider. Otherwise it is treated like a
cawthron
parents:
diff changeset
   119
				potentially localized string, i.e. if it is %-prefixed a string is looked up in the properties file.
cawthron
parents:
diff changeset
   120
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   121
			</xsd:attribute>
cawthron
parents:
diff changeset
   122
			<xsd:attribute name="abstract" type="xsd:boolean">
cawthron
parents:
diff changeset
   123
				<xsd:annotation><xsd:documentation>Specify true to define a component intended to be used as a basis for deriving other components.
cawthron
parents:
diff changeset
   124
				Abstract components are filtered out of the component palette.
cawthron
parents:
diff changeset
   125
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   126
			</xsd:attribute>
cawthron
parents:
diff changeset
   127
		</xsd:complexType>
cawthron
parents:
diff changeset
   128
	</xsd:element>
cawthron
parents:
diff changeset
   129
	
cawthron
parents:
diff changeset
   130
	<xsd:element name="documentation">
cawthron
parents:
diff changeset
   131
		<xsd:annotation>
cawthron
parents:
diff changeset
   132
				<xsd:documentation>The optional documentation element provides brief description information about the component and a link to more detailed documentation
cawthron
parents:
diff changeset
   133
				</xsd:documentation>
cawthron
parents:
diff changeset
   134
			</xsd:annotation>
cawthron
parents:
diff changeset
   135
		<xsd:complexType>
cawthron
parents:
diff changeset
   136
			<xsd:sequence>
cawthron
parents:
diff changeset
   137
				<xsd:element name="information" type="xsd:string">
cawthron
parents:
diff changeset
   138
					<xsd:annotation><xsd:documentation>Brief description of the component, shown in a tooltip. This value should be localized.
cawthron
parents:
diff changeset
   139
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   140
				</xsd:element>
cawthron
parents:
diff changeset
   141
				<xsd:element name="helpTopic" type="xsd:string">
cawthron
parents:
diff changeset
   142
					<xsd:annotation><xsd:documentation>A link to help information for this component.
cawthron
parents:
diff changeset
   143
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   144
				</xsd:element>
cawthron
parents:
diff changeset
   145
				<xsd:element name="wizardDescription" type="xsd:string">
cawthron
parents:
diff changeset
   146
					<xsd:annotation><xsd:documentation>Text displayed in the UI design wizard. Applies only to containers and top-level content. This
cawthron
parents:
diff changeset
   147
					value should be localized.
cawthron
parents:
diff changeset
   148
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   149
				</xsd:element>
cawthron
parents:
diff changeset
   150
			</xsd:sequence>
cawthron
parents:
diff changeset
   151
		</xsd:complexType>
cawthron
parents:
diff changeset
   152
	</xsd:element>
cawthron
parents:
diff changeset
   153
cawthron
parents:
diff changeset
   154
	<xsd:element name="symbian">
cawthron
parents:
diff changeset
   155
		<xsd:annotation>
cawthron
parents:
diff changeset
   156
			<xsd:documentation>The optional Symbian element provides SDK compatibility information and information about the related 
cawthron
parents:
diff changeset
   157
	C++ classes and resource structures. When this element is omitted the component will be considered incompatible
cawthron
parents:
diff changeset
   158
	with all Symbian SDKs.
cawthron
parents:
diff changeset
   159
			</xsd:documentation>
cawthron
parents:
diff changeset
   160
		</xsd:annotation>		
cawthron
parents:
diff changeset
   161
		<xsd:complexType>
cawthron
parents:
diff changeset
   162
			<xsd:attribute name="sdkName" use="required">
cawthron
parents:
diff changeset
   163
				<xsd:annotation><xsd:documentation>This value identifies the Symbian OS variant with which the component is compatible.
cawthron
parents:
diff changeset
   164
				Currently the only supported value is "com.nokia.serie60".
cawthron
parents:
diff changeset
   165
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   166
			</xsd:attribute>
cawthron
parents:
diff changeset
   167
			<xsd:attribute name="minSDKVersion" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   168
				<xsd:annotation><xsd:documentation>A version number indicating the lowest SDK version with which the component is
cawthron
parents:
diff changeset
   169
				compatible. For example, if the value is 2.8 the component will be selected for use with a 2.8 SDK but not 2.6.
cawthron
parents:
diff changeset
   170
				Uses OSGI style version strings, composed of up to 3 integers and a text qualifier, of the form &lt;major version&gt;.&lt;minor version&gt;.&lt;micro version&gt;.&lt;qualifier&gt;.
cawthron
parents:
diff changeset
   171
			    See http://help.eclipse.org/help31/topic/org.eclipse.platform.doc.isv/reference/osgi/org/osgi/framework/Version.html for further information.
cawthron
parents:
diff changeset
   172
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   173
			</xsd:attribute>
cawthron
parents:
diff changeset
   174
			<xsd:attribute name="maxSDKVersion" type="xsd:string">
cawthron
parents:
diff changeset
   175
			<xsd:annotation><xsd:documentation>A version number indicating the maximum SDK version with which the component is
cawthron
parents:
diff changeset
   176
				compatible. For example, if the value is 2.8 the component will be selected for use with a 2.8 SDK but not 3.0.
cawthron
parents:
diff changeset
   177
				Uses OSGI style version strings, composed of up to 3 integers and a text qualifier, of the form &lt;major version&gt;.&lt;minor version&gt;.&lt;micro version&gt;.&lt;qualifier&gt;.
cawthron
parents:
diff changeset
   178
			    See http://help.eclipse.org/help31/topic/org.eclipse.platform.doc.isv/reference/osgi/org/osgi/framework/Version.html for further information.
cawthron
parents:
diff changeset
   179
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   180
			</xsd:attribute>
cawthron
parents:
diff changeset
   181
			<xsd:attribute name="className" type="xsd:string">
cawthron
parents:
diff changeset
   182
				<xsd:annotation><xsd:documentation>The C++ class name corresponding to this component, if any. Not used for source code generation,
cawthron
parents:
diff changeset
   183
				but is displayed in the component palette.
cawthron
parents:
diff changeset
   184
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   185
			</xsd:attribute>
cawthron
parents:
diff changeset
   186
			<xsd:attribute name="classHelpTopic" type="xsd:string">
cawthron
parents:
diff changeset
   187
				<xsd:annotation><xsd:documentation>A link to help information for this C++ class
cawthron
parents:
diff changeset
   188
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   189
			</xsd:attribute>
cawthron
parents:
diff changeset
   190
			<xsd:attribute name="resourceType" type="xsd:string">
cawthron
parents:
diff changeset
   191
				<xsd:annotation><xsd:documentation>The Symbian RSS resource type for this component, if any
cawthron
parents:
diff changeset
   192
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   193
			</xsd:attribute>
cawthron
parents:
diff changeset
   194
			<xsd:attribute name="resourceHelpTopic" type="xsd:string">
cawthron
parents:
diff changeset
   195
				<xsd:annotation><xsd:documentation>A link to help information for the resource
cawthron
parents:
diff changeset
   196
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   197
			</xsd:attribute>
cawthron
parents:
diff changeset
   198
		</xsd:complexType>
cawthron
parents:
diff changeset
   199
	</xsd:element>
cawthron
parents:
diff changeset
   200
	<xsd:element name="designerImages">
cawthron
parents:
diff changeset
   201
		<xsd:annotation><xsd:documentation>This element is specifies images for use by the UI designer. Only those images that apply need to be defined, e.g.
cawthron
parents:
diff changeset
   202
		if a component never appears in the UI design wizard or palette then it doesn't need those images.
cawthron
parents:
diff changeset
   203
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   204
		<xsd:complexType>
cawthron
parents:
diff changeset
   205
			<xsd:attribute name="smallIconFile" type="xsd:string">
cawthron
parents:
diff changeset
   206
				<xsd:annotation><xsd:documentation>A relative path to an Eclipse-supported image type, such as PNG, GIF, or BMP. This image is displayed in the outline.
cawthron
parents:
diff changeset
   207
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   208
			</xsd:attribute>
cawthron
parents:
diff changeset
   209
			<xsd:attribute name="largeIconFile" type="xsd:string">A relative path to an Eclipse-supported image type, such as PNG, GIF, or BMP. This image is displayed in the component palette.
cawthron
parents:
diff changeset
   210
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   211
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   212
			</xsd:attribute>
cawthron
parents:
diff changeset
   213
			<xsd:attribute name="layoutImageFile" type="xsd:string">A relative path to an Eclipse-supported image type, such as PNG, GIF, or BMP. This image is displayed in the UI design wizard.
cawthron
parents:
diff changeset
   214
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   215
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   216
			</xsd:attribute>
cawthron
parents:
diff changeset
   217
			<xsd:attribute name="thumbnailFile" type="xsd:string">
cawthron
parents:
diff changeset
   218
				<xsd:annotation><xsd:documentation>A relative path to an Eclipse-supported image type, such as PNG, GIF, or BMP. This image is displayed in UI designer's graphical
cawthron
parents:
diff changeset
   219
				layout area if the component does not provide rendering code.
cawthron
parents:
diff changeset
   220
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   221
			</xsd:attribute>
cawthron
parents:
diff changeset
   222
		</xsd:complexType>
cawthron
parents:
diff changeset
   223
	</xsd:element>
cawthron
parents:
diff changeset
   224
	
cawthron
parents:
diff changeset
   225
	<xsd:element name="attributes">
cawthron
parents:
diff changeset
   226
		<xsd:annotation>
cawthron
parents:
diff changeset
   227
			<xsd:documentation>
cawthron
parents:
diff changeset
   228
Attribute elements can hold any static character data that is common to all instances of a component. Attributes are inherited from their base components.
cawthron
parents:
diff changeset
   229
			</xsd:documentation>
cawthron
parents:
diff changeset
   230
		</xsd:annotation>
cawthron
parents:
diff changeset
   231
		<xsd:complexType>
cawthron
parents:
diff changeset
   232
			<xsd:sequence>
cawthron
parents:
diff changeset
   233
				<xsd:element maxOccurs="unbounded" ref="attribute"/>
cawthron
parents:
diff changeset
   234
			</xsd:sequence>
cawthron
parents:
diff changeset
   235
		</xsd:complexType>
cawthron
parents:
diff changeset
   236
	</xsd:element>
cawthron
parents:
diff changeset
   237
	<xsd:element name="attribute">
cawthron
parents:
diff changeset
   238
		<xsd:complexType>
cawthron
parents:
diff changeset
   239
			<xsd:simpleContent>
cawthron
parents:
diff changeset
   240
				<xsd:extension base="xsd:string">
cawthron
parents:
diff changeset
   241
					<xsd:attribute name="key" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   242
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   243
						</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   244
					</xsd:attribute>
cawthron
parents:
diff changeset
   245
				</xsd:extension>
cawthron
parents:
diff changeset
   246
			</xsd:simpleContent>
cawthron
parents:
diff changeset
   247
		</xsd:complexType>
cawthron
parents:
diff changeset
   248
	</xsd:element>
cawthron
parents:
diff changeset
   249
	
cawthron
parents:
diff changeset
   250
	<xsd:element name="properties">
cawthron
parents:
diff changeset
   251
		<xsd:annotation><xsd:documentation>The list of properties defined for this component. Components also inherit the properties of their base
cawthron
parents:
diff changeset
   252
		components, and can have properties added dynamically, see extensionProperties.
cawthron
parents:
diff changeset
   253
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   254
		<xsd:complexType>
cawthron
parents:
diff changeset
   255
			<xsd:sequence>
cawthron
parents:
diff changeset
   256
				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="abstractProperty"/>
cawthron
parents:
diff changeset
   257
			</xsd:sequence>
cawthron
parents:
diff changeset
   258
		</xsd:complexType>
cawthron
parents:
diff changeset
   259
	</xsd:element>
cawthron
parents:
diff changeset
   260
	
cawthron
parents:
diff changeset
   261
	<xsd:element name="extensionProperties">
cawthron
parents:
diff changeset
   262
		<xsd:annotation><xsd:documentation>Extension properties may be dynamically added, based on the state of an instance of this
cawthron
parents:
diff changeset
   263
		component, its container, or other objects. There may be more than one set of extension properties defined in a component.
cawthron
parents:
diff changeset
   264
		See the com.nokia.sdt.datamodel.adapter.IPropertyExtenders interface.
cawthron
parents:
diff changeset
   265
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   266
		<xsd:complexType>
cawthron
parents:
diff changeset
   267
			<xsd:sequence>
cawthron
parents:
diff changeset
   268
				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="abstractProperty"/>
cawthron
parents:
diff changeset
   269
			</xsd:sequence>
cawthron
parents:
diff changeset
   270
			<xsd:attribute name="name" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   271
				<xsd:annotation><xsd:documentation>The unique name of this extension property set. Used to select properties
cawthron
parents:
diff changeset
   272
				to add at runtime.
cawthron
parents:
diff changeset
   273
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   274
			</xsd:attribute>
cawthron
parents:
diff changeset
   275
		</xsd:complexType>
cawthron
parents:
diff changeset
   276
	</xsd:element>
cawthron
parents:
diff changeset
   277
	<xsd:simpleType name="propertyDataType">
cawthron
parents:
diff changeset
   278
		<xsd:annotation><xsd:documentation>Simple, predefined property types.
cawthron
parents:
diff changeset
   279
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   280
		<xsd:restriction base="xsd:string">
cawthron
parents:
diff changeset
   281
			<xsd:enumeration value="void">
cawthron
parents:
diff changeset
   282
				<xsd:annotation><xsd:documentation>The empty type. Do not use for real properties.
cawthron
parents:
diff changeset
   283
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   284
			</xsd:enumeration>
cawthron
parents:
diff changeset
   285
			<xsd:enumeration value="boolean">
cawthron
parents:
diff changeset
   286
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   287
				</xsd:documentation></xsd:annotation>True/False values.
cawthron
parents:
diff changeset
   288
			</xsd:enumeration>
cawthron
parents:
diff changeset
   289
			<xsd:enumeration value="integer">
cawthron
parents:
diff changeset
   290
				<xsd:annotation><xsd:documentation>Four byte integer properties. Ranges may be constrained on property declarations.
cawthron
parents:
diff changeset
   291
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   292
			</xsd:enumeration>
cawthron
parents:
diff changeset
   293
			<xsd:enumeration value="float">
cawthron
parents:
diff changeset
   294
				<xsd:annotation><xsd:documentation>Floating point values. Ranges may be constrained on property declarations.
cawthron
parents:
diff changeset
   295
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   296
			</xsd:enumeration>
cawthron
parents:
diff changeset
   297
			<xsd:enumeration value="string">
cawthron
parents:
diff changeset
   298
				<xsd:annotation><xsd:documentation>Non-localized string literals
cawthron
parents:
diff changeset
   299
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   300
			</xsd:enumeration>
cawthron
parents:
diff changeset
   301
			<xsd:enumeration value="localizedString">
cawthron
parents:
diff changeset
   302
				<xsd:annotation><xsd:documentation>Localized string literals. Users may enter different values for each language.
cawthron
parents:
diff changeset
   303
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   304
			</xsd:enumeration>
cawthron
parents:
diff changeset
   305
			<xsd:enumeration value="uniqueName">
cawthron
parents:
diff changeset
   306
				<xsd:annotation><xsd:documentation>Unique, non-localized string. Values are forced to be unique across the data model.
cawthron
parents:
diff changeset
   307
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   308
			</xsd:enumeration>
cawthron
parents:
diff changeset
   309
		</xsd:restriction>
cawthron
parents:
diff changeset
   310
	</xsd:simpleType>
cawthron
parents:
diff changeset
   311
	
cawthron
parents:
diff changeset
   312
	<xsd:element abstract="true" name="abstractProperty" type="abstractPropertyType"/>
cawthron
parents:
diff changeset
   313
	<xsd:element name="property" substitutionGroup="abstractProperty" type="simplePropertyType"/>
cawthron
parents:
diff changeset
   314
	<xsd:element name="compoundProperty" substitutionGroup="abstractProperty" type="compoundPropertyType"/>
cawthron
parents:
diff changeset
   315
	<xsd:element name="enumProperty" substitutionGroup="abstractProperty" type="enumPropertyType"/>
cawthron
parents:
diff changeset
   316
	<xsd:element name="arrayProperty" substitutionGroup="abstractProperty" type="arrayPropertyType"/>
cawthron
parents:
diff changeset
   317
	<xsd:element name="componentReferenceProperty" substitutionGroup="abstractProperty" type="componentReferencePropertyType"/>
cawthron
parents:
diff changeset
   318
	<xsd:complexType name="abstractPropertyType">
cawthron
parents:
diff changeset
   319
			<xsd:annotation><xsd:documentation>A base schema type for further property type declarations. Not used directly in components.
cawthron
parents:
diff changeset
   320
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   321
		<xsd:attribute name="name" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   322
			<xsd:annotation><xsd:documentation>The internal name for the property. It must be unique within the component and its base
cawthron
parents:
diff changeset
   323
			components. Since it may be used as an identifier in scripts it should be a legal JavaScript identifier.
cawthron
parents:
diff changeset
   324
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   325
		</xsd:attribute>
cawthron
parents:
diff changeset
   326
		<xsd:attribute name="displayName" type="xsd:string">
cawthron
parents:
diff changeset
   327
			<xsd:annotation><xsd:documentation>The property name to be display in the user interface. Can contain spaces and other characters.
cawthron
parents:
diff changeset
   328
			This value should be localized.
cawthron
parents:
diff changeset
   329
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   330
		</xsd:attribute>
cawthron
parents:
diff changeset
   331
		<xsd:attribute name="category" type="xsd:string">
cawthron
parents:
diff changeset
   332
			<xsd:annotation><xsd:documentation>The category grouping to be used in the property sheet. 
cawthron
parents:
diff changeset
   333
			 If this value matches the key of a known group then the localized name is looked up within the Symbian component provider. Otherwise it is treated like a
cawthron
parents:
diff changeset
   334
			 potentially localized string, i.e. if it is %-prefixed a string is looked up in the properties file.
cawthron
parents:
diff changeset
   335
			 The special value of "hidden" will cause the property to be filtered from the property sheet.
cawthron
parents:
diff changeset
   336
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   337
		</xsd:attribute>
cawthron
parents:
diff changeset
   338
		<xsd:attribute default="false" name="readOnly" type="xsd:boolean">
cawthron
parents:
diff changeset
   339
			<xsd:annotation><xsd:documentation>If true the property will be read-only in the property sheet.
cawthron
parents:
diff changeset
   340
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   341
		</xsd:attribute>
cawthron
parents:
diff changeset
   342
		<xsd:attribute default="true" name="resettable" type="xsd:boolean">
cawthron
parents:
diff changeset
   343
			<xsd:annotation><xsd:documentation>If false the reset button will be disabled, inhibiting the user from reverting to the default value
cawthron
parents:
diff changeset
   344
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   345
		</xsd:attribute>
cawthron
parents:
diff changeset
   346
		<xsd:attribute name="descriptionKey" type="xsd:string">
cawthron
parents:
diff changeset
   347
			<xsd:annotation><xsd:documentation>A property key to descriptive text for the property to be displayed in the status bar
cawthron
parents:
diff changeset
   348
			when the property is selected in the property sheet.
cawthron
parents:
diff changeset
   349
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   350
		</xsd:attribute>
cawthron
parents:
diff changeset
   351
		<xsd:attribute name="helpKey" type="xsd:string">
cawthron
parents:
diff changeset
   352
			<xsd:annotation><xsd:documentation>A key to more detailed help for the property.
cawthron
parents:
diff changeset
   353
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   354
		</xsd:attribute>
cawthron
parents:
diff changeset
   355
		<xsd:attribute name="editorClass" type="xsd:string">
cawthron
parents:
diff changeset
   356
			<xsd:annotation><xsd:documentation>The fully qualified name of a class implementing com.nokia.sdt.component.property.IPropertyEditorFactory.
cawthron
parents:
diff changeset
   357
			This allows Java code to provide a label provider, cell editor, and validator for the property.
cawthron
parents:
diff changeset
   358
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   359
		</xsd:attribute>
cawthron
parents:
diff changeset
   360
	</xsd:complexType>
cawthron
parents:
diff changeset
   361
	
cawthron
parents:
diff changeset
   362
	<xsd:complexType name="simplePropertyType">
cawthron
parents:
diff changeset
   363
			<xsd:annotation><xsd:documentation>Concrete type used for basic properties.
cawthron
parents:
diff changeset
   364
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   365
		<xsd:complexContent>
cawthron
parents:
diff changeset
   366
			<xsd:extension base="abstractPropertyType">
cawthron
parents:
diff changeset
   367
				<xsd:attribute name="type" type="propertyDataType" use="required">
cawthron
parents:
diff changeset
   368
					<xsd:annotation><xsd:documentation>Selects the data type of the property.
cawthron
parents:
diff changeset
   369
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   370
				</xsd:attribute>
cawthron
parents:
diff changeset
   371
				<xsd:attribute name="default" type="xsd:string">
cawthron
parents:
diff changeset
   372
					<xsd:annotation><xsd:documentation>A default value for the property. Must be a string convertible to the
cawthron
parents:
diff changeset
   373
					particular property type.
cawthron
parents:
diff changeset
   374
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   375
				</xsd:attribute>
cawthron
parents:
diff changeset
   376
				<xsd:attribute name="minValue" type="xsd:string">
cawthron
parents:
diff changeset
   377
					<xsd:annotation><xsd:documentation>Optional minimum value constraint. Applies only to integers and floats.
cawthron
parents:
diff changeset
   378
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   379
				</xsd:attribute>
cawthron
parents:
diff changeset
   380
				<xsd:attribute name="maxValue" type="xsd:string">
cawthron
parents:
diff changeset
   381
					<xsd:annotation><xsd:documentation>Optional maximum value constraint. Applies only to integers and floats.
cawthron
parents:
diff changeset
   382
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   383
				</xsd:attribute>
cawthron
parents:
diff changeset
   384
				<xsd:attribute name="extendWithEnum" type="xsd:string">
cawthron
parents:
diff changeset
   385
					<xsd:annotation><xsd:documentation>Optional extension of the enum with the enums provided by an enimPropertyDeclaration.
cawthron
parents:
diff changeset
   386
					If the value of the property matches any in an extension enumProperty's 'value' attribute, the 'displayValue' will be shown
cawthron
parents:
diff changeset
   387
					as the current value in the property sheet.  Additionally, the editor for the value (if not overridden with
cawthron
parents:
diff changeset
   388
					a custom editorClass) will be a combo that allows typing in the literal value or selecting one of 
cawthron
parents:
diff changeset
   389
					the extended enums.
cawthron
parents:
diff changeset
   390
					<p>
cawthron
parents:
diff changeset
   391
					The 'value' of each of the extending enums must match the type being extended, or else the attempt to set the value
cawthron
parents:
diff changeset
   392
					to that enum will fail.  Note that this means that it is useless to extend booleans (since all extensions
cawthron
parents:
diff changeset
   393
					must map to 'true' or 'false'). 							
cawthron
parents:
diff changeset
   394
					</p>
cawthron
parents:
diff changeset
   395
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   396
				</xsd:attribute>
cawthron
parents:
diff changeset
   397
				
cawthron
parents:
diff changeset
   398
			</xsd:extension>
cawthron
parents:
diff changeset
   399
		</xsd:complexContent>
cawthron
parents:
diff changeset
   400
	</xsd:complexType>
cawthron
parents:
diff changeset
   401
	
cawthron
parents:
diff changeset
   402
	<xsd:complexType name="compoundPropertyType">
cawthron
parents:
diff changeset
   403
			<xsd:annotation><xsd:documentation>Concrete type used for structured properties.
cawthron
parents:
diff changeset
   404
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   405
		<xsd:complexContent>
cawthron
parents:
diff changeset
   406
			<xsd:extension base="abstractPropertyType">
cawthron
parents:
diff changeset
   407
				<xsd:attribute name="type" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   408
					<xsd:annotation><xsd:documentation>The fully qualified name of the compound property type declaration. It can be
cawthron
parents:
diff changeset
   409
					any type accessible from the current or any other component definitions. See compoundPropertyDeclaration for
cawthron
parents:
diff changeset
   410
					further information.
cawthron
parents:
diff changeset
   411
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   412
				</xsd:attribute>
cawthron
parents:
diff changeset
   413
				<xsd:attribute name="default" type="xsd:string">
cawthron
parents:
diff changeset
   414
					<xsd:annotation><xsd:documentation>An optional default value for the property. The compoundPropertyDeclaration must
cawthron
parents:
diff changeset
   415
					have a converterType specified for this default value to be used.
cawthron
parents:
diff changeset
   416
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   417
				</xsd:attribute>
cawthron
parents:
diff changeset
   418
			</xsd:extension>
cawthron
parents:
diff changeset
   419
		</xsd:complexContent>
cawthron
parents:
diff changeset
   420
	</xsd:complexType>
cawthron
parents:
diff changeset
   421
	
cawthron
parents:
diff changeset
   422
	<xsd:complexType name="enumPropertyType">
cawthron
parents:
diff changeset
   423
		<xsd:annotation><xsd:documentation>Concrete type used for enumerated value properties.
cawthron
parents:
diff changeset
   424
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   425
	<xsd:complexContent>
cawthron
parents:
diff changeset
   426
			<xsd:extension base="abstractPropertyType">
cawthron
parents:
diff changeset
   427
				<xsd:attribute name="type" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   428
					<xsd:annotation><xsd:documentation>The fully qualifed name of the enumerated property type. See
cawthron
parents:
diff changeset
   429
					enumPropertyDeclaration.
cawthron
parents:
diff changeset
   430
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   431
				</xsd:attribute>
cawthron
parents:
diff changeset
   432
				<xsd:attribute name="default" type="xsd:string">
cawthron
parents:
diff changeset
   433
					<xsd:annotation><xsd:documentation>The default enumerated value, in case it needs to be different from 
cawthron
parents:
diff changeset
   434
					the default declared in the enumeratedPropertyDeclaration.
cawthron
parents:
diff changeset
   435
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   436
				</xsd:attribute>
cawthron
parents:
diff changeset
   437
				<xsd:attribute name="extendWithEnum" type="xsd:string">
cawthron
parents:
diff changeset
   438
					<xsd:annotation><xsd:documentation>Optional extension of the simple values with the enums provided by an enimPropertyDeclaration.
cawthron
parents:
diff changeset
   439
					If the value of the property matches any in an enumProperty's 'value' attribute, the 'displayValue' will be shown
cawthron
parents:
diff changeset
   440
					as the current value in the property sheet.  Additionally, the editor for the value (if not overridden with
cawthron
parents:
diff changeset
   441
					a custom editorClass) will be a combo that allows typing in the literal value or selecting one of the
cawthron
parents:
diff changeset
   442
					union of base and extended enums.
cawthron
parents:
diff changeset
   443
					<p> 
cawthron
parents:
diff changeset
   444
					The extending enum may provide 'value' elements which are different from the base enum (even integers, say),
cawthron
parents:
diff changeset
   445
					if appropriate.  These values are exposed to script, source mapping, and source gen, so ensure that all
cawthron
parents:
diff changeset
   446
					those clients are prepared to deal with the extra values.
cawthron
parents:
diff changeset
   447
					</p>
cawthron
parents:
diff changeset
   448
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   449
				</xsd:attribute>
cawthron
parents:
diff changeset
   450
			</xsd:extension>
cawthron
parents:
diff changeset
   451
		</xsd:complexContent>
cawthron
parents:
diff changeset
   452
	</xsd:complexType>
cawthron
parents:
diff changeset
   453
cawthron
parents:
diff changeset
   454
	<xsd:simpleType name="referenceScopeType">
cawthron
parents:
diff changeset
   455
		<xsd:annotation><xsd:documentation>Enumeration used for scoping references within the model
cawthron
parents:
diff changeset
   456
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   457
		<xsd:restriction base="xsd:string">
cawthron
parents:
diff changeset
   458
			<xsd:enumeration value="model">
cawthron
parents:
diff changeset
   459
				<xsd:annotation><xsd:documentation>Property can reference any valid instance in the model
cawthron
parents:
diff changeset
   460
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   461
			</xsd:enumeration>
cawthron
parents:
diff changeset
   462
			<xsd:enumeration value="children">
cawthron
parents:
diff changeset
   463
				<xsd:annotation><xsd:documentation>Property can reference any children of the referencing instance
cawthron
parents:
diff changeset
   464
				</xsd:documentation></xsd:annotation>True/False values.
cawthron
parents:
diff changeset
   465
			</xsd:enumeration>
cawthron
parents:
diff changeset
   466
			<xsd:enumeration value="siblings">
cawthron
parents:
diff changeset
   467
				<xsd:annotation><xsd:documentation>Property can reference any siblings or children of the referencing instance
cawthron
parents:
diff changeset
   468
				</xsd:documentation></xsd:annotation>True/False values.
cawthron
parents:
diff changeset
   469
			</xsd:enumeration>
cawthron
parents:
diff changeset
   470
		</xsd:restriction>
cawthron
parents:
diff changeset
   471
	</xsd:simpleType>
cawthron
parents:
diff changeset
   472
cawthron
parents:
diff changeset
   473
	<xsd:complexType name="componentReferencePropertyType">
cawthron
parents:
diff changeset
   474
			<xsd:annotation><xsd:documentation>A concrete property type that maintains a reference to a component
cawthron
parents:
diff changeset
   475
			instance in the same model. The reference is kept by name, and is maintained across renames of the target
cawthron
parents:
diff changeset
   476
			instance. It is cleared automatically if the target instance is removed.
cawthron
parents:
diff changeset
   477
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   478
		<xsd:complexContent>
cawthron
parents:
diff changeset
   479
			<xsd:extension base="abstractPropertyType">
cawthron
parents:
diff changeset
   480
				<xsd:attribute name="scope" type="referenceScopeType" use="required">
cawthron
parents:
diff changeset
   481
					<xsd:annotation><xsd:documentation>Enumeration defining the scope for permissable values.
cawthron
parents:
diff changeset
   482
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   483
				</xsd:attribute>
cawthron
parents:
diff changeset
   484
				<xsd:attribute name="constraint" type="xsd:string">
cawthron
parents:
diff changeset
   485
					<xsd:annotation><xsd:documentation>If specified, this must be the fully qualified name of a component type. Values
cawthron
parents:
diff changeset
   486
					are then constrained to be instances of this type, and the property sheet user interface displays a list of eligible
cawthron
parents:
diff changeset
   487
					instances.
cawthron
parents:
diff changeset
   488
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   489
				</xsd:attribute>
cawthron
parents:
diff changeset
   490
				<xsd:attribute name="creationKeys" type="xsd:string">
cawthron
parents:
diff changeset
   491
					<xsd:annotation><xsd:documentation>An optional comma-delimited string containing a list of keys. When
cawthron
parents:
diff changeset
   492
					present these keys are used to add "create new xxx" items to the dropdown menu for the property, in addition to
cawthron
parents:
diff changeset
   493
					the "None" and existing instances populated into the menu. A component using this feature must also provide
cawthron
parents:
diff changeset
   494
					an ISetValueCommandExtender implementation to handle the creation of these items.
cawthron
parents:
diff changeset
   495
					Each key is used for two purposes:
cawthron
parents:
diff changeset
   496
					- As a resource key for the dropdown menu item. The resource string should be the full command, e.g. "Create new Foo".
cawthron
parents:
diff changeset
   497
					- When selected, the key is provided as a parameter to a com.nokia.sdt.component.NewComponentReferenceParameter instance. 
cawthron
parents:
diff changeset
   498
					This instance is then available from the SetValueCommand passed to ISetValueCommandExtender.getExtendedCommand. 
cawthron
parents:
diff changeset
   499
					The implementation should retrieve the key, and return a Command object that will create the appropriate new instance 
cawthron
parents:
diff changeset
   500
					and set the target value to the new instance.
cawthron
parents:
diff changeset
   501
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   502
				</xsd:attribute>
cawthron
parents:
diff changeset
   503
				<xsd:attribute name="promoteReferenceProperties" type="xsd:boolean">
cawthron
parents:
diff changeset
   504
					<xsd:annotation><xsd:documentation>If specified, the properties of the instance referenced by this property are promoted
cawthron
parents:
diff changeset
   505
					into this property source, excluding the 'name' property and other properties that already exist in this component.  
cawthron
parents:
diff changeset
   506
					This property and the referenced component instance's properties will be at the same level.
cawthron
parents:
diff changeset
   507
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   508
				</xsd:attribute>
cawthron
parents:
diff changeset
   509
			</xsd:extension>
cawthron
parents:
diff changeset
   510
		</xsd:complexContent>
cawthron
parents:
diff changeset
   511
	</xsd:complexType>
cawthron
parents:
diff changeset
   512
	
cawthron
parents:
diff changeset
   513
	<xsd:complexType name="arrayPropertyType">
cawthron
parents:
diff changeset
   514
			<xsd:annotation><xsd:documentation>A concrete property type that is a dynamic array of property values. All values
cawthron
parents:
diff changeset
   515
			are of the same type, which can be either a simple or compound property type.
cawthron
parents:
diff changeset
   516
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   517
		<xsd:complexContent>
cawthron
parents:
diff changeset
   518
			<xsd:extension base="abstractPropertyType">
cawthron
parents:
diff changeset
   519
				<xsd:attribute name="type" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   520
					<xsd:annotation><xsd:documentation>The element type. It must be either a propertyDataType value, such as "integer" 
cawthron
parents:
diff changeset
   521
					or "localizedString", or the fully qualified name of a compound property type.
cawthron
parents:
diff changeset
   522
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   523
				</xsd:attribute>
cawthron
parents:
diff changeset
   524
			</xsd:extension>
cawthron
parents:
diff changeset
   525
		</xsd:complexContent>
cawthron
parents:
diff changeset
   526
	</xsd:complexType>
cawthron
parents:
diff changeset
   527
	
cawthron
parents:
diff changeset
   528
	<xsd:element name="compoundPropertyDeclaration">
cawthron
parents:
diff changeset
   529
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   530
			Declares a compound type that may be referenced from one or more
cawthron
parents:
diff changeset
   531
			compound property declarations in this or other component documents. All compound property declarations are in a global 
cawthron
parents:
diff changeset
   532
			namespace and must be declared as global elements.
cawthron
parents:
diff changeset
   533
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   534
		<xsd:complexType>
cawthron
parents:
diff changeset
   535
			<xsd:sequence>
cawthron
parents:
diff changeset
   536
				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="abstractProperty">
cawthron
parents:
diff changeset
   537
					<xsd:annotation><xsd:documentation>Any property type may be used here, i.e. simple, compound, array, reference.
cawthron
parents:
diff changeset
   538
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   539
				</xsd:element>
cawthron
parents:
diff changeset
   540
cawthron
parents:
diff changeset
   541
				<xsd:element maxOccurs="1" minOccurs="0" ref="sourceTypeMapping">
cawthron
parents:
diff changeset
   542
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   543
					This element provides source mapping for the type, for use by
cawthron
parents:
diff changeset
   544
					map*FromType elements.  Added post 1.2.
cawthron
parents:
diff changeset
   545
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   546
				</xsd:element>
cawthron
parents:
diff changeset
   547
				
cawthron
parents:
diff changeset
   548
			</xsd:sequence>
cawthron
parents:
diff changeset
   549
			<xsd:attribute name="qualifiedName" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   550
				<xsd:annotation><xsd:documentation>A globally unique name for the property. By convention this is a dotted name, e.g.
cawthron
parents:
diff changeset
   551
				com.example.MyPropertyType. This identifier is used in compound property declarations.
cawthron
parents:
diff changeset
   552
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   553
			</xsd:attribute>
cawthron
parents:
diff changeset
   554
			<xsd:attribute default="" name="editableType" type="xsd:string">
cawthron
parents:
diff changeset
   555
				<xsd:annotation><xsd:documentation>The property type of the editable value. In addition to editing each
cawthron
parents:
diff changeset
   556
				child value, the user may be able to edit the property as a whole. For example, an RGB color value may be
cawthron
parents:
diff changeset
   557
				editable as a string. This value can be a propertyDataType value such as "integer" or "string", or can be
cawthron
parents:
diff changeset
   558
				the name of an enumPropertyDeclaration.
cawthron
parents:
diff changeset
   559
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   560
			</xsd:attribute>
cawthron
parents:
diff changeset
   561
			<xsd:attribute name="converterClass" type="xsd:string">
cawthron
parents:
diff changeset
   562
				<xsd:annotation><xsd:documentation>If specified, this must be the fully qualified name of an implementation of
cawthron
parents:
diff changeset
   563
				com.nokia.sdt.component.property.ICompoundPropertyValueConverter. It is used to convert back and forth between
cawthron
parents:
diff changeset
   564
				the editable value and the compound value. The editable value is a single value, display as the parent value in the
cawthron
parents:
diff changeset
   565
				property sheet and used with cell editors.
cawthron
parents:
diff changeset
   566
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   567
			</xsd:attribute>
cawthron
parents:
diff changeset
   568
		<xsd:attribute name="editorClass" type="xsd:string">
cawthron
parents:
diff changeset
   569
			<xsd:annotation><xsd:documentation>The fully qualified name of a class implementing 
cawthron
parents:
diff changeset
   570
			com.nokia.sdt.component.property.IPropertyEditorFactory.
cawthron
parents:
diff changeset
   571
			This allows Java code to provide a label provider, cell editor, and validator for the property.
cawthron
parents:
diff changeset
   572
			Specify a factory class here provides a default for all compound properties of this type. The factory
cawthron
parents:
diff changeset
   573
			may be overriden by a compound property declaration
cawthron
parents:
diff changeset
   574
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   575
		</xsd:attribute>
cawthron
parents:
diff changeset
   576
		</xsd:complexType>
cawthron
parents:
diff changeset
   577
	</xsd:element>
cawthron
parents:
diff changeset
   578
	
cawthron
parents:
diff changeset
   579
	<xsd:element name="enumPropertyDeclaration">
cawthron
parents:
diff changeset
   580
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   581
			Declares an enumerated type that may be referenced from one or more
cawthron
parents:
diff changeset
   582
			enumerated property declarations in this or other component documents. All enum property declarations are in a global 
cawthron
parents:
diff changeset
   583
			namespace and must be declared as global elements.
cawthron
parents:
diff changeset
   584
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   585
		<xsd:complexType>
cawthron
parents:
diff changeset
   586
			<xsd:sequence>
cawthron
parents:
diff changeset
   587
				<xsd:element maxOccurs="unbounded" name="enumElement">
cawthron
parents:
diff changeset
   588
						<xsd:annotation><xsd:documentation>This sequence is the list of values comprising the enumerated type. Each
cawthron
parents:
diff changeset
   589
						value consists of an internal string value and a displayable string value.
cawthron
parents:
diff changeset
   590
						</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   591
						<xsd:complexType>
cawthron
parents:
diff changeset
   592
						<xsd:attribute name="value" use="required">
cawthron
parents:
diff changeset
   593
							<xsd:annotation><xsd:documentation>The internal value, which is not localizable.
cawthron
parents:
diff changeset
   594
							</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   595
						</xsd:attribute>
cawthron
parents:
diff changeset
   596
						<xsd:attribute name="displayValue" use="optional">
cawthron
parents:
diff changeset
   597
							<xsd:annotation><xsd:documentation>The displayable value, which should be localized.
cawthron
parents:
diff changeset
   598
							</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   599
						</xsd:attribute>
cawthron
parents:
diff changeset
   600
					</xsd:complexType>
cawthron
parents:
diff changeset
   601
				</xsd:element>
cawthron
parents:
diff changeset
   602
				<xsd:element maxOccurs="1" minOccurs="0" ref="sourceTypeMapping">
cawthron
parents:
diff changeset
   603
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   604
					This element provides source mapping for the type, for use by
cawthron
parents:
diff changeset
   605
					map*FromType elements.  Added post 1.2
cawthron
parents:
diff changeset
   606
					</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   607
				</xsd:element>
cawthron
parents:
diff changeset
   608
			</xsd:sequence>
cawthron
parents:
diff changeset
   609
			<xsd:attribute name="qualifiedName" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   610
				<xsd:annotation><xsd:documentation>The globally unique name for this type. By convention this is a dotted name, e.g. com.example.MyEnumType.
cawthron
parents:
diff changeset
   611
				This value is used in enumPropertyDeclaration.
cawthron
parents:
diff changeset
   612
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   613
			</xsd:attribute>
cawthron
parents:
diff changeset
   614
			<xsd:attribute name="defaultValue" type="xsd:string">
cawthron
parents:
diff changeset
   615
				<xsd:annotation><xsd:documentation>A default internal value for the enumeration. It can be overriden in property declarations.
cawthron
parents:
diff changeset
   616
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   617
			</xsd:attribute>
cawthron
parents:
diff changeset
   618
		</xsd:complexType>
cawthron
parents:
diff changeset
   619
	</xsd:element>
cawthron
parents:
diff changeset
   620
	
cawthron
parents:
diff changeset
   621
	<xsd:element name="propertyOverrides">
cawthron
parents:
diff changeset
   622
		<xsd:annotation><xsd:documentation>A list of property overrides defined for this component. Components also
cawthron
parents:
diff changeset
   623
		inherit the property overrides of their base components, with changes applied by the most derived component taking
cawthron
parents:
diff changeset
   624
		precedence. 
cawthron
parents:
diff changeset
   625
		
cawthron
parents:
diff changeset
   626
		Property overrides allow certain characteristics of a property to be modified, such as changing a modifiable property
cawthron
parents:
diff changeset
   627
		to read-only.
cawthron
parents:
diff changeset
   628
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   629
		<xsd:complexType>
cawthron
parents:
diff changeset
   630
			<xsd:sequence>
cawthron
parents:
diff changeset
   631
				<xsd:element name="propertyOverride" maxOccurs="unbounded" minOccurs="0">
cawthron
parents:
diff changeset
   632
					<xsd:complexType>
cawthron
parents:
diff changeset
   633
						<xsd:attribute name="name" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   634
							<xsd:annotation><xsd:documentation>The internal name for the property being overriden. It is legal for
cawthron
parents:
diff changeset
   635
							this to reference a name that does not exist. This allows overrides of extension properties, which are
cawthron
parents:
diff changeset
   636
							only conditionaly defined.
cawthron
parents:
diff changeset
   637
							</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   638
						</xsd:attribute>			
cawthron
parents:
diff changeset
   639
						<xsd:attribute name="category" type="xsd:string">
cawthron
parents:
diff changeset
   640
							<xsd:annotation><xsd:documentation>Override of the property category. See the description
cawthron
parents:
diff changeset
   641
							in &lt;abstractPropertyType&gt;
cawthron
parents:
diff changeset
   642
							</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   643
						</xsd:attribute>			
cawthron
parents:
diff changeset
   644
						<xsd:attribute name="readOnly" type="xsd:boolean">
cawthron
parents:
diff changeset
   645
							<xsd:annotation><xsd:documentation>Override of the readOnly state. See the description
cawthron
parents:
diff changeset
   646
							in &lt;abstractPropertyType&gt;
cawthron
parents:
diff changeset
   647
							</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   648
						</xsd:attribute>			
cawthron
parents:
diff changeset
   649
						<xsd:attribute name="default" type="xsd:string">
cawthron
parents:
diff changeset
   650
							<xsd:annotation><xsd:documentation>Override of the default value. Default values can only
cawthron
parents:
diff changeset
   651
							be overriden on properties supporting default values, i.e simple properties, enums, and compound 
cawthron
parents:
diff changeset
   652
							properties. See the description in &lt;abstractPropertyType&gt; for more information.
cawthron
parents:
diff changeset
   653
							</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   654
						</xsd:attribute>			
cawthron
parents:
diff changeset
   655
					</xsd:complexType>
cawthron
parents:
diff changeset
   656
				</xsd:element>
cawthron
parents:
diff changeset
   657
			</xsd:sequence>
cawthron
parents:
diff changeset
   658
		</xsd:complexType>
cawthron
parents:
diff changeset
   659
	</xsd:element>
cawthron
parents:
diff changeset
   660
cawthron
parents:
diff changeset
   661
	<xsd:element name="events">
cawthron
parents:
diff changeset
   662
			<xsd:annotation><xsd:documentation>The list of events defined for this component. Components also inherit the events of
cawthron
parents:
diff changeset
   663
			their base components. Events are named notifications or hooks to which code can be attached. The data here is
cawthron
parents:
diff changeset
   664
			used to drive the user interface. The details of source code generation are part of the source code generation templates.
cawthron
parents:
diff changeset
   665
			
cawthron
parents:
diff changeset
   666
			The set of available events, and default event, may be overriden via code or script. See the 
cawthron
parents:
diff changeset
   667
			com.nokia.sdt.datamodel.adapter.IComponentEventInfo interface for more information.
cawthron
parents:
diff changeset
   668
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   669
			<xsd:complexType>
cawthron
parents:
diff changeset
   670
			<xsd:sequence>
cawthron
parents:
diff changeset
   671
				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="event"/>
cawthron
parents:
diff changeset
   672
			</xsd:sequence>
cawthron
parents:
diff changeset
   673
			<xsd:attribute name="defaultEventName" type="xsd:string">
cawthron
parents:
diff changeset
   674
				<xsd:annotation><xsd:documentation>If defined, the default event will be identified in a component instance's context
cawthron
parents:
diff changeset
   675
				menu. In the case of inheritance the most derived definition of the default event is used.
cawthron
parents:
diff changeset
   676
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   677
			</xsd:attribute>
cawthron
parents:
diff changeset
   678
		</xsd:complexType>
cawthron
parents:
diff changeset
   679
	</xsd:element>
cawthron
parents:
diff changeset
   680
	
cawthron
parents:
diff changeset
   681
	<xsd:element name="event">
cawthron
parents:
diff changeset
   682
		<xsd:annotation><xsd:documentation>The definition of a single event.
cawthron
parents:
diff changeset
   683
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   684
		<xsd:complexType>
cawthron
parents:
diff changeset
   685
			<xsd:attribute name="name" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   686
				<xsd:annotation><xsd:documentation>The internal name for the event. This does not need to be a dotted name, but it must
cawthron
parents:
diff changeset
   687
				be unique within the component and its base components.
cawthron
parents:
diff changeset
   688
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   689
			</xsd:attribute>
cawthron
parents:
diff changeset
   690
			<xsd:attribute name="displayName" type="xsd:string">
cawthron
parents:
diff changeset
   691
				<xsd:annotation><xsd:documentation>This displayable name for the event. This value should be localized.
cawthron
parents:
diff changeset
   692
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   693
			</xsd:attribute>
cawthron
parents:
diff changeset
   694
			<xsd:attribute name="category" type="xsd:string">
cawthron
parents:
diff changeset
   695
				<xsd:annotation><xsd:documentation>Categories are used for grouping events in the Events view. As with property categories,
cawthron
parents:
diff changeset
   696
				this can be a key to a category localized by the component provider, or it can be a pre-localized or literal string.
cawthron
parents:
diff changeset
   697
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   698
			</xsd:attribute>
cawthron
parents:
diff changeset
   699
			<xsd:attribute name="descriptionKey" type="xsd:string">
cawthron
parents:
diff changeset
   700
				<xsd:annotation><xsd:documentation>A key for descriptive information about the event.
cawthron
parents:
diff changeset
   701
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   702
			</xsd:attribute>
cawthron
parents:
diff changeset
   703
			<xsd:attribute name="helpKey" type="xsd:string">
cawthron
parents:
diff changeset
   704
				<xsd:annotation><xsd:documentation>A help topic for online help for the event.
cawthron
parents:
diff changeset
   705
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   706
			</xsd:attribute>
cawthron
parents:
diff changeset
   707
			<xsd:attribute name="handlerNameTemplate" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   708
				<xsd:annotation><xsd:documentation>A template which is expanded to the proposed default name for the
cawthron
parents:
diff changeset
   709
				event handler function. An example of such a template is "Handle{title(name)}StateChangedL".
cawthron
parents:
diff changeset
   710
				The {} marks template variables. A variable may contain a simple property value, but generally only the 'name' property
cawthron
parents:
diff changeset
   711
				should be used. The pseudo-functions "lower", "upper", and "title" may be used to transform the property value.
cawthron
parents:
diff changeset
   712
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   713
			</xsd:attribute>
cawthron
parents:
diff changeset
   714
			<xsd:attribute name="group" type="xsd:string">
cawthron
parents:
diff changeset
   715
				<xsd:annotation><xsd:documentation>This is a grouping, separate from categories, used in event filtering. Events
cawthron
parents:
diff changeset
   716
				may only make sense for specific containers. The interface com.nokia.sdt.datamodel.adapter.IComponentEventInfo is
cawthron
parents:
diff changeset
   717
				used to filter applicable events from the complete set of declared events. When deriving from an existing base
cawthron
parents:
diff changeset
   718
				component it is not generally necessary to implement this interface. Instead, just use the groups defined by
cawthron
parents:
diff changeset
   719
				the base component in your own events. For example to make events visible in a CCoeControl container, The CCoeControlBase
cawthron
parents:
diff changeset
   720
				component uses the filter group "Control". 
cawthron
parents:
diff changeset
   721
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   722
			</xsd:attribute>
cawthron
parents:
diff changeset
   723
		</xsd:complexType>
cawthron
parents:
diff changeset
   724
	</xsd:element>
cawthron
parents:
diff changeset
   725
cawthron
parents:
diff changeset
   726
	<xsd:element name="implementations">
cawthron
parents:
diff changeset
   727
		<xsd:annotation>
cawthron
parents:
diff changeset
   728
			<xsd:documentation>Implementation elements declare code or script implementations of interfaces by name.
cawthron
parents:
diff changeset
   729
			</xsd:documentation>
cawthron
parents:
diff changeset
   730
		</xsd:annotation>
cawthron
parents:
diff changeset
   731
		<xsd:complexType>
cawthron
parents:
diff changeset
   732
			<xsd:sequence>
cawthron
parents:
diff changeset
   733
				<xsd:element maxOccurs="unbounded" ref="implementation"/>
cawthron
parents:
diff changeset
   734
			</xsd:sequence>
cawthron
parents:
diff changeset
   735
		</xsd:complexType>
cawthron
parents:
diff changeset
   736
	</xsd:element>
cawthron
parents:
diff changeset
   737
	<xsd:element name="implementation">
cawthron
parents:
diff changeset
   738
		<xsd:complexType>
cawthron
parents:
diff changeset
   739
			<xsd:sequence>
cawthron
parents:
diff changeset
   740
				<xsd:sequence>
cawthron
parents:
diff changeset
   741
					<xsd:element maxOccurs="unbounded" name="interface">
cawthron
parents:
diff changeset
   742
						<xsd:complexType>
cawthron
parents:
diff changeset
   743
							<xsd:attribute name="id" type="xsd:string" use="required"/>
cawthron
parents:
diff changeset
   744
						</xsd:complexType>
cawthron
parents:
diff changeset
   745
					</xsd:element>
cawthron
parents:
diff changeset
   746
				</xsd:sequence>
cawthron
parents:
diff changeset
   747
				<xsd:choice>
cawthron
parents:
diff changeset
   748
					<xsd:element ref="code"/>
cawthron
parents:
diff changeset
   749
					<xsd:element ref="script"/>
cawthron
parents:
diff changeset
   750
				</xsd:choice>
cawthron
parents:
diff changeset
   751
			</xsd:sequence>
cawthron
parents:
diff changeset
   752
		</xsd:complexType>
cawthron
parents:
diff changeset
   753
	</xsd:element>
cawthron
parents:
diff changeset
   754
	<xsd:element name="code">
cawthron
parents:
diff changeset
   755
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   756
		Define a reference to an interface implemented in Java.
cawthron
parents:
diff changeset
   757
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   758
		<xsd:complexType>
cawthron
parents:
diff changeset
   759
			<xsd:attribute name="plugin" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
   760
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   761
				Plugin id
cawthron
parents:
diff changeset
   762
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   763
			</xsd:attribute>
cawthron
parents:
diff changeset
   764
			
cawthron
parents:
diff changeset
   765
			<xsd:attribute name="class" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   766
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   767
				Class in plugin.
cawthron
parents:
diff changeset
   768
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   769
			</xsd:attribute>
cawthron
parents:
diff changeset
   770
		</xsd:complexType>
cawthron
parents:
diff changeset
   771
	</xsd:element>
cawthron
parents:
diff changeset
   772
	<xsd:element name="script">
cawthron
parents:
diff changeset
   773
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   774
		Define a reference to an interface implemented in Javascript.
cawthron
parents:
diff changeset
   775
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   776
		<xsd:complexType>
cawthron
parents:
diff changeset
   777
			<xsd:attribute name="file" type="xsd:string" use="required"/>
cawthron
parents:
diff changeset
   778
			<xsd:attribute name="prototype" type="xsd:string" use="required"/>
cawthron
parents:
diff changeset
   779
		</xsd:complexType>
cawthron
parents:
diff changeset
   780
	</xsd:element>
cawthron
parents:
diff changeset
   781
	<xsd:element name="sourceGen">
cawthron
parents:
diff changeset
   782
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   783
		This section controls C/C++ source generation (with the potential to support 
cawthron
parents:
diff changeset
   784
		other one-way languages).  In a sourceGen element, all the elements in linear 
cawthron
parents:
diff changeset
   785
		order comprise the component's contributions.  
cawthron
parents:
diff changeset
   786
		
cawthron
parents:
diff changeset
   787
		Conditional sourcegen is implemented by using the "form" attribute on 
cawthron
parents:
diff changeset
   788
		templates or templateGroups, or explicitly checking the regex "form" in inline code.  
cawthron
parents:
diff changeset
   789
		
cawthron
parents:
diff changeset
   790
		Another form of conditional sourcegen is event handling code.  The "ifEvents" attribute completely filters out defineLocation/template elements if a given event is not bound to an instance.
cawthron
parents:
diff changeset
   791
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   792
		<xsd:complexType>
cawthron
parents:
diff changeset
   793
			<xsd:sequence>
cawthron
parents:
diff changeset
   794
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
cawthron
parents:
diff changeset
   795
					<xsd:element ref="defineLocation"/>
cawthron
parents:
diff changeset
   796
					<xsd:element ref="template"/>
cawthron
parents:
diff changeset
   797
					<xsd:element ref="templateGroup"/>
cawthron
parents:
diff changeset
   798
					<xsd:element ref="useTemplate"/>
cawthron
parents:
diff changeset
   799
					<xsd:element ref="useTemplateGroup"/>
cawthron
parents:
diff changeset
   800
					<xsd:element ref="inline"/>
cawthron
parents:
diff changeset
   801
					<xsd:element ref="script"/>
cawthron
parents:
diff changeset
   802
					<xsd:element ref="defineMacro"/>
cawthron
parents:
diff changeset
   803
					<xsd:element ref="expandMacro"/>
cawthron
parents:
diff changeset
   804
				</xsd:choice>
cawthron
parents:
diff changeset
   805
			</xsd:sequence>
cawthron
parents:
diff changeset
   806
			<!-- IGNORED -->
cawthron
parents:
diff changeset
   807
			<xsd:attribute name="forms" type="xsd:string" use="optional"/>
cawthron
parents:
diff changeset
   808
			<xsd:attribute default="false" name="debug" type="xsd:boolean" use="optional"/>
cawthron
parents:
diff changeset
   809
		</xsd:complexType>
cawthron
parents:
diff changeset
   810
	</xsd:element>
cawthron
parents:
diff changeset
   811
cawthron
parents:
diff changeset
   812
	<xsd:simpleType name="listOfStrings">
cawthron
parents:
diff changeset
   813
		<xsd:list itemType="xsd:string"/>
cawthron
parents:
diff changeset
   814
	</xsd:simpleType>
cawthron
parents:
diff changeset
   815
cawthron
parents:
diff changeset
   816
	<xsd:attributeGroup name="ConditionalSourceGenAttributes">
cawthron
parents:
diff changeset
   817
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   818
		Base for sourcegen elements which may be conditionally skipped.
cawthron
parents:
diff changeset
   819
		Such skipping applies to the save-time behavior and not
cawthron
parents:
diff changeset
   820
		the load-time or validation-time behavior.
cawthron
parents:
diff changeset
   821
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   822
		<xsd:attribute name="forms" type="listOfStrings" use="optional">
cawthron
parents:
diff changeset
   823
			<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   824
			Added post 1.1 to inline.
cawthron
parents:
diff changeset
   825
cawthron
parents:
diff changeset
   826
			A list of tokens used to select a particular kind of source for a parent.
cawthron
parents:
diff changeset
   827
			The namespace is determined implicitly by what a parent requests.
cawthron
parents:
diff changeset
   828
			
cawthron
parents:
diff changeset
   829
			For instance, a parent may have special sourcegen, and pass
cawthron
parents:
diff changeset
   830
			the form "SpecialCase" to its children.  Elements specifying
cawthron
parents:
diff changeset
   831
			form="SpecialCase" will be selected.  Other parents will not see
cawthron
parents:
diff changeset
   832
			such elements if they do not specify that form.
cawthron
parents:
diff changeset
   833
			
cawthron
parents:
diff changeset
   834
			If the form does not match, the element is not invoked.
cawthron
parents:
diff changeset
   835
			</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
   836
		</xsd:attribute>
cawthron
parents:
diff changeset
   837
		<xsd:attribute name="ifEvents" type="listOfStrings" use="optional">
cawthron
parents:
diff changeset
   838
			<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   839
			Added post 1.1 to inline.
cawthron
parents:
diff changeset
   840
			If defined, a list of events, any of which must be bound for the
cawthron
parents:
diff changeset
   841
			element to be invoked.
cawthron
parents:
diff changeset
   842
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   843
		</xsd:attribute>
cawthron
parents:
diff changeset
   844
		<xsd:attribute name="ifExpr" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
   845
			<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   846
			Added post 1.1.
cawthron
parents:
diff changeset
   847
			If defined, a Javascript expression which must evaluate to
cawthron
parents:
diff changeset
   848
			true (or non-zero) for the element to be invoked.
cawthron
parents:
diff changeset
   849
			</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   850
		</xsd:attribute>
cawthron
parents:
diff changeset
   851
	</xsd:attributeGroup>
cawthron
parents:
diff changeset
   852
cawthron
parents:
diff changeset
   853
	<xsd:complexType name="ConditionalSourceGen" abstract="true">
cawthron
parents:
diff changeset
   854
			<xsd:attributeGroup ref="ConditionalSourceGenAttributes"/>
cawthron
parents:
diff changeset
   855
	</xsd:complexType>
cawthron
parents:
diff changeset
   856
	
cawthron
parents:
diff changeset
   857
	<!-- I'm really annoyed schema doesn't support multiple inheritance.
cawthron
parents:
diff changeset
   858
	 ConditionalSourceGenString should be an extension 
cawthron
parents:
diff changeset
   859
	 of ConditionalSourceGen too. -->
cawthron
parents:
diff changeset
   860
	<xsd:complexType name="ConditionalSourceGenString" abstract="true">
cawthron
parents:
diff changeset
   861
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   862
		Base for sourcegen elements which may be conditionally skipped
cawthron
parents:
diff changeset
   863
		(and which contain text).
cawthron
parents:
diff changeset
   864
		Such skipping applies to the save-time behavior and not
cawthron
parents:
diff changeset
   865
		the load-time or validation-time behavior.
cawthron
parents:
diff changeset
   866
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   867
		<xsd:simpleContent>
cawthron
parents:
diff changeset
   868
			<xsd:extension base="xsd:string">
cawthron
parents:
diff changeset
   869
				<xsd:attributeGroup ref="ConditionalSourceGenAttributes"/>
cawthron
parents:
diff changeset
   870
			</xsd:extension>
cawthron
parents:
diff changeset
   871
		</xsd:simpleContent>
cawthron
parents:
diff changeset
   872
	</xsd:complexType>
cawthron
parents:
diff changeset
   873
cawthron
parents:
diff changeset
   874
	<xsd:element name="inline">
cawthron
parents:
diff changeset
   875
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   876
		Provide Javascript in-line with templates and other sourceGen elements.
cawthron
parents:
diff changeset
   877
		Be sure to supply a "forms" attribute, otherwise the code may execute multiple times
cawthron
parents:
diff changeset
   878
		during the source generation contribution-gathering phase.
cawthron
parents:
diff changeset
   879
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   880
		<xsd:complexType>
cawthron
parents:
diff changeset
   881
			<xsd:simpleContent>
cawthron
parents:
diff changeset
   882
				<xsd:extension base="ConditionalSourceGenString">
cawthron
parents:
diff changeset
   883
					<xsd:attribute default="function" name="scope" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
   884
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   885
						Tells where the inline code appears.  By default, it appears
cawthron
parents:
diff changeset
   886
						in the primary function into which templates are generated, thus is
cawthron
parents:
diff changeset
   887
						executed in line with them.  
cawthron
parents:
diff changeset
   888
						
cawthron
parents:
diff changeset
   889
						Specifying "file" or "prototype" means the content is intended to modify the 
cawthron
parents:
diff changeset
   890
						Javascript prototype, thus it is placed at the top level of the file.  
cawthron
parents:
diff changeset
   891
						${jsObject}.prototype may be used to access the prototype.
cawthron
parents:
diff changeset
   892
						
cawthron
parents:
diff changeset
   893
						Note: include() and includeFrom() calls should be placed in the prototype scope,
cawthron
parents:
diff changeset
   894
						or their contents will not be visible to derived components.
cawthron
parents:
diff changeset
   895
cawthron
parents:
diff changeset
   896
						Added post 1.1: "file" is a synonym for "prototype".
cawthron
parents:
diff changeset
   897
						</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   898
					</xsd:attribute>
cawthron
parents:
diff changeset
   899
					<xsd:attribute name="id" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
   900
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   901
						Added post 1.1: the identifier for the inline section,
cawthron
parents:
diff changeset
   902
						which makes it inheritable.  Inline sections are inherited as templates,
cawthron
parents:
diff changeset
   903
						accessible with "useTemplate" of the same id.
cawthron
parents:
diff changeset
   904
						If unspecified, a default id is assigned.  Use a blank id to avoid inheriting.
cawthron
parents:
diff changeset
   905
						</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   906
					</xsd:attribute>
cawthron
parents:
diff changeset
   907
				</xsd:extension>
cawthron
parents:
diff changeset
   908
			</xsd:simpleContent>
cawthron
parents:
diff changeset
   909
		</xsd:complexType>
cawthron
parents:
diff changeset
   910
	</xsd:element>
cawthron
parents:
diff changeset
   911
cawthron
parents:
diff changeset
   912
	<xsd:element name="defineLocation">
cawthron
parents:
diff changeset
   913
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   914
		This element defines a location in source, such as a function in the main 
cawthron
parents:
diff changeset
   915
		file or a region of text in a class declaration.  
cawthron
parents:
diff changeset
   916
		This is a slight misnomer as this element does not by its presence realize
cawthron
parents:
diff changeset
   917
		the location.  Only when a contribution references
cawthron
parents:
diff changeset
   918
		location id (or post 1.1: when realize="true" is used)
cawthron
parents:
diff changeset
   919
		will the location be added to source.
cawthron
parents:
diff changeset
   920
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   921
		<xsd:complexType>
cawthron
parents:
diff changeset
   922
			<xsd:sequence>
cawthron
parents:
diff changeset
   923
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
cawthron
parents:
diff changeset
   924
					<xsd:element ref="template"/>
cawthron
parents:
diff changeset
   925
					<xsd:element ref="inline"/>
cawthron
parents:
diff changeset
   926
					<xsd:element ref="script"/>
cawthron
parents:
diff changeset
   927
					<xsd:element ref="expandMacro"/>
cawthron
parents:
diff changeset
   928
				</xsd:choice>
cawthron
parents:
diff changeset
   929
			</xsd:sequence>
cawthron
parents:
diff changeset
   930
			<xsd:attribute name="baseLocation" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
   931
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   932
				If defined, the location id this location lives inside.  (E.g. a class inside a file,
cawthron
parents:
diff changeset
   933
				an enum declaration inside a class, etc.)
cawthron
parents:
diff changeset
   934
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   935
			</xsd:attribute>
cawthron
parents:
diff changeset
   936
			<xsd:attribute name="domain" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
   937
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   938
				The source domain which controls how locations are interpreted and instantiated.  
cawthron
parents:
diff changeset
   939
				Only "cpp" is supported currently.
cawthron
parents:
diff changeset
   940
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   941
			</xsd:attribute>
cawthron
parents:
diff changeset
   942
			<xsd:attribute name="id" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   943
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   944
				The location identifier.  This must be unique in a component.  A derived component
cawthron
parents:
diff changeset
   945
				may redefine a location.
cawthron
parents:
diff changeset
   946
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   947
			</xsd:attribute>
cawthron
parents:
diff changeset
   948
			<xsd:attribute name="dir" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
   949
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   950
				For a top-level location, where baseLocation is null, this is a
cawthron
parents:
diff changeset
   951
				template-expanded reference to the project-relative directory to
cawthron
parents:
diff changeset
   952
				use.  Predefined variables ${src}, ${inc}, ${resource}, ${build}
cawthron
parents:
diff changeset
   953
				are provided.
cawthron
parents:
diff changeset
   954
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   955
			</xsd:attribute>
cawthron
parents:
diff changeset
   956
			<xsd:attribute name="file" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
   957
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   958
				For a top-level location, where baseLocation is null, this is a
cawthron
parents:
diff changeset
   959
				template-expanded filename relative to the directory specified by "dir".
cawthron
parents:
diff changeset
   960
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
   961
			</xsd:attribute>
cawthron
parents:
diff changeset
   962
			<xsd:attribute name="location" type="xsd:string" use="required">
cawthron
parents:
diff changeset
   963
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
   964
				This describes the location relative to its base (use "" for a
cawthron
parents:
diff changeset
   965
				top-level file location).  
cawthron
parents:
diff changeset
   966
				
cawthron
parents:
diff changeset
   967
A location segment in the cpp domain is a string
cawthron
parents:
diff changeset
   968
representing a node in a C/C++ parse tree.  Each takes the syntax “&lt;name&gt;
cawthron
parents:
diff changeset
   969
‘(‘ &lt;arguments…&gt; ‘)’�?.  Certain nodes may only appear within certain
cawthron
parents:
diff changeset
   970
others.  This list defines top-level nodes:
cawthron
parents:
diff changeset
   971
cawthron
parents:
diff changeset
   972
class(&lt;name&gt;): 
cawthron
parents:
diff changeset
   973
reference the class declaration for the class ‘name’, which may include namespaces (e.g.
cawthron
parents:
diff changeset
   974
“class(MyClass)�? or “class(${className})�?)
cawthron
parents:
diff changeset
   975
cawthron
parents:
diff changeset
   976
function(&lt;name&gt;(&lt;arguments…)):
cawthron
parents:
diff changeset
   977
reference a function with the given signature.  ‘name’ may include namespaces
cawthron
parents:
diff changeset
   978
or represent a destructor.  ‘arguments’ is a comma-separated list of types. 
cawthron
parents:
diff changeset
   979
This list of arguments is currently not parsed and only the number of
cawthron
parents:
diff changeset
   980
arguments matters.  The arguments list may end in ellipsis (“…�?) to indicate
cawthron
parents:
diff changeset
   981
that any zero or more arguments are matched.  Again, the &lt;template&gt;
cawthron
parents:
diff changeset
   982
inside a &lt;defineLocation&gt; really defines the function.  (E.g.
cawthron
parents:
diff changeset
   983
“function(main(int,char**))�? or “function(${className}::method(void*)�?.)
cawthron
parents:
diff changeset
   984
cawthron
parents:
diff changeset
   985
region(&lt;name&gt;): 
cawthron
parents:
diff changeset
   986
a region defines a commented block of text with no other syntactical clues.  The
cawthron
parents:
diff changeset
   987
block comments and the name are used to identify the block.  Thus, names should
cawthron
parents:
diff changeset
   988
be unique across a component.  (E.g. “region(Generated Includes)�?.)
cawthron
parents:
diff changeset
   989
cawthron
parents:
diff changeset
   990
enum(&lt;name&gt;): 
cawthron
parents:
diff changeset
   991
a enum declaration with the given name.  Name must be non-empty (locations are
cawthron
parents:
diff changeset
   992
used to look up source, so anonymous enums cannot be unambiguously
cawthron
parents:
diff changeset
   993
identified).  (E.g. “enum(T${className}Ids)�?.)
cawthron
parents:
diff changeset
   994
cawthron
parents:
diff changeset
   995
namespace(&lt;name&gt;):
cawthron
parents:
diff changeset
   996
a namespace declaration with the given name, which may contain colons.  (E.g.
cawthron
parents:
diff changeset
   997
“namespace(std::tr1)�?)
cawthron
parents:
diff changeset
   998
cawthron
parents:
diff changeset
   999
to-file(): 
cawthron
parents:
diff changeset
  1000
resolve to the current file of a location, i.e. get back to the root location. 
cawthron
parents:
diff changeset
  1001
cawthron
parents:
diff changeset
  1002
Inside a class(), namespace() is not allowed, and this
cawthron
parents:
diff changeset
  1003
additional segment is allowed:
cawthron
parents:
diff changeset
  1004
cawthron
parents:
diff changeset
  1005
bases(): 
cawthron
parents:
diff changeset
  1006
references the base-class-list within a class declaration.  If the class’ defining text
cawthron
parents:
diff changeset
  1007
already includes a base, then the defining text for the bases() location may be
cawthron
parents:
diff changeset
  1008
omitted.  If a class’ defining text does not include a base, the bases()
cawthron
parents:
diff changeset
  1009
location must include the leading colon in its defining text.  Otherwise,
cawthron
parents:
diff changeset
  1010
contributions are individual class references with leading commas.
cawthron
parents:
diff changeset
  1011
cawthron
parents:
diff changeset
  1012
In a function(), only class(), region(), enum(), and to-file() are allowed.
cawthron
parents:
diff changeset
  1013
cawthron
parents:
diff changeset
  1014
In an enum(), bases() or region(), only region() and to-file() are allowed.
cawthron
parents:
diff changeset
  1015
cawthron
parents:
diff changeset
  1016
				
cawthron
parents:
diff changeset
  1017
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1018
			</xsd:attribute>
cawthron
parents:
diff changeset
  1019
			<xsd:attribute default="true" name="owned" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1020
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1021
				Note: a string for macro use only; must resolve to "true" or "false".
cawthron
parents:
diff changeset
  1022
				If true, the location is marked generated in source and will be
cawthron
parents:
diff changeset
  1023
				regenerated from scratch on every save.  Otherwise, the location
cawthron
parents:
diff changeset
  1024
				is generated only when missing.
cawthron
parents:
diff changeset
  1025
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1026
			</xsd:attribute>
cawthron
parents:
diff changeset
  1027
			<xsd:attribute default="default" name="filter" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1028
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1029
				Defines a filter on contributions added to the location.
cawthron
parents:
diff changeset
  1030
				Available filters:
cawthron
parents:
diff changeset
  1031
				* unique-includes (can be applied anywhere, but scans files)
cawthron
parents:
diff changeset
  1032
				* unique-prototypes (can be applied in "class()" or children, but scans the class)
cawthron
parents:
diff changeset
  1033
				* unique-bases (can be applied to "bases()" or children, but scans the base class list)
cawthron
parents:
diff changeset
  1034
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1035
			</xsd:attribute>
cawthron
parents:
diff changeset
  1036
			<xsd:attribute name="isEventHandler" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1037
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1038
				Note: a string for macro use only; must resolve to "true" or "false".
cawthron
parents:
diff changeset
  1039
				When "ifEvents" is non-empty, this flag tells the designer which particular
cawthron
parents:
diff changeset
  1040
				function is the user-editable event handler.  So this usually is applied
cawthron
parents:
diff changeset
  1041
				to a function() location.
cawthron
parents:
diff changeset
  1042
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1043
			</xsd:attribute>
cawthron
parents:
diff changeset
  1044
			<xsd:attribute name="realize" type="xsd:string" use="optional" default="false">
cawthron
parents:
diff changeset
  1045
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1046
				Added post 1.1.  
cawthron
parents:
diff changeset
  1047
				Note: a string for macro use only; must resolve to "true" or "false".
cawthron
parents:
diff changeset
  1048
				If true, a template for this location is automatically added when this location is defined.
cawthron
parents:
diff changeset
  1049
				Otherwise, the location is a placeholder and is not "realized" in actual source unless a template references it.
cawthron
parents:
diff changeset
  1050
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1051
			</xsd:attribute>
cawthron
parents:
diff changeset
  1052
			<xsd:attribute name="ifEvents" type="listOfStrings" use="optional">
cawthron
parents:
diff changeset
  1053
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1054
				If defined, a list of events, any of which must be bound for the
cawthron
parents:
diff changeset
  1055
				location to be declared.  Otherwise, its id is not available and 
cawthron
parents:
diff changeset
  1056
				the location is undefined.
cawthron
parents:
diff changeset
  1057
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1058
			</xsd:attribute>
cawthron
parents:
diff changeset
  1059
		</xsd:complexType>
cawthron
parents:
diff changeset
  1060
		
cawthron
parents:
diff changeset
  1061
	</xsd:element>
cawthron
parents:
diff changeset
  1062
cawthron
parents:
diff changeset
  1063
cawthron
parents:
diff changeset
  1064
	<xsd:element name="template">
cawthron
parents:
diff changeset
  1065
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1066
		This defines a contribution.  The text element is template-expanded 
cawthron
parents:
diff changeset
  1067
		with ${ ... } expression escapes and may contain Javascript in &lt;% ... %&gt; sections.
cawthron
parents:
diff changeset
  1068
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1069
		<xsd:complexType>
cawthron
parents:
diff changeset
  1070
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1071
				<xsd:extension base="ConditionalSourceGenString">
cawthron
parents:
diff changeset
  1072
					<xsd:attribute name="location" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1073
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1074
						The location id the contribution goes to.  May not be specified when "phase" is set.
cawthron
parents:
diff changeset
  1075
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1076
					</xsd:attribute>
cawthron
parents:
diff changeset
  1077
					
cawthron
parents:
diff changeset
  1078
					<xsd:attribute name="phase" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1079
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1080
						The phase the contribution goes to.  A parent component must realize the
cawthron
parents:
diff changeset
  1081
						phase into an actual location id.
cawthron
parents:
diff changeset
  1082
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1083
					</xsd:attribute>
cawthron
parents:
diff changeset
  1084
					<xsd:attribute name="mode" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1085
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1086
						Unused currently.
cawthron
parents:
diff changeset
  1087
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1088
					</xsd:attribute>
cawthron
parents:
diff changeset
  1089
					<!-- form and forms are the same, semantically -->
cawthron
parents:
diff changeset
  1090
					
cawthron
parents:
diff changeset
  1091
					<!-- form is obsolescent, use forms instead -->
cawthron
parents:
diff changeset
  1092
					<xsd:attribute name="form" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1093
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1094
						A token used to select a particular kind of source for a parent.
cawthron
parents:
diff changeset
  1095
						The namespace is determined implicitly by what a parent requests.
cawthron
parents:
diff changeset
  1096
						
cawthron
parents:
diff changeset
  1097
						For instance, a parent may have special sourcegen, and pass
cawthron
parents:
diff changeset
  1098
						the form "SpecialCase" to its children.  Templates specifying
cawthron
parents:
diff changeset
  1099
						form="SpecialCase" will be selected.  Other parents will not see
cawthron
parents:
diff changeset
  1100
						such templates if they do not specify that form.
cawthron
parents:
diff changeset
  1101
						
cawthron
parents:
diff changeset
  1102
						If the form does not match, the template is not instantiated.
cawthron
parents:
diff changeset
  1103
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1104
					</xsd:attribute>
cawthron
parents:
diff changeset
  1105
					
cawthron
parents:
diff changeset
  1106
					<xsd:attribute name="id" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1107
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1108
						Unique id for the template within a component or
cawthron
parents:
diff changeset
  1109
						within a templateGroup.  Ids may be shared for different
cawthron
parents:
diff changeset
  1110
						forms.  Derived components may redefine ids or inherit
cawthron
parents:
diff changeset
  1111
						templates by id.
cawthron
parents:
diff changeset
  1112
						Added post 1.1: if the id is unspecified in a templateGroup, 
cawthron
parents:
diff changeset
  1113
						a default id is assigned.  To avoid inheriting, supply an empty id.
cawthron
parents:
diff changeset
  1114
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1115
					</xsd:attribute>
cawthron
parents:
diff changeset
  1116
				</xsd:extension>
cawthron
parents:
diff changeset
  1117
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1118
		</xsd:complexType>
cawthron
parents:
diff changeset
  1119
	</xsd:element>
cawthron
parents:
diff changeset
  1120
	<xsd:element name="templateGroup">
cawthron
parents:
diff changeset
  1121
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1122
		A logical grouping of templates and locations.  Attributes
cawthron
parents:
diff changeset
  1123
		present on the group are automatically applied to children.
cawthron
parents:
diff changeset
  1124
		Groups may not be nested.
cawthron
parents:
diff changeset
  1125
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1126
		<xsd:complexType>
cawthron
parents:
diff changeset
  1127
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1128
				<xsd:extension base="ConditionalSourceGen">
cawthron
parents:
diff changeset
  1129
					<xsd:sequence>
cawthron
parents:
diff changeset
  1130
						<xsd:choice maxOccurs="unbounded" minOccurs="0">
cawthron
parents:
diff changeset
  1131
							<xsd:element ref="defineLocation"/>
cawthron
parents:
diff changeset
  1132
							<xsd:element ref="template"/>
cawthron
parents:
diff changeset
  1133
							<!-- added post 1.1 -->
cawthron
parents:
diff changeset
  1134
							<xsd:element ref="inline"/>
cawthron
parents:
diff changeset
  1135
							<!-- added post 1.1 -->
cawthron
parents:
diff changeset
  1136
							<xsd:element ref="useTemplate"/>
cawthron
parents:
diff changeset
  1137
							<!-- added post 1.1 -->
cawthron
parents:
diff changeset
  1138
							<xsd:element ref="useTemplateGroup"/>
cawthron
parents:
diff changeset
  1139
							<!-- added post 1.1 -->
cawthron
parents:
diff changeset
  1140
							<xsd:element ref="expandMacro"/>
cawthron
parents:
diff changeset
  1141
						</xsd:choice>
cawthron
parents:
diff changeset
  1142
					</xsd:sequence>
cawthron
parents:
diff changeset
  1143
					<xsd:attribute name="location" type="xsd:string" use="optional"/>
cawthron
parents:
diff changeset
  1144
					<xsd:attribute name="mode" type="xsd:string" use="optional"/>
cawthron
parents:
diff changeset
  1145
					<xsd:attribute name="phase" type="xsd:string" use="optional"/>
cawthron
parents:
diff changeset
  1146
					<xsd:attribute name="id" type="xsd:string" use="optional"/>
cawthron
parents:
diff changeset
  1147
					<!-- form is obsolescent -->
cawthron
parents:
diff changeset
  1148
					<xsd:attribute name="form" type="xsd:string" use="optional"/>
cawthron
parents:
diff changeset
  1149
				</xsd:extension>	
cawthron
parents:
diff changeset
  1150
			</xsd:complexContent>		
cawthron
parents:
diff changeset
  1151
		</xsd:complexType>
cawthron
parents:
diff changeset
  1152
	</xsd:element>
cawthron
parents:
diff changeset
  1153
	<xsd:element name="useTemplate">
cawthron
parents:
diff changeset
  1154
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1155
		In a derived component, selects a template from the base by id.
cawthron
parents:
diff changeset
  1156
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1157
	
cawthron
parents:
diff changeset
  1158
		<xsd:complexType>
cawthron
parents:
diff changeset
  1159
			<xsd:attribute name="ids" type="xsd:string" use="required"/>
cawthron
parents:
diff changeset
  1160
		</xsd:complexType>
cawthron
parents:
diff changeset
  1161
	</xsd:element>
cawthron
parents:
diff changeset
  1162
	<xsd:element name="useTemplateGroup">
cawthron
parents:
diff changeset
  1163
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1164
		In a derived component, selects a template group from the base by id.
cawthron
parents:
diff changeset
  1165
		If no subelements are specified, all the named templates (those with ids)
cawthron
parents:
diff changeset
  1166
		are inherited.  No templates without ids are inherited.
cawthron
parents:
diff changeset
  1167
		
cawthron
parents:
diff changeset
  1168
		If subelements are specified, these describe the specific templates
cawthron
parents:
diff changeset
  1169
		to inherit from the group.  The id "*" may be used to bring in all
cawthron
parents:
diff changeset
  1170
		named templates.
cawthron
parents:
diff changeset
  1171
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1172
		<xsd:complexType>
cawthron
parents:
diff changeset
  1173
			<xsd:sequence>
cawthron
parents:
diff changeset
  1174
				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="useTemplate"/>
cawthron
parents:
diff changeset
  1175
			</xsd:sequence>
cawthron
parents:
diff changeset
  1176
			<xsd:attribute name="ids" type="xsd:string" use="required"/>
cawthron
parents:
diff changeset
  1177
		</xsd:complexType>
cawthron
parents:
diff changeset
  1178
	</xsd:element>
cawthron
parents:
diff changeset
  1179
cawthron
parents:
diff changeset
  1180
	<xsd:element name="defineMacro">
cawthron
parents:
diff changeset
  1181
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1182
		Added post 1.1.  
cawthron
parents:
diff changeset
  1183
		This element defines a macro consisting of a set of templates 
cawthron
parents:
diff changeset
  1184
		and inlines which may be variable-substituted.
cawthron
parents:
diff changeset
  1185
			
cawthron
parents:
diff changeset
  1186
		If a given defineMacro imports multiple arguments
cawthron
parents:
diff changeset
  1187
		of the same name, then they must be explicitly redefined,
cawthron
parents:
diff changeset
  1188
		to resolve any ambiguities about the default value.  
cawthron
parents:
diff changeset
  1189
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1190
		<xsd:complexType>
cawthron
parents:
diff changeset
  1191
			<xsd:sequence>
cawthron
parents:
diff changeset
  1192
				<xsd:element ref="importArguments" maxOccurs="unbounded" minOccurs="0"/>
cawthron
parents:
diff changeset
  1193
				<xsd:element ref="macroArgument" maxOccurs="unbounded" minOccurs="0"/>
cawthron
parents:
diff changeset
  1194
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
cawthron
parents:
diff changeset
  1195
					<xsd:element ref="template"/>
cawthron
parents:
diff changeset
  1196
					<xsd:element ref="inline"/>
cawthron
parents:
diff changeset
  1197
					<xsd:element ref="defineLocation"/>
cawthron
parents:
diff changeset
  1198
					<xsd:element ref="expandMacro"/>
cawthron
parents:
diff changeset
  1199
				</xsd:choice>
cawthron
parents:
diff changeset
  1200
			</xsd:sequence>
cawthron
parents:
diff changeset
  1201
			
cawthron
parents:
diff changeset
  1202
			<xsd:attribute name="id" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1203
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1204
				Unique id for the macro within a component.  
cawthron
parents:
diff changeset
  1205
				Ids may be shared for different
cawthron
parents:
diff changeset
  1206
				forms.  Derived components inherit macros automatically
cawthron
parents:
diff changeset
  1207
				but may redefine a macro with the same id.
cawthron
parents:
diff changeset
  1208
				</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1209
			</xsd:attribute>
cawthron
parents:
diff changeset
  1210
			
cawthron
parents:
diff changeset
  1211
			<xsd:attribute name="help" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1212
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1213
				Help/usage text for a documentation generating tool.
cawthron
parents:
diff changeset
  1214
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1215
			</xsd:attribute>
cawthron
parents:
diff changeset
  1216
cawthron
parents:
diff changeset
  1217
		</xsd:complexType>
cawthron
parents:
diff changeset
  1218
	</xsd:element>
cawthron
parents:
diff changeset
  1219
	
cawthron
parents:
diff changeset
  1220
	<xsd:element name="macroArgument">
cawthron
parents:
diff changeset
  1221
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1222
		Added post 1.1.
cawthron
parents:
diff changeset
  1223
		Defines an argument for use with the macro.
cawthron
parents:
diff changeset
  1224
		The default value may be specified in the 'default' attribute or in the text of the element.
cawthron
parents:
diff changeset
  1225
		The text supercedes the attribute.  
cawthron
parents:
diff changeset
  1226
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1227
		<xsd:complexType>
cawthron
parents:
diff changeset
  1228
			<xsd:simpleContent>
cawthron
parents:
diff changeset
  1229
				<xsd:extension base="xsd:string">
cawthron
parents:
diff changeset
  1230
					<xsd:attribute name="name" type="xsd:string" use="required">
cawthron
parents:
diff changeset
  1231
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1232
						The name of the argument.  This must be a legal Javascript identifier
cawthron
parents:
diff changeset
  1233
						and unique within the macro.
cawthron
parents:
diff changeset
  1234
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1235
					</xsd:attribute>
cawthron
parents:
diff changeset
  1236
					<xsd:attribute name="optional" type="xsd:boolean" use="optional">
cawthron
parents:
diff changeset
  1237
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1238
						Tells whether the argument may be omitted from an expandMacro use.
cawthron
parents:
diff changeset
  1239
						If true, and no default is provided, the variable's value is null.
cawthron
parents:
diff changeset
  1240
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1241
					</xsd:attribute>
cawthron
parents:
diff changeset
  1242
					<xsd:attribute name="default" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1243
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1244
						The default value of the argument if unspecified.  Alternately, the
cawthron
parents:
diff changeset
  1245
						text of this element may be supplied as the default, if formatting
cawthron
parents:
diff changeset
  1246
						or newlines are used.
cawthron
parents:
diff changeset
  1247
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1248
					</xsd:attribute>
cawthron
parents:
diff changeset
  1249
					<xsd:attribute name="help" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1250
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1251
						Help/usage text for a documentation generating tool.
cawthron
parents:
diff changeset
  1252
						</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1253
					</xsd:attribute>
cawthron
parents:
diff changeset
  1254
				</xsd:extension>
cawthron
parents:
diff changeset
  1255
			</xsd:simpleContent>
cawthron
parents:
diff changeset
  1256
		</xsd:complexType>
cawthron
parents:
diff changeset
  1257
	</xsd:element>
cawthron
parents:
diff changeset
  1258
	
cawthron
parents:
diff changeset
  1259
	<xsd:element name="importArguments">
cawthron
parents:
diff changeset
  1260
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1261
		Added post 1.1.  
cawthron
parents:
diff changeset
  1262
		This element specifies that a list of arguments (name, type, defaults,
cawthron
parents:
diff changeset
  1263
		optional flags) will be imported from another macro. 
cawthron
parents:
diff changeset
  1264
		If this element is omitted, then all the arguments from the macro
cawthron
parents:
diff changeset
  1265
		are imported.  
cawthron
parents:
diff changeset
  1266
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1267
		<xsd:complexType>
cawthron
parents:
diff changeset
  1268
			<xsd:attribute name="macroName" type="xsd:string" use="required">
cawthron
parents:
diff changeset
  1269
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1270
				The macro whose arguments to import.
cawthron
parents:
diff changeset
  1271
				</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1272
			</xsd:attribute>
cawthron
parents:
diff changeset
  1273
			<xsd:attribute name="arguments" type="listOfStrings" use="required">
cawthron
parents:
diff changeset
  1274
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1275
				The list of argument names to import.  This is mutually exclusive with 'exceptArguments'.
cawthron
parents:
diff changeset
  1276
				</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1277
			</xsd:attribute>
cawthron
parents:
diff changeset
  1278
			<xsd:attribute name="exceptArguments" type="listOfStrings" use="required">
cawthron
parents:
diff changeset
  1279
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1280
				The list of argument names NOT to import.  All the arguments are imported
cawthron
parents:
diff changeset
  1281
				except these.  This is mutually exclusive with 'arguments'.
cawthron
parents:
diff changeset
  1282
				</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1283
			</xsd:attribute>
cawthron
parents:
diff changeset
  1284
			<xsd:attribute name="help" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1285
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1286
				Help/usage text for a documentation generating tool.
cawthron
parents:
diff changeset
  1287
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1288
			</xsd:attribute>
cawthron
parents:
diff changeset
  1289
		</xsd:complexType>
cawthron
parents:
diff changeset
  1290
	</xsd:element>
cawthron
parents:
diff changeset
  1291
		
cawthron
parents:
diff changeset
  1292
	<xsd:element name="expandMacro">
cawthron
parents:
diff changeset
  1293
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1294
		<p>
cawthron
parents:
diff changeset
  1295
		Added post 1.1.
cawthron
parents:
diff changeset
  1296
		Expands a given macro into the sourceGen of the caller.  
cawthron
parents:
diff changeset
  1297
		This has the same effect as inserting the same templates and inlines 
cawthron
parents:
diff changeset
  1298
		from the macro's definition at the point of call.  
cawthron
parents:
diff changeset
  1299
		Variable references from those templates and inlines
cawthron
parents:
diff changeset
  1300
		are substituted with the values provided in attributes 
cawthron
parents:
diff changeset
  1301
		(e.g. variableName="value") or expandArgument child elements.  
cawthron
parents:
diff changeset
  1302
		The latter may be preferred for cases where code is substituted,
cawthron
parents:
diff changeset
  1303
		so the formatting may be retained.
cawthron
parents:
diff changeset
  1304
		</p>
cawthron
parents:
diff changeset
  1305
		<p>
cawthron
parents:
diff changeset
  1306
		As a special case, variable references may have modifiers to
cawthron
parents:
diff changeset
  1307
		modify the formatting of a variable when it is expanded.  
cawthron
parents:
diff changeset
  1308
		Modifiers are appended
cawthron
parents:
diff changeset
  1309
		to the variable name as in: $(varName::modifier).  
cawthron
parents:
diff changeset
  1310
		</p>
cawthron
parents:
diff changeset
  1311
		<p>
cawthron
parents:
diff changeset
  1312
		Currently supported modifiers are all for tweaking canonical
cawthron
parents:
diff changeset
  1313
		function argument lists, which match the format of 
cawthron
parents:
diff changeset
  1314
		declaration, with spaces, argument names, default values, etc:
cawthron
parents:
diff changeset
  1315
		</p>
cawthron
parents:
diff changeset
  1316
		<ul>
cawthron
parents:
diff changeset
  1317
			<li>as-function-declaration-args: identity
cawthron
parents:
diff changeset
  1318
			</li>
cawthron
parents:
diff changeset
  1319
			<li>as-function-definition-args: removes default argument values
cawthron
parents:
diff changeset
  1320
			</li>
cawthron
parents:
diff changeset
  1321
			<li>as-function-location-args: removes argument names, default arguments, and spaces
cawthron
parents:
diff changeset
  1322
			</li>
cawthron
parents:
diff changeset
  1323
		</ul>
cawthron
parents:
diff changeset
  1324
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1325
		<xsd:complexType>
cawthron
parents:
diff changeset
  1326
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1327
				<xsd:extension base="ConditionalSourceGen" >
cawthron
parents:
diff changeset
  1328
					<xsd:sequence>
cawthron
parents:
diff changeset
  1329
						<xsd:element ref="expandArgument" maxOccurs="unbounded" minOccurs="0"/>
cawthron
parents:
diff changeset
  1330
					</xsd:sequence>
cawthron
parents:
diff changeset
  1331
					<xsd:attribute name="name" type="xsd:string" use="required">
cawthron
parents:
diff changeset
  1332
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1333
						The macro to invoke (matching the id from defineMacro).
cawthron
parents:
diff changeset
  1334
						</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1335
					</xsd:attribute>
cawthron
parents:
diff changeset
  1336
					<xsd:attribute name="passArguments" type="listOfStrings" use="optional">
cawthron
parents:
diff changeset
  1337
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1338
						A list of arguments defined in the current calling macro to
cawthron
parents:
diff changeset
  1339
						pass unchanged to the called macro, excluding any arguments
cawthron
parents:
diff changeset
  1340
						that are not defined in the current call.
cawthron
parents:
diff changeset
  1341
						
cawthron
parents:
diff changeset
  1342
						This attribute is only valid in expandMacro called from
cawthron
parents:
diff changeset
  1343
						a defineMacro.  
cawthron
parents:
diff changeset
  1344
						
cawthron
parents:
diff changeset
  1345
						Passing arguments is different from adding attributes
cawthron
parents:
diff changeset
  1346
						argName="$(argName)" because it avoids defining otherwise 
cawthron
parents:
diff changeset
  1347
						undefined arguments.  (A missing optional argument is null,
cawthron
parents:
diff changeset
  1348
						not the empty string.  The '::is-defined' modifier can be
cawthron
parents:
diff changeset
  1349
						used to check this.)
cawthron
parents:
diff changeset
  1350
						
cawthron
parents:
diff changeset
  1351
						Elements in the list of strings are names of arguments, or
cawthron
parents:
diff changeset
  1352
						renames of the form targetArgumentName=hostArgumentName which
cawthron
parents:
diff changeset
  1353
						passes hostArgumentName from the hosting macro with the name
cawthron
parents:
diff changeset
  1354
						targetArgumentName (again, only if the argument is actually
cawthron
parents:
diff changeset
  1355
						defined in the call).
cawthron
parents:
diff changeset
  1356
							
cawthron
parents:
diff changeset
  1357
						If this argument is not specified, all the arguments in the
cawthron
parents:
diff changeset
  1358
						invoked macro are passed (zero or more may have defaults which
cawthron
parents:
diff changeset
  1359
						are overridden in this macro). 
cawthron
parents:
diff changeset
  1360
						</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1361
					</xsd:attribute>
cawthron
parents:
diff changeset
  1362
					
cawthron
parents:
diff changeset
  1363
					<xsd:attribute name="dontPassArguments" type="listOfStrings" use="optional">
cawthron
parents:
diff changeset
  1364
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1365
						This is primarily used when passArguments is not specified.
cawthron
parents:
diff changeset
  1366
						It specifies which arguments not to pass to the invoked macro,
cawthron
parents:
diff changeset
  1367
						which become undefined in the expansion of that macro.
cawthron
parents:
diff changeset
  1368
						This is useful when this macro takes over the work of one or more
cawthron
parents:
diff changeset
  1369
						arguments from the invoked macro. 
cawthron
parents:
diff changeset
  1370
						</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1371
					</xsd:attribute>
cawthron
parents:
diff changeset
  1372
cawthron
parents:
diff changeset
  1373
					<xsd:attribute name="help" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1374
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1375
						Help/usage text for a documentation generating tool.
cawthron
parents:
diff changeset
  1376
						</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1377
					</xsd:attribute>
cawthron
parents:
diff changeset
  1378
					
cawthron
parents:
diff changeset
  1379
					<xsd:anyAttribute processContents="lax">
cawthron
parents:
diff changeset
  1380
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1381
						Any attribute matching the variables used in the given named macro may appear here.
cawthron
parents:
diff changeset
  1382
						</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1383
					</xsd:anyAttribute>
cawthron
parents:
diff changeset
  1384
				</xsd:extension>
cawthron
parents:
diff changeset
  1385
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1386
		</xsd:complexType>
cawthron
parents:
diff changeset
  1387
	</xsd:element>
cawthron
parents:
diff changeset
  1388
cawthron
parents:
diff changeset
  1389
	<xsd:element name="expandArgument">
cawthron
parents:
diff changeset
  1390
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1391
		Added post 1.1.  
cawthron
parents:
diff changeset
  1392
		Provides multiline text content for an argument.
cawthron
parents:
diff changeset
  1393
		This is semantically identical to setting an attribute of the same
cawthron
parents:
diff changeset
  1394
		name="..." value in the expandMacro element, with any standalone 
cawthron
parents:
diff changeset
  1395
		leading whitespace and standalone trailing whitespace removed
cawthron
parents:
diff changeset
  1396
		(as with &lt;template&gt;).
cawthron
parents:
diff changeset
  1397
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1398
		<xsd:complexType>
cawthron
parents:
diff changeset
  1399
			<xsd:simpleContent>
cawthron
parents:
diff changeset
  1400
				<xsd:extension base="xsd:string">
cawthron
parents:
diff changeset
  1401
					<xsd:attribute name="name" type="xsd:string" use="required">
cawthron
parents:
diff changeset
  1402
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1403
						The variable to define (matching the id from macroArgument).
cawthron
parents:
diff changeset
  1404
						</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1405
					</xsd:attribute>
cawthron
parents:
diff changeset
  1406
					<xsd:attribute name="help" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1407
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1408
						Help/usage text for a documentation generating tool.
cawthron
parents:
diff changeset
  1409
						</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  1410
					</xsd:attribute>
cawthron
parents:
diff changeset
  1411
				</xsd:extension>
cawthron
parents:
diff changeset
  1412
			</xsd:simpleContent>
cawthron
parents:
diff changeset
  1413
		</xsd:complexType>
cawthron
parents:
diff changeset
  1414
	</xsd:element>
cawthron
parents:
diff changeset
  1415
	
cawthron
parents:
diff changeset
  1416
	<xsd:element name="select">
cawthron
parents:
diff changeset
  1417
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1418
		This element encapsulates choice elements which allow conditional
cawthron
parents:
diff changeset
  1419
		source mapping.  One choice must match or an error results (you can
cawthron
parents:
diff changeset
  1420
		use an empty choice to match the default case if necessary).  Only
cawthron
parents:
diff changeset
  1421
		the first matching choice is considered.
cawthron
parents:
diff changeset
  1422
			<p>
cawthron
parents:
diff changeset
  1423
				Only use one attribute (property, attribute, propertyExists, isComponentInstanceOf)
cawthron
parents:
diff changeset
  1424
				 for the select statement.
cawthron
parents:
diff changeset
  1425
			</p>
cawthron
parents:
diff changeset
  1426
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1427
	
cawthron
parents:
diff changeset
  1428
		<xsd:complexType>
cawthron
parents:
diff changeset
  1429
			<xsd:sequence>
cawthron
parents:
diff changeset
  1430
				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="choice"/>
cawthron
parents:
diff changeset
  1431
			</xsd:sequence>
cawthron
parents:
diff changeset
  1432
			<!-- only one of these should be set -->
cawthron
parents:
diff changeset
  1433
			<xsd:attribute name="property" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1434
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1435
					Specifies the property path to test.  (E.g. "flag", "[parent].flag", ...)
cawthron
parents:
diff changeset
  1436
						Results in an error if the property does not exist, else the string version of the property to test.
cawthron
parents:
diff changeset
  1437
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1438
			</xsd:attribute>
cawthron
parents:
diff changeset
  1439
			
cawthron
parents:
diff changeset
  1440
			<xsd:attribute name="attribute" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1441
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1442
					Specifies the attribute value to test.  Results in blank ("") or the value of the attribute to test.
cawthron
parents:
diff changeset
  1443
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1444
			</xsd:attribute>
cawthron
parents:
diff changeset
  1445
			
cawthron
parents:
diff changeset
  1446
			<xsd:attribute name="propertyExists" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1447
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1448
					Specifies the property path to test for existence.  (E.g. "flag", "[parent].flag", ...)
cawthron
parents:
diff changeset
  1449
						Results in a 'true' or 'false' value to test. 
cawthron
parents:
diff changeset
  1450
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1451
			</xsd:attribute>
cawthron
parents:
diff changeset
  1452
cawthron
parents:
diff changeset
  1453
			<xsd:attribute name="isComponentInstanceOf" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1454
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1455
					Specifies the property path to test for existence, e.g., whether the
cawthron
parents:
diff changeset
  1456
						property may be set or queried.  This is independent of whether the
cawthron
parents:
diff changeset
  1457
						property is actually set.  The attribute takes a property path (e.g. "flag", "[parent].flag", ...)
cawthron
parents:
diff changeset
  1458
					Results in a 'true' or 'false' value to test. 
cawthron
parents:
diff changeset
  1459
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1460
			</xsd:attribute>
cawthron
parents:
diff changeset
  1461
			
cawthron
parents:
diff changeset
  1462
		</xsd:complexType>
cawthron
parents:
diff changeset
  1463
	</xsd:element>
cawthron
parents:
diff changeset
  1464
	<xsd:element name="choice">
cawthron
parents:
diff changeset
  1465
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1466
		This defines a decision in the select element.  If the "value" attribute
cawthron
parents:
diff changeset
  1467
		matches the value obtained in the select element, the choice is matched
cawthron
parents:
diff changeset
  1468
		and its mapping elements instantiated.
cawthron
parents:
diff changeset
  1469
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1470
		<xsd:complexType>
cawthron
parents:
diff changeset
  1471
			<xsd:sequence>
cawthron
parents:
diff changeset
  1472
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
cawthron
parents:
diff changeset
  1473
					<xsd:element ref="twoWayMapping"/>
cawthron
parents:
diff changeset
  1474
					<xsd:element ref="mapResource"/>
cawthron
parents:
diff changeset
  1475
					<xsd:element ref="select"/>
cawthron
parents:
diff changeset
  1476
				</xsd:choice>
cawthron
parents:
diff changeset
  1477
			</xsd:sequence>
cawthron
parents:
diff changeset
  1478
			<xsd:attribute name="value" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1479
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1480
					The value to match.  If unspecified, the choice always matches.
cawthron
parents:
diff changeset
  1481
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1482
			</xsd:attribute>
cawthron
parents:
diff changeset
  1483
			
cawthron
parents:
diff changeset
  1484
		</xsd:complexType>
cawthron
parents:
diff changeset
  1485
	</xsd:element>
cawthron
parents:
diff changeset
  1486
	<xsd:complexType name="twoWayMappingType">
cawthron
parents:
diff changeset
  1487
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1488
		Base for two-way mappings.
cawthron
parents:
diff changeset
  1489
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1490
	</xsd:complexType>	
cawthron
parents:
diff changeset
  1491
	<xsd:complexType name="mappingFixedType">
cawthron
parents:
diff changeset
  1492
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1493
		Base for mapping a fixed value to RSS.
cawthron
parents:
diff changeset
  1494
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1495
		<xsd:complexContent>
cawthron
parents:
diff changeset
  1496
			<xsd:extension base="twoWayMappingType">
cawthron
parents:
diff changeset
  1497
				<xsd:attribute name="value" type="xsd:string" use="required">
cawthron
parents:
diff changeset
  1498
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1499
					The literal string to emit into RSS.
cawthron
parents:
diff changeset
  1500
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1501
			</xsd:attribute>
cawthron
parents:
diff changeset
  1502
			</xsd:extension>
cawthron
parents:
diff changeset
  1503
		</xsd:complexContent>
cawthron
parents:
diff changeset
  1504
	</xsd:complexType>
cawthron
parents:
diff changeset
  1505
	<xsd:complexType name="mappingSimpleType">
cawthron
parents:
diff changeset
  1506
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1507
		Base for mapping simple types (integers, floats, strings, booleans).
cawthron
parents:
diff changeset
  1508
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1509
		<xsd:complexContent>
cawthron
parents:
diff changeset
  1510
			<xsd:extension base="twoWayMappingType"/>
cawthron
parents:
diff changeset
  1511
		</xsd:complexContent>
cawthron
parents:
diff changeset
  1512
	</xsd:complexType>
cawthron
parents:
diff changeset
  1513
	<xsd:complexType name="mappingInstanceType">
cawthron
parents:
diff changeset
  1514
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1515
		Base for mapping resources generated by component instances.
cawthron
parents:
diff changeset
  1516
		Either a reference to the resource is emitted (for LLINK targets)
cawthron
parents:
diff changeset
  1517
		or the resource expression is emitted (for STRUCT targets).
cawthron
parents:
diff changeset
  1518
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1519
		<xsd:complexContent>
cawthron
parents:
diff changeset
  1520
			<xsd:extension base="twoWayMappingType">
cawthron
parents:
diff changeset
  1521
				<xsd:attribute name="rsrcId" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1522
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1523
					If specified, which particular resource to match.
cawthron
parents:
diff changeset
  1524
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1525
			</xsd:attribute>
cawthron
parents:
diff changeset
  1526
			</xsd:extension>
cawthron
parents:
diff changeset
  1527
		</xsd:complexContent>
cawthron
parents:
diff changeset
  1528
	</xsd:complexType>
cawthron
parents:
diff changeset
  1529
	<xsd:complexType name="mappingReferenceType">
cawthron
parents:
diff changeset
  1530
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1531
		Base for mapping references to resources generated by component instances.
cawthron
parents:
diff changeset
  1532
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1533
		<xsd:complexContent>
cawthron
parents:
diff changeset
  1534
			<xsd:extension base="twoWayMappingType">
cawthron
parents:
diff changeset
  1535
				<xsd:attribute name="rsrcId" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1536
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1537
					If defined, tells which particular generated resource to reference.
cawthron
parents:
diff changeset
  1538
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1539
				</xsd:attribute>				
cawthron
parents:
diff changeset
  1540
			</xsd:extension>
cawthron
parents:
diff changeset
  1541
		</xsd:complexContent>
cawthron
parents:
diff changeset
  1542
	</xsd:complexType>
cawthron
parents:
diff changeset
  1543
	<xsd:complexType name="mappingEnumType">
cawthron
parents:
diff changeset
  1544
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1545
		Base for mapping enumerator properties.
cawthron
parents:
diff changeset
  1546
		If any mapEnum elements specified, they completely define the list of mappings 
cawthron
parents:
diff changeset
  1547
		of internal enumerator values  to external RSS values.  Otherwise, internal 
cawthron
parents:
diff changeset
  1548
		values are directly emitted as RSS values.
cawthron
parents:
diff changeset
  1549
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1550
		<xsd:complexContent>
cawthron
parents:
diff changeset
  1551
			<xsd:extension base="twoWayMappingType">
cawthron
parents:
diff changeset
  1552
				<xsd:sequence maxOccurs="unbounded" minOccurs="0">
cawthron
parents:
diff changeset
  1553
					<xsd:element ref="mapEnum"/>
cawthron
parents:
diff changeset
  1554
				</xsd:sequence>
cawthron
parents:
diff changeset
  1555
				<xsd:attribute name="enumeration" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1556
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1557
					Unused.
cawthron
parents:
diff changeset
  1558
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1559
				</xsd:attribute>
cawthron
parents:
diff changeset
  1560
				<xsd:attribute name="headers" type="listOfStrings" use="optional">
cawthron
parents:
diff changeset
  1561
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1562
					List of header files that must be included to provide the RSS enumerator symbols.
cawthron
parents:
diff changeset
  1563
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1564
				</xsd:attribute>
cawthron
parents:
diff changeset
  1565
				<xsd:attribute default="true" name="validate" type="xsd:boolean" use="optional">
cawthron
parents:
diff changeset
  1566
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1567
					If true, ensure that mapped enumerators are declared in the RSS context,
cawthron
parents:
diff changeset
  1568
					emitting warnings if not.  Set this to false if mapping #defines or
cawthron
parents:
diff changeset
  1569
					expressions.
cawthron
parents:
diff changeset
  1570
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1571
				</xsd:attribute>
cawthron
parents:
diff changeset
  1572
				
cawthron
parents:
diff changeset
  1573
				<xsd:attribute name="nameAlgorithm" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1574
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1575
					If defined, mapped RSS values may be generated by an algorithm based on
cawthron
parents:
diff changeset
  1576
					the current instance and property.  See the com.nokia.sdt.sourceGen.nameAlgorithm
cawthron
parents:
diff changeset
  1577
					extension point for details.
cawthron
parents:
diff changeset
  1578
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1579
				</xsd:attribute>
cawthron
parents:
diff changeset
  1580
				<xsd:attribute name="uniqueValue" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1581
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1582
					When nameAlgorithm is defined, specifies that some or all mapped values
cawthron
parents:
diff changeset
  1583
					are generated by the name algorithm.  If the value is "*", every value goes
cawthron
parents:
diff changeset
  1584
					through the name algorithm and gets an enumerator in an *.hrh file.
cawthron
parents:
diff changeset
  1585
					Otherwise, only properties matching the value are generated.
cawthron
parents:
diff changeset
  1586
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1587
				</xsd:attribute>
cawthron
parents:
diff changeset
  1588
			</xsd:extension>
cawthron
parents:
diff changeset
  1589
		</xsd:complexContent>
cawthron
parents:
diff changeset
  1590
	</xsd:complexType>
cawthron
parents:
diff changeset
  1591
	<xsd:element name="mapEnum">
cawthron
parents:
diff changeset
  1592
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1593
		This defines the mapping of one particular property value to one
cawthron
parents:
diff changeset
  1594
		particular RSS value.
cawthron
parents:
diff changeset
  1595
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1596
		<xsd:complexType>
cawthron
parents:
diff changeset
  1597
			<xsd:attribute name="value" type="xsd:string" use="required">
cawthron
parents:
diff changeset
  1598
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1599
					The property value.
cawthron
parents:
diff changeset
  1600
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1601
			</xsd:attribute>
cawthron
parents:
diff changeset
  1602
			
cawthron
parents:
diff changeset
  1603
			<xsd:attribute name="enumerator" type="xsd:string" use="required">
cawthron
parents:
diff changeset
  1604
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1605
					The RSS enumerator.
cawthron
parents:
diff changeset
  1606
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1607
			</xsd:attribute>
cawthron
parents:
diff changeset
  1608
		</xsd:complexType>
cawthron
parents:
diff changeset
  1609
	</xsd:element>
cawthron
parents:
diff changeset
  1610
	<xsd:complexType name="mappingIdentifierType">
cawthron
parents:
diff changeset
  1611
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1612
		Base for mapping property values to RSS identifiers (rather than
cawthron
parents:
diff changeset
  1613
		strings, for instance, as mappingSimpleType would do).
cawthron
parents:
diff changeset
  1614
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1615
		<xsd:complexContent>
cawthron
parents:
diff changeset
  1616
			<xsd:extension base="twoWayMappingType"/>
cawthron
parents:
diff changeset
  1617
		</xsd:complexContent>
cawthron
parents:
diff changeset
  1618
	</xsd:complexType>
cawthron
parents:
diff changeset
  1619
	<xsd:complexType name="mappingResourceType">
cawthron
parents:
diff changeset
  1620
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1621
		Base for mapping resources in RSS.
cawthron
parents:
diff changeset
  1622
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1623
		<xsd:complexContent>
cawthron
parents:
diff changeset
  1624
			<xsd:extension base="twoWayMappingType">
cawthron
parents:
diff changeset
  1625
				<xsd:sequence>
cawthron
parents:
diff changeset
  1626
					<xsd:choice maxOccurs="unbounded" minOccurs="0">
cawthron
parents:
diff changeset
  1627
						<xsd:element ref="mapSimpleMember"/>
cawthron
parents:
diff changeset
  1628
						<xsd:element ref="mapInstanceMember"/>
cawthron
parents:
diff changeset
  1629
						<xsd:element ref="mapReferenceMember"/>
cawthron
parents:
diff changeset
  1630
						<xsd:element ref="mapFixedMember"/>
cawthron
parents:
diff changeset
  1631
						<xsd:element ref="mapEnumMember"/>
cawthron
parents:
diff changeset
  1632
						<xsd:element ref="mapIdentifierMember"/>
cawthron
parents:
diff changeset
  1633
						<xsd:element ref="mapArrayMember"/>
cawthron
parents:
diff changeset
  1634
						<xsd:element ref="mapResourceMember"/>
cawthron
parents:
diff changeset
  1635
						<xsd:element ref="mapBitmaskMember"/>
cawthron
parents:
diff changeset
  1636
						<xsd:element ref="mapMemberFromType"/>
cawthron
parents:
diff changeset
  1637
						<xsd:element ref="mapIntoProperty"/>
cawthron
parents:
diff changeset
  1638
						<xsd:element ref="select"/>
cawthron
parents:
diff changeset
  1639
					</xsd:choice>
cawthron
parents:
diff changeset
  1640
				</xsd:sequence>
cawthron
parents:
diff changeset
  1641
				<xsd:attribute name="struct" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1642
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1643
					The RSS STRUCT name to generate.
cawthron
parents:
diff changeset
  1644
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1645
				</xsd:attribute>
cawthron
parents:
diff changeset
  1646
				
cawthron
parents:
diff changeset
  1647
				<xsd:attribute name="headers" type="listOfStrings" use="optional">
cawthron
parents:
diff changeset
  1648
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1649
					The list of headers required to declare the STRUCT.
cawthron
parents:
diff changeset
  1650
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1651
				</xsd:attribute>
cawthron
parents:
diff changeset
  1652
				
cawthron
parents:
diff changeset
  1653
				<xsd:attribute name="id" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  1654
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1655
					The unique identifier for this resource within a component.
cawthron
parents:
diff changeset
  1656
					
cawthron
parents:
diff changeset
  1657
					Every mapResourceXXX must have an identifier, either implicitly
cawthron
parents:
diff changeset
  1658
					or explicitly defined.
cawthron
parents:
diff changeset
  1659
					
cawthron
parents:
diff changeset
  1660
					If unspecified, an identifier is automatically generated for
cawthron
parents:
diff changeset
  1661
					mapResourceMember or mapResourceElement elements.  Otherwise,
cawthron
parents:
diff changeset
  1662
					missing identifiers are reported at errors at source mapping time.
cawthron
parents:
diff changeset
  1663
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1664
				</xsd:attribute>
cawthron
parents:
diff changeset
  1665
				
cawthron
parents:
diff changeset
  1666
			</xsd:extension>
cawthron
parents:
diff changeset
  1667
		</xsd:complexContent>
cawthron
parents:
diff changeset
  1668
	</xsd:complexType>
cawthron
parents:
diff changeset
  1669
	<xsd:complexType name="mappingBitmaskType">
cawthron
parents:
diff changeset
  1670
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1671
		Base for mapping sets of boolean properties to a single bitmask expression in RSS.
cawthron
parents:
diff changeset
  1672
		
cawthron
parents:
diff changeset
  1673
		When mapping this element, a working set of the includedProperties is created.
cawthron
parents:
diff changeset
  1674
		Each mapBitmaskValue element is considered in turn, and if all the properties
cawthron
parents:
diff changeset
  1675
		it references are present in the working set and have the value "true", 
cawthron
parents:
diff changeset
  1676
		the matching value is OR'ed into the target expression, and those properties removed from the working set.
cawthron
parents:
diff changeset
  1677
		Once the working set is empty, the mapping is complete.  If all mapBitmaskValues are
cawthron
parents:
diff changeset
  1678
		exhausted but the working set is non-empty, this is a component error.
cawthron
parents:
diff changeset
  1679
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1680
		<xsd:complexContent>
cawthron
parents:
diff changeset
  1681
			<xsd:extension base="twoWayMappingType">
cawthron
parents:
diff changeset
  1682
				<xsd:sequence maxOccurs="unbounded" minOccurs="0">
cawthron
parents:
diff changeset
  1683
					<xsd:element ref="mapBitmaskValue"/>
cawthron
parents:
diff changeset
  1684
				</xsd:sequence>
cawthron
parents:
diff changeset
  1685
				<xsd:attribute name="includedProperties" type="listOfStrings" use="optional">
cawthron
parents:
diff changeset
  1686
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1687
					The list of properties included in the set.  If undefined, all the
cawthron
parents:
diff changeset
  1688
					sibling properties (within a component or compound property) are included.
cawthron
parents:
diff changeset
  1689
					Every included property must be referenced in a mapBitmaskValue element,
cawthron
parents:
diff changeset
  1690
					or else the mapping is considered invalid, and an error reported.
cawthron
parents:
diff changeset
  1691
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1692
				</xsd:attribute>
cawthron
parents:
diff changeset
  1693
				
cawthron
parents:
diff changeset
  1694
			</xsd:extension>
cawthron
parents:
diff changeset
  1695
		</xsd:complexContent>
cawthron
parents:
diff changeset
  1696
	</xsd:complexType>
cawthron
parents:
diff changeset
  1697
	<xsd:element name="mapBitmaskValue">
cawthron
parents:
diff changeset
  1698
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1699
		Map a set of properties to a subexpression of the bitmask expression.  If all the given
cawthron
parents:
diff changeset
  1700
		properties are "true", the given value is OR'ed into the target expression.
cawthron
parents:
diff changeset
  1701
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1702
		<xsd:complexType>
cawthron
parents:
diff changeset
  1703
			<xsd:attribute name="properties" type="listOfStrings" use="required">
cawthron
parents:
diff changeset
  1704
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1705
					List of properties to consider.  May be property paths.
cawthron
parents:
diff changeset
  1706
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1707
			</xsd:attribute>
cawthron
parents:
diff changeset
  1708
			
cawthron
parents:
diff changeset
  1709
			<xsd:attribute name="value" type="xsd:string" use="required">
cawthron
parents:
diff changeset
  1710
					<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1711
					Value to OR into the target expression.
cawthron
parents:
diff changeset
  1712
					</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1713
			</xsd:attribute>
cawthron
parents:
diff changeset
  1714
			
cawthron
parents:
diff changeset
  1715
		</xsd:complexType>
cawthron
parents:
diff changeset
  1716
	</xsd:element>
cawthron
parents:
diff changeset
  1717
cawthron
parents:
diff changeset
  1718
	<xsd:element abstract="true" name="twoWayMapping" type="twoWayMappingType"/>
cawthron
parents:
diff changeset
  1719
	
cawthron
parents:
diff changeset
  1720
	<xsd:complexType name="mappingArrayType">
cawthron
parents:
diff changeset
  1721
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1722
		Base for mapping arrays from sequence properties or component instance children.
cawthron
parents:
diff changeset
  1723
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1724
		<xsd:complexContent>
cawthron
parents:
diff changeset
  1725
			<xsd:extension base="twoWayMappingType">
cawthron
parents:
diff changeset
  1726
				<xsd:sequence>
cawthron
parents:
diff changeset
  1727
					<xsd:choice maxOccurs="1" minOccurs="0">
cawthron
parents:
diff changeset
  1728
						<xsd:element ref="twoWayMapping">
cawthron
parents:
diff changeset
  1729
								<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1730
								This is restricted to mapXXXElement, mapElementFromType, or mapIntoProperty, but we can't represent this in XSD.
cawthron
parents:
diff changeset
  1731
								</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1732
						</xsd:element>
cawthron
parents:
diff changeset
  1733
						
cawthron
parents:
diff changeset
  1734
						<xsd:element ref="select"/>
cawthron
parents:
diff changeset
  1735
					</xsd:choice>
cawthron
parents:
diff changeset
  1736
				</xsd:sequence>
cawthron
parents:
diff changeset
  1737
			</xsd:extension>
cawthron
parents:
diff changeset
  1738
		</xsd:complexContent>
cawthron
parents:
diff changeset
  1739
	</xsd:complexType>
cawthron
parents:
diff changeset
  1740
	
cawthron
parents:
diff changeset
  1741
	<xsd:annotation>
cawthron
parents:
diff changeset
  1742
		<xsd:documentation>
cawthron
parents:
diff changeset
  1743
Type mappings are used to store mappings along with a type.  Added post 1.2		
cawthron
parents:
diff changeset
  1744
		</xsd:documentation>
cawthron
parents:
diff changeset
  1745
	</xsd:annotation>
cawthron
parents:
diff changeset
  1746
cawthron
parents:
diff changeset
  1747
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  1748
	<xsd:element name="mapFixedType" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1749
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1750
		Map a fixed value.
cawthron
parents:
diff changeset
  1751
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1752
		<xsd:complexType>
cawthron
parents:
diff changeset
  1753
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1754
				<xsd:extension base="mappingFixedType" >
cawthron
parents:
diff changeset
  1755
					&MapTypeIdAttribute;
cawthron
parents:
diff changeset
  1756
				</xsd:extension>
cawthron
parents:
diff changeset
  1757
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1758
		</xsd:complexType>
cawthron
parents:
diff changeset
  1759
	</xsd:element>
cawthron
parents:
diff changeset
  1760
cawthron
parents:
diff changeset
  1761
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  1762
	<xsd:element name="mapSimpleType" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1763
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1764
		Map a simple value.
cawthron
parents:
diff changeset
  1765
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1766
		<xsd:complexType>
cawthron
parents:
diff changeset
  1767
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1768
				<xsd:extension base="mappingSimpleType">
cawthron
parents:
diff changeset
  1769
					&MapTypeIdAttribute;
cawthron
parents:
diff changeset
  1770
				</xsd:extension>
cawthron
parents:
diff changeset
  1771
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1772
		</xsd:complexType>
cawthron
parents:
diff changeset
  1773
	</xsd:element>
cawthron
parents:
diff changeset
  1774
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  1775
	<xsd:element name="mapInstanceType" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1776
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1777
		Map resources for an instance.
cawthron
parents:
diff changeset
  1778
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1779
		<xsd:complexType>
cawthron
parents:
diff changeset
  1780
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1781
				<xsd:extension base="mappingInstanceType">
cawthron
parents:
diff changeset
  1782
					&MapTypeIdAttribute;
cawthron
parents:
diff changeset
  1783
				</xsd:extension>
cawthron
parents:
diff changeset
  1784
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1785
		</xsd:complexType>
cawthron
parents:
diff changeset
  1786
	</xsd:element>
cawthron
parents:
diff changeset
  1787
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  1788
	<xsd:element name="mapReferenceType" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1789
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1790
		Map a reference property to resources the instance generates.
cawthron
parents:
diff changeset
  1791
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1792
		<xsd:complexType>
cawthron
parents:
diff changeset
  1793
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1794
				<xsd:extension base="mappingReferenceType">
cawthron
parents:
diff changeset
  1795
					&MapTypeIdAttribute;
cawthron
parents:
diff changeset
  1796
				</xsd:extension>
cawthron
parents:
diff changeset
  1797
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1798
		</xsd:complexType>
cawthron
parents:
diff changeset
  1799
	</xsd:element>
cawthron
parents:
diff changeset
  1800
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  1801
	<xsd:element name="mapEnumType" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1802
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1803
		Map an enumerator to RSS.
cawthron
parents:
diff changeset
  1804
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1805
		<xsd:complexType>
cawthron
parents:
diff changeset
  1806
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1807
				<xsd:extension base="mappingEnumType">
cawthron
parents:
diff changeset
  1808
					&MapTypeIdAttribute;
cawthron
parents:
diff changeset
  1809
				</xsd:extension>
cawthron
parents:
diff changeset
  1810
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1811
		</xsd:complexType>
cawthron
parents:
diff changeset
  1812
	</xsd:element>
cawthron
parents:
diff changeset
  1813
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  1814
	<xsd:element name="mapIdentifierType" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1815
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1816
		Map a simple property to a literal (identifier) in RSS.
cawthron
parents:
diff changeset
  1817
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1818
		<xsd:complexType>
cawthron
parents:
diff changeset
  1819
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1820
				<xsd:extension base="mappingIdentifierType">
cawthron
parents:
diff changeset
  1821
					&MapTypeIdAttribute;
cawthron
parents:
diff changeset
  1822
				</xsd:extension>
cawthron
parents:
diff changeset
  1823
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1824
		</xsd:complexType>
cawthron
parents:
diff changeset
  1825
	</xsd:element>
cawthron
parents:
diff changeset
  1826
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  1827
	<xsd:element name="mapResourceType" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1828
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1829
		Map a property to a RESOURCE expression or statement.
cawthron
parents:
diff changeset
  1830
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1831
		<xsd:complexType>
cawthron
parents:
diff changeset
  1832
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1833
				<xsd:extension base="mappingResourceType">
cawthron
parents:
diff changeset
  1834
					&MapTypeIdAttribute;
cawthron
parents:
diff changeset
  1835
				</xsd:extension>
cawthron
parents:
diff changeset
  1836
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1837
		</xsd:complexType>
cawthron
parents:
diff changeset
  1838
	</xsd:element>
cawthron
parents:
diff changeset
  1839
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  1840
	<xsd:element name="mapArrayType" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1841
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1842
		Map a property or child list to an array in RSS.
cawthron
parents:
diff changeset
  1843
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1844
		<xsd:complexType>
cawthron
parents:
diff changeset
  1845
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1846
				<xsd:extension base="mappingArrayType">
cawthron
parents:
diff changeset
  1847
					&MapTypeIdAttribute;
cawthron
parents:
diff changeset
  1848
				</xsd:extension>
cawthron
parents:
diff changeset
  1849
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1850
		</xsd:complexType>
cawthron
parents:
diff changeset
  1851
	</xsd:element>
cawthron
parents:
diff changeset
  1852
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  1853
	<xsd:element name="mapBitmaskType" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1854
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1855
		Map a set of boolean properties to a bitmask expression in RSS.
cawthron
parents:
diff changeset
  1856
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1857
		<xsd:complexType>
cawthron
parents:
diff changeset
  1858
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1859
				<xsd:extension base="mappingBitmaskType">
cawthron
parents:
diff changeset
  1860
					&MapTypeIdAttribute;
cawthron
parents:
diff changeset
  1861
				</xsd:extension>
cawthron
parents:
diff changeset
  1862
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1863
		</xsd:complexType>
cawthron
parents:
diff changeset
  1864
	</xsd:element>
cawthron
parents:
diff changeset
  1865
	<xsd:annotation>
cawthron
parents:
diff changeset
  1866
		<xsd:documentation>
cawthron
parents:
diff changeset
  1867
Member mappings are used to map a property to a member of a resource.		
cawthron
parents:
diff changeset
  1868
		</xsd:documentation>
cawthron
parents:
diff changeset
  1869
	</xsd:annotation>
cawthron
parents:
diff changeset
  1870
cawthron
parents:
diff changeset
  1871
	<xsd:element name="mapFixedMember" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1872
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1873
		Map a fixed value to an RSS member.
cawthron
parents:
diff changeset
  1874
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1875
		<xsd:complexType>
cawthron
parents:
diff changeset
  1876
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1877
				<xsd:extension base="mappingFixedType">
cawthron
parents:
diff changeset
  1878
					&MapMemberAttributes;				
cawthron
parents:
diff changeset
  1879
				</xsd:extension>
cawthron
parents:
diff changeset
  1880
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1881
		</xsd:complexType>
cawthron
parents:
diff changeset
  1882
	</xsd:element>
cawthron
parents:
diff changeset
  1883
cawthron
parents:
diff changeset
  1884
	<xsd:element name="mapSimpleMember" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1885
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1886
		Map a simple value to a member.
cawthron
parents:
diff changeset
  1887
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1888
		<xsd:complexType>
cawthron
parents:
diff changeset
  1889
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1890
				<xsd:extension base="mappingSimpleType">
cawthron
parents:
diff changeset
  1891
					&MapPropertyAttribute;
cawthron
parents:
diff changeset
  1892
					&MapMemberAttributes;
cawthron
parents:
diff changeset
  1893
						
cawthron
parents:
diff changeset
  1894
				</xsd:extension>
cawthron
parents:
diff changeset
  1895
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1896
		</xsd:complexType>
cawthron
parents:
diff changeset
  1897
	</xsd:element>
cawthron
parents:
diff changeset
  1898
	<xsd:element name="mapInstanceMember" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1899
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1900
		Map resources for an instance.
cawthron
parents:
diff changeset
  1901
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1902
		<xsd:complexType>
cawthron
parents:
diff changeset
  1903
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1904
				<xsd:extension base="mappingInstanceType">
cawthron
parents:
diff changeset
  1905
					&MapPropertyAttribute;
cawthron
parents:
diff changeset
  1906
					&MapMemberAttributes;
cawthron
parents:
diff changeset
  1907
				</xsd:extension>
cawthron
parents:
diff changeset
  1908
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1909
		</xsd:complexType>
cawthron
parents:
diff changeset
  1910
	</xsd:element>
cawthron
parents:
diff changeset
  1911
	<xsd:element name="mapReferenceMember" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1912
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1913
		Map a reference property to resources the instance generates.
cawthron
parents:
diff changeset
  1914
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1915
		<xsd:complexType>
cawthron
parents:
diff changeset
  1916
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1917
				<xsd:extension base="mappingReferenceType">
cawthron
parents:
diff changeset
  1918
					&MapPropertyAttribute;
cawthron
parents:
diff changeset
  1919
					&MapMemberAttributes;
cawthron
parents:
diff changeset
  1920
				</xsd:extension>
cawthron
parents:
diff changeset
  1921
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1922
		</xsd:complexType>
cawthron
parents:
diff changeset
  1923
	</xsd:element>
cawthron
parents:
diff changeset
  1924
	<xsd:element name="mapEnumMember" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1925
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1926
		Map an enumerator to RSS.
cawthron
parents:
diff changeset
  1927
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1928
		<xsd:complexType>
cawthron
parents:
diff changeset
  1929
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1930
				<xsd:extension base="mappingEnumType">
cawthron
parents:
diff changeset
  1931
					&MapPropertyAttribute;
cawthron
parents:
diff changeset
  1932
					&MapMemberAttributes;
cawthron
parents:
diff changeset
  1933
				</xsd:extension>
cawthron
parents:
diff changeset
  1934
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1935
		</xsd:complexType>
cawthron
parents:
diff changeset
  1936
	</xsd:element>
cawthron
parents:
diff changeset
  1937
	<xsd:element name="mapIdentifierMember" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1938
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1939
		Map a simple property to a literal (identifier) in RSS.
cawthron
parents:
diff changeset
  1940
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1941
		<xsd:complexType>
cawthron
parents:
diff changeset
  1942
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1943
				<xsd:extension base="mappingIdentifierType">
cawthron
parents:
diff changeset
  1944
					&MapPropertyAttribute;
cawthron
parents:
diff changeset
  1945
					&MapMemberAttributes;
cawthron
parents:
diff changeset
  1946
				</xsd:extension>
cawthron
parents:
diff changeset
  1947
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1948
		</xsd:complexType>
cawthron
parents:
diff changeset
  1949
	</xsd:element>
cawthron
parents:
diff changeset
  1950
	<xsd:element name="mapResourceMember" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1951
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1952
		Map a property to a RESOURCE expression or statement.
cawthron
parents:
diff changeset
  1953
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1954
		<xsd:complexType>
cawthron
parents:
diff changeset
  1955
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1956
				<xsd:extension base="mappingResourceType">
cawthron
parents:
diff changeset
  1957
					&MapPropertyAttribute;
cawthron
parents:
diff changeset
  1958
					&MapMemberAttributes;
cawthron
parents:
diff changeset
  1959
				</xsd:extension>
cawthron
parents:
diff changeset
  1960
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1961
		</xsd:complexType>
cawthron
parents:
diff changeset
  1962
	</xsd:element>
cawthron
parents:
diff changeset
  1963
	<xsd:element name="mapArrayMember" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1964
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1965
		Map a property or child list to an array in RSS.
cawthron
parents:
diff changeset
  1966
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1967
		<xsd:complexType>
cawthron
parents:
diff changeset
  1968
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1969
				<xsd:extension base="mappingArrayType">
cawthron
parents:
diff changeset
  1970
					&MapPropertyAttribute;
cawthron
parents:
diff changeset
  1971
					&MapMemberAttributes;
cawthron
parents:
diff changeset
  1972
				</xsd:extension>
cawthron
parents:
diff changeset
  1973
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1974
		</xsd:complexType>
cawthron
parents:
diff changeset
  1975
	</xsd:element>
cawthron
parents:
diff changeset
  1976
	<xsd:element name="mapBitmaskMember" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1977
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1978
		Map a set of boolean properties to a bitmask expression in RSS.
cawthron
parents:
diff changeset
  1979
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1980
		<xsd:complexType>
cawthron
parents:
diff changeset
  1981
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1982
				<xsd:extension base="mappingBitmaskType">
cawthron
parents:
diff changeset
  1983
					&MapPropertyAttribute;
cawthron
parents:
diff changeset
  1984
					&MapMemberAttributes;
cawthron
parents:
diff changeset
  1985
				</xsd:extension>
cawthron
parents:
diff changeset
  1986
			</xsd:complexContent>
cawthron
parents:
diff changeset
  1987
		</xsd:complexType>
cawthron
parents:
diff changeset
  1988
	</xsd:element>
cawthron
parents:
diff changeset
  1989
	
cawthron
parents:
diff changeset
  1990
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  1991
	<xsd:element name="mapMemberFromType" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  1992
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  1993
		Map RSS from the type declaration attached to the given property.
cawthron
parents:
diff changeset
  1994
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  1995
		<xsd:complexType>
cawthron
parents:
diff changeset
  1996
			<xsd:complexContent>
cawthron
parents:
diff changeset
  1997
				<xsd:extension base="twoWayMappingType">
cawthron
parents:
diff changeset
  1998
					&MapPropertyAttribute;
cawthron
parents:
diff changeset
  1999
					&MapMemberAttributes;
cawthron
parents:
diff changeset
  2000
					
cawthron
parents:
diff changeset
  2001
					<xsd:attribute name="typeId" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  2002
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2003
					This attribute tells which of a set of type mappings to use
cawthron
parents:
diff changeset
  2004
					from the given type (as named in the id="..." attributes on
cawthron
parents:
diff changeset
  2005
					the mapXXXType children of sourceTypeMapping).   
cawthron
parents:
diff changeset
  2006
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2007
					</xsd:attribute>
cawthron
parents:
diff changeset
  2008
					
cawthron
parents:
diff changeset
  2009
				</xsd:extension>
cawthron
parents:
diff changeset
  2010
			</xsd:complexContent>
cawthron
parents:
diff changeset
  2011
		</xsd:complexType>
cawthron
parents:
diff changeset
  2012
	</xsd:element>
cawthron
parents:
diff changeset
  2013
	
cawthron
parents:
diff changeset
  2014
	
cawthron
parents:
diff changeset
  2015
	
cawthron
parents:
diff changeset
  2016
	<!-- Array element mappings -->
cawthron
parents:
diff changeset
  2017
	<xsd:element name="mapSimpleElement" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  2018
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2019
		Map a simple value to an array element.
cawthron
parents:
diff changeset
  2020
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2021
		<xsd:complexType>
cawthron
parents:
diff changeset
  2022
			<xsd:complexContent>
cawthron
parents:
diff changeset
  2023
				<xsd:extension base="mappingSimpleType">
cawthron
parents:
diff changeset
  2024
				</xsd:extension>
cawthron
parents:
diff changeset
  2025
			</xsd:complexContent>
cawthron
parents:
diff changeset
  2026
		</xsd:complexType>
cawthron
parents:
diff changeset
  2027
	</xsd:element>
cawthron
parents:
diff changeset
  2028
	<xsd:element name="mapFixedElement" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  2029
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2030
		Map a fixed value to an array element.
cawthron
parents:
diff changeset
  2031
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2032
		<xsd:complexType>
cawthron
parents:
diff changeset
  2033
			<xsd:complexContent>
cawthron
parents:
diff changeset
  2034
				<xsd:extension base="mappingFixedType">
cawthron
parents:
diff changeset
  2035
				</xsd:extension>
cawthron
parents:
diff changeset
  2036
			</xsd:complexContent>
cawthron
parents:
diff changeset
  2037
		</xsd:complexType>
cawthron
parents:
diff changeset
  2038
	</xsd:element>
cawthron
parents:
diff changeset
  2039
	<xsd:element name="mapInstanceElement" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  2040
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2041
		Map an instance's resources to an array element.
cawthron
parents:
diff changeset
  2042
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2043
		<xsd:complexType>
cawthron
parents:
diff changeset
  2044
			<xsd:complexContent>
cawthron
parents:
diff changeset
  2045
				<xsd:extension base="mappingInstanceType"/>
cawthron
parents:
diff changeset
  2046
			</xsd:complexContent>
cawthron
parents:
diff changeset
  2047
		</xsd:complexType>
cawthron
parents:
diff changeset
  2048
	</xsd:element>
cawthron
parents:
diff changeset
  2049
	<xsd:element name="mapReferenceElement" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  2050
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2051
		Map a reference property to an array element.
cawthron
parents:
diff changeset
  2052
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2053
		<xsd:complexType>
cawthron
parents:
diff changeset
  2054
			<xsd:complexContent>
cawthron
parents:
diff changeset
  2055
				<xsd:extension base="mappingReferenceType"/>
cawthron
parents:
diff changeset
  2056
			</xsd:complexContent>
cawthron
parents:
diff changeset
  2057
		</xsd:complexType>
cawthron
parents:
diff changeset
  2058
	</xsd:element>
cawthron
parents:
diff changeset
  2059
	<xsd:element name="mapEnumElement" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  2060
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2061
		Map an enumerator to an array element.
cawthron
parents:
diff changeset
  2062
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2063
		<xsd:complexType>
cawthron
parents:
diff changeset
  2064
			<xsd:complexContent>
cawthron
parents:
diff changeset
  2065
				<xsd:extension base="mappingEnumType"/>
cawthron
parents:
diff changeset
  2066
			</xsd:complexContent>
cawthron
parents:
diff changeset
  2067
		</xsd:complexType>
cawthron
parents:
diff changeset
  2068
	</xsd:element>
cawthron
parents:
diff changeset
  2069
	<xsd:element name="mapIdentifierElement" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  2070
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2071
		Map a simple value to a literal (identifier) in an array element.
cawthron
parents:
diff changeset
  2072
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2073
		<xsd:complexType>
cawthron
parents:
diff changeset
  2074
			<xsd:complexContent>
cawthron
parents:
diff changeset
  2075
				<xsd:extension base="mappingIdentifierType"/>
cawthron
parents:
diff changeset
  2076
			</xsd:complexContent>
cawthron
parents:
diff changeset
  2077
		</xsd:complexType>
cawthron
parents:
diff changeset
  2078
	</xsd:element>
cawthron
parents:
diff changeset
  2079
	<xsd:element name="mapResourceElement" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  2080
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2081
		Map a compound property or instance to resources in an array element.
cawthron
parents:
diff changeset
  2082
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2083
		<xsd:complexType>
cawthron
parents:
diff changeset
  2084
			<xsd:complexContent>
cawthron
parents:
diff changeset
  2085
				<xsd:extension base="mappingResourceType">
cawthron
parents:
diff changeset
  2086
				
cawthron
parents:
diff changeset
  2087
					<xsd:attribute name="instanceIdentifyingMember" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  2088
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2089
					This attribute provides a means to distinguish resource
cawthron
parents:
diff changeset
  2090
					elements that come from different instances.  
cawthron
parents:
diff changeset
  2091
					
cawthron
parents:
diff changeset
  2092
					It tells which resource member to use as a key, so that the 
cawthron
parents:
diff changeset
  2093
					array mapper can match up elements to instances when importing,
cawthron
parents:
diff changeset
  2094
					to allow unknown items to be inserted (or for known items to 
cawthron
parents:
diff changeset
  2095
					be reordered, ideally).
cawthron
parents:
diff changeset
  2096
					
cawthron
parents:
diff changeset
  2097
					If not set, the array is assumed to contain entries whose
cawthron
parents:
diff changeset
  2098
					positions uniquely identify them (as is the case with
cawthron
parents:
diff changeset
  2099
					arrays of integers, references, etc.).
cawthron
parents:
diff changeset
  2100
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2101
					</xsd:attribute>
cawthron
parents:
diff changeset
  2102
				</xsd:extension>
cawthron
parents:
diff changeset
  2103
			</xsd:complexContent>
cawthron
parents:
diff changeset
  2104
		</xsd:complexType>
cawthron
parents:
diff changeset
  2105
	</xsd:element>
cawthron
parents:
diff changeset
  2106
	<xsd:element name="mapBitmaskElement" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  2107
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2108
		Map a set of boolean properties to an expression in an array element.
cawthron
parents:
diff changeset
  2109
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2110
		<xsd:complexType>
cawthron
parents:
diff changeset
  2111
			<xsd:complexContent>
cawthron
parents:
diff changeset
  2112
				<xsd:extension base="mappingBitmaskType"/>
cawthron
parents:
diff changeset
  2113
			</xsd:complexContent>
cawthron
parents:
diff changeset
  2114
		</xsd:complexType>
cawthron
parents:
diff changeset
  2115
	</xsd:element>
cawthron
parents:
diff changeset
  2116
	<!-- no mapArrayElement: no sub-arrays! -->
cawthron
parents:
diff changeset
  2117
	
cawthron
parents:
diff changeset
  2118
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  2119
	<xsd:element name="mapElementFromType" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  2120
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2121
		Map RSS from the type declaration attached to the current element.
cawthron
parents:
diff changeset
  2122
		You may need to use &lt;mapProperty&gt; to descend into a child of the current
cawthron
parents:
diff changeset
  2123
		element for this to work.
cawthron
parents:
diff changeset
  2124
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  2125
		<xsd:complexType>
cawthron
parents:
diff changeset
  2126
			<xsd:complexContent>
cawthron
parents:
diff changeset
  2127
				<xsd:extension base="twoWayMappingType">
cawthron
parents:
diff changeset
  2128
					<xsd:attribute name="typeId" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  2129
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2130
					This attribute tells which of a set of type mappings to use
cawthron
parents:
diff changeset
  2131
					from the given type (as named in the id="..." attributes on
cawthron
parents:
diff changeset
  2132
					the mapXXXType children of sourceTypeMapping).   
cawthron
parents:
diff changeset
  2133
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2134
					</xsd:attribute>
cawthron
parents:
diff changeset
  2135
					
cawthron
parents:
diff changeset
  2136
				</xsd:extension>
cawthron
parents:
diff changeset
  2137
			</xsd:complexContent>
cawthron
parents:
diff changeset
  2138
		</xsd:complexType>
cawthron
parents:
diff changeset
  2139
			
cawthron
parents:
diff changeset
  2140
	</xsd:element>
cawthron
parents:
diff changeset
  2141
cawthron
parents:
diff changeset
  2142
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  2143
	<xsd:element name="mapIntoProperty" substitutionGroup="twoWayMapping">
cawthron
parents:
diff changeset
  2144
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2145
		Delve into a property path without generating any resources.
cawthron
parents:
diff changeset
  2146
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2147
		<xsd:complexType>
cawthron
parents:
diff changeset
  2148
			<xsd:complexContent>
cawthron
parents:
diff changeset
  2149
				<xsd:extension base="twoWayMappingType">
cawthron
parents:
diff changeset
  2150
					<xsd:sequence>
cawthron
parents:
diff changeset
  2151
						<xsd:element ref="twoWayMapping"/>
cawthron
parents:
diff changeset
  2152
					</xsd:sequence>
cawthron
parents:
diff changeset
  2153
					&MapPropertyAttribute;
cawthron
parents:
diff changeset
  2154
				</xsd:extension>
cawthron
parents:
diff changeset
  2155
				
cawthron
parents:
diff changeset
  2156
			</xsd:complexContent>
cawthron
parents:
diff changeset
  2157
		</xsd:complexType>
cawthron
parents:
diff changeset
  2158
	</xsd:element>
cawthron
parents:
diff changeset
  2159
	
cawthron
parents:
diff changeset
  2160
	<xsd:element name="sourceMapping">
cawthron
parents:
diff changeset
  2161
		<xsd:annotation>
cawthron
parents:
diff changeset
  2162
			<xsd:documentation>
cawthron
parents:
diff changeset
  2163
The sourceMapping element defines a particular style of source generation
cawthron
parents:
diff changeset
  2164
which consists of automatic generation of source by structurally
cawthron
parents:
diff changeset
  2165
mapping a component instance to a source definition.  
cawthron
parents:
diff changeset
  2166
			</xsd:documentation>
cawthron
parents:
diff changeset
  2167
		</xsd:annotation>
cawthron
parents:
diff changeset
  2168
		<xsd:complexType>
cawthron
parents:
diff changeset
  2169
			<xsd:sequence>
cawthron
parents:
diff changeset
  2170
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
cawthron
parents:
diff changeset
  2171
					<xsd:element ref="mapResource"/>
cawthron
parents:
diff changeset
  2172
					<xsd:element ref="select"/>
cawthron
parents:
diff changeset
  2173
				</xsd:choice>
cawthron
parents:
diff changeset
  2174
			</xsd:sequence>
cawthron
parents:
diff changeset
  2175
		</xsd:complexType>
cawthron
parents:
diff changeset
  2176
	</xsd:element>
cawthron
parents:
diff changeset
  2177
	
cawthron
parents:
diff changeset
  2178
	<xsd:simpleType name="standaloneType">
cawthron
parents:
diff changeset
  2179
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2180
		The selector for controlling standalone resource mapping.
cawthron
parents:
diff changeset
  2181
		</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  2182
		<xsd:restriction base="xsd:string">
cawthron
parents:
diff changeset
  2183
			<xsd:enumeration value="false">
cawthron
parents:
diff changeset
  2184
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2185
				Deprecated value corresponding to "default".
cawthron
parents:
diff changeset
  2186
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  2187
			</xsd:enumeration>
cawthron
parents:
diff changeset
  2188
			<xsd:enumeration value="true">
cawthron
parents:
diff changeset
  2189
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2190
				Depecated value corresponding to "always".
cawthron
parents:
diff changeset
  2191
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  2192
			</xsd:enumeration>
cawthron
parents:
diff changeset
  2193
			<xsd:enumeration value="never">
cawthron
parents:
diff changeset
  2194
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2195
				Never emit the resource by itself.  Only emit it if another resource
cawthron
parents:
diff changeset
  2196
				references it.  By using this, a component may generate two forms of
cawthron
parents:
diff changeset
  2197
				resource (with different resource ids) and let a container or reference
cawthron
parents:
diff changeset
  2198
				select which resource it wants, without also generating the unused variant.
cawthron
parents:
diff changeset
  2199
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  2200
			</xsd:enumeration>
cawthron
parents:
diff changeset
  2201
			<xsd:enumeration value="default">
cawthron
parents:
diff changeset
  2202
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2203
				Emit the resource by itself if it is not generated as an expression or
cawthron
parents:
diff changeset
  2204
				by a LINK or LLINK.
cawthron
parents:
diff changeset
  2205
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  2206
			</xsd:enumeration>
cawthron
parents:
diff changeset
  2207
			<xsd:enumeration value="always">
cawthron
parents:
diff changeset
  2208
				<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2209
				Always emit the resource by itself, even if already generated as an expression.
cawthron
parents:
diff changeset
  2210
				</xsd:documentation></xsd:annotation>
cawthron
parents:
diff changeset
  2211
			</xsd:enumeration>
cawthron
parents:
diff changeset
  2212
		</xsd:restriction>
cawthron
parents:
diff changeset
  2213
	</xsd:simpleType>
cawthron
parents:
diff changeset
  2214
	
cawthron
parents:
diff changeset
  2215
	<xsd:element name="mapResource">
cawthron
parents:
diff changeset
  2216
		<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2217
		Map an instance to a RESOURCE.
cawthron
parents:
diff changeset
  2218
		</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2219
		<xsd:complexType>
cawthron
parents:
diff changeset
  2220
			<xsd:complexContent>
cawthron
parents:
diff changeset
  2221
				<xsd:extension base="mappingResourceType">
cawthron
parents:
diff changeset
  2222
					<xsd:attribute default="false" name="unnamed" type="xsd:boolean" use="optional">
cawthron
parents:
diff changeset
  2223
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2224
						This tells whether to emit the resource without a name
cawthron
parents:
diff changeset
  2225
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2226
					</xsd:attribute>
cawthron
parents:
diff changeset
  2227
					<xsd:attribute default="default" name="standalone" type="standaloneType" use="optional">
cawthron
parents:
diff changeset
  2228
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2229
						This tells whether the resource must be emitted as a standalone resource statement (always),
cawthron
parents:
diff changeset
  2230
						regardless of whether it is also generated as a resource expression, or whether it
cawthron
parents:
diff changeset
  2231
						will never be emitted unless referenced by another resource (never).  The default behavior
cawthron
parents:
diff changeset
  2232
						is to emit it if not generated as an expression.
cawthron
parents:
diff changeset
  2233
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2234
					</xsd:attribute>
cawthron
parents:
diff changeset
  2235
					<xsd:attribute name="baseName" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  2236
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2237
						Force the base name of the resource.  If unspecified, resources are
cawthron
parents:
diff changeset
  2238
						named after the instance and member or element being mapped.
cawthron
parents:
diff changeset
  2239
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2240
					</xsd:attribute>
cawthron
parents:
diff changeset
  2241
					<xsd:attribute name="rssFile" type="xsd:string" use="optional">
cawthron
parents:
diff changeset
  2242
						<xsd:annotation><xsd:documentation>
cawthron
parents:
diff changeset
  2243
						Force the RSS filename (but not directory).  This is used to redirect
cawthron
parents:
diff changeset
  2244
						resources to a top-level RSS file.
cawthron
parents:
diff changeset
  2245
						</xsd:documentation></xsd:annotation>	
cawthron
parents:
diff changeset
  2246
					</xsd:attribute>
cawthron
parents:
diff changeset
  2247
				</xsd:extension>
cawthron
parents:
diff changeset
  2248
			</xsd:complexContent>
cawthron
parents:
diff changeset
  2249
		</xsd:complexType>
cawthron
parents:
diff changeset
  2250
	</xsd:element>
cawthron
parents:
diff changeset
  2251
cawthron
parents:
diff changeset
  2252
	<!-- added post 1.2 -->
cawthron
parents:
diff changeset
  2253
	<xsd:element name="sourceTypeMapping">
cawthron
parents:
diff changeset
  2254
		<xsd:annotation>
cawthron
parents:
diff changeset
  2255
			<xsd:documentation>
cawthron
parents:
diff changeset
  2256
The sourceTypeMapping element mirrors sourceMapping but provides stored source
cawthron
parents:
diff changeset
  2257
mapping data for use by compound or enum types.  
cawthron
parents:
diff changeset
  2258
			</xsd:documentation>
cawthron
parents:
diff changeset
  2259
		</xsd:annotation>
cawthron
parents:
diff changeset
  2260
		<xsd:complexType>
cawthron
parents:
diff changeset
  2261
			<xsd:sequence>
cawthron
parents:
diff changeset
  2262
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
cawthron
parents:
diff changeset
  2263
					<xsd:element ref="mapResourceType"/>
cawthron
parents:
diff changeset
  2264
					<xsd:element ref="mapEnumType"/>
cawthron
parents:
diff changeset
  2265
					<xsd:element ref="mapSimpleType"/>
cawthron
parents:
diff changeset
  2266
					<xsd:element ref="mapFixedType"/>
cawthron
parents:
diff changeset
  2267
					<xsd:element ref="mapBitmaskType"/>
cawthron
parents:
diff changeset
  2268
					<xsd:element ref="mapIdentifierType"/>
cawthron
parents:
diff changeset
  2269
					<xsd:element ref="mapReferenceType"/>
cawthron
parents:
diff changeset
  2270
					<xsd:element ref="mapArrayType"/>
cawthron
parents:
diff changeset
  2271
					<xsd:element ref="select"/>
cawthron
parents:
diff changeset
  2272
				</xsd:choice>
cawthron
parents:
diff changeset
  2273
			</xsd:sequence>
cawthron
parents:
diff changeset
  2274
		</xsd:complexType>
cawthron
parents:
diff changeset
  2275
	</xsd:element>
cawthron
parents:
diff changeset
  2276
	
cawthron
parents:
diff changeset
  2277
</xsd:schema>