<?xml version="1.0" encoding="UTF-8"?>+ −
<!-- Copyright (C) 2006 Nokia Corporation. All rights reserved. -->+ −
+ −
<!-- Entities for parts of the definitions we're forced to repeat due to+ −
the lack of multiple inheritance in EMF -->+ −
<!DOCTYPE xsd:schema [+ −
<!ENTITY MapMemberAttributes '+ −
<xsd:attribute name="member" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
The struct member.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
<xsd:attribute default="true" name="suppressDefault" type="xsd:boolean" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
If true, do not emit the member initializer if the property matches the default+ −
specified in the STRUCT. If may be useful to set this to false if the+ −
default changes between SDK releases (to avoid branching components).+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
'+ −
>+ −
+ −
<!ENTITY MapPropertyAttribute '+ −
<xsd:attribute name="property" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
The property path providing the value.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
'+ −
>+ −
+ −
<!ENTITY MapTypeIdAttribute '+ −
<xsd:attribute name="typeId" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Identifies the id for this particular kind of type mapping.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
'+ −
>+ −
]>+ −
+ −
<xsd:schema xmlns="http://www.nokia.com/sdt/emf/component" + −
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" + −
xmlns:xsd="http://www.w3.org/2001/XMLSchema" + −
elementFormDefault="qualified" + −
targetNamespace="http://www.nokia.com/sdt/emf/component">+ −
+ −
<xsd:element name="componentDefinition">+ −
<xsd:annotation>+ −
<xsd:documentation>componentDefinition must be the root element of a component definition document.+ −
+ −
It includes zero or more compound property declarations, zero or more enum declarations and zero or one+ −
component declarations.+ −
+ −
Displayable strings can either be included literally within the XML or referenced in the + −
component.properties file by prefixing the string with %. For example, "%foo" references the + −
value of the "foo" property in component.properties. To obtain the string "%foo" + −
use a double %, e.g. "%%foo".+ −
</xsd:documentation>+ −
</xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="compoundPropertyDeclaration"/>+ −
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="enumPropertyDeclaration"/>+ −
<xsd:element minOccurs="0" ref="component"/>+ −
</xsd:sequence>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="component">+ −
<xsd:annotation><xsd:documentation>+ −
This is the container element for all the information about a single component.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element minOccurs="0" ref="documentation"/>+ −
<xsd:element minOccurs="0" ref="symbian"/>+ −
<xsd:element minOccurs="0" ref="designerImages"/>+ −
<xsd:element minOccurs="0" ref="attributes"/>+ −
<xsd:element minOccurs="0" ref="properties"/>+ −
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="extensionProperties"/>+ −
<xsd:element minOccurs="0" ref="propertyOverrides"/>+ −
<xsd:element minOccurs="0" ref="events"/>+ −
<xsd:element minOccurs="0" ref="sourceGen"/>+ −
<xsd:element minOccurs="0" ref="sourceMapping"/>+ −
<xsd:element minOccurs="0" ref="implementations"/>+ −
</xsd:sequence>+ −
<xsd:attribute name="qualifiedName" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>A globally unique name for a component. By convention these use dotted names, such as+ −
com.example.MyComponent. Different versions of a component, in different files, can share the same qualified name. These values+ −
should not be localized.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="friendlyName" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>A short name displayed in the user interface. These values should be localized.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="instanceNameRoot" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>The root part of the name used in assigned unique names to component instances. For example,+ −
if the root is "label" then names will be assigned in sequence "label1", "label2", and so forth. These values should not be localized.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="version" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>Identifies the version of the component specified by this document. Uses OSGI style version strings, composed+ −
of up to 3 integers and a text qualifier, of the form <major version>.<minor version>.<micro version>.<qualifier>.+ −
See http://help.eclipse.org/help31/topic/org.eclipse.platform.doc.isv/reference/osgi/org/osgi/framework/Version.html for further information.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="baseComponent" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>The fully qualifed name of the base component. The version of the base component+ −
cannot be specified, it will be whichever is selected via SDK matching.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="category" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>Specifies the grouping for the editor's component palette. If this string 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+ −
potentially localized string, i.e. if it is %-prefixed a string is looked up in the properties file.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="abstract" type="xsd:boolean">+ −
<xsd:annotation><xsd:documentation>Specify true to define a component intended to be used as a basis for deriving other components.+ −
Abstract components are filtered out of the component palette.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="documentation">+ −
<xsd:annotation>+ −
<xsd:documentation>The optional documentation element provides brief description information about the component and a link to more detailed documentation+ −
</xsd:documentation>+ −
</xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element name="information" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>Brief description of the component, shown in a tooltip. This value should be localized.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:element>+ −
<xsd:element name="helpTopic" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>A link to help information for this component.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:element>+ −
<xsd:element name="wizardDescription" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>Text displayed in the UI design wizard. Applies only to containers and top-level content. This+ −
value should be localized.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:element>+ −
</xsd:sequence>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="symbian">+ −
<xsd:annotation>+ −
<xsd:documentation>The optional Symbian element provides SDK compatibility information and information about the related + −
C++ classes and resource structures. When this element is omitted the component will be considered incompatible+ −
with all Symbian SDKs.+ −
</xsd:documentation>+ −
</xsd:annotation> + −
<xsd:complexType>+ −
<xsd:attribute name="sdkName" use="required">+ −
<xsd:annotation><xsd:documentation>This value identifies the Symbian OS variant with which the component is compatible.+ −
Currently the only supported value is "com.nokia.serie60".+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="minSDKVersion" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>A version number indicating the lowest SDK version with which the component is+ −
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.+ −
Uses OSGI style version strings, composed of up to 3 integers and a text qualifier, of the form <major version>.<minor version>.<micro version>.<qualifier>.+ −
See http://help.eclipse.org/help31/topic/org.eclipse.platform.doc.isv/reference/osgi/org/osgi/framework/Version.html for further information.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="maxSDKVersion" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>A version number indicating the maximum SDK version with which the component is+ −
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.+ −
Uses OSGI style version strings, composed of up to 3 integers and a text qualifier, of the form <major version>.<minor version>.<micro version>.<qualifier>.+ −
See http://help.eclipse.org/help31/topic/org.eclipse.platform.doc.isv/reference/osgi/org/osgi/framework/Version.html for further information.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="className" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>The C++ class name corresponding to this component, if any. Not used for source code generation,+ −
but is displayed in the component palette.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="classHelpTopic" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>A link to help information for this C++ class+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="resourceType" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>The Symbian RSS resource type for this component, if any+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="resourceHelpTopic" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>A link to help information for the resource+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="designerImages">+ −
<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.+ −
if a component never appears in the UI design wizard or palette then it doesn't need those images.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:attribute name="smallIconFile" type="xsd:string">+ −
<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.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<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.+ −
<xsd:annotation><xsd:documentation>+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<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.+ −
<xsd:annotation><xsd:documentation>+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="thumbnailFile" type="xsd:string">+ −
<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+ −
layout area if the component does not provide rendering code.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="attributes">+ −
<xsd:annotation>+ −
<xsd:documentation>+ −
Attribute elements can hold any static character data that is common to all instances of a component. Attributes are inherited from their base components.+ −
</xsd:documentation>+ −
</xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element maxOccurs="unbounded" ref="attribute"/>+ −
</xsd:sequence>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="attribute">+ −
<xsd:complexType>+ −
<xsd:simpleContent>+ −
<xsd:extension base="xsd:string">+ −
<xsd:attribute name="key" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:simpleContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="properties">+ −
<xsd:annotation><xsd:documentation>The list of properties defined for this component. Components also inherit the properties of their base+ −
components, and can have properties added dynamically, see extensionProperties.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="abstractProperty"/>+ −
</xsd:sequence>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="extensionProperties">+ −
<xsd:annotation><xsd:documentation>Extension properties may be dynamically added, based on the state of an instance of this+ −
component, its container, or other objects. There may be more than one set of extension properties defined in a component.+ −
See the com.nokia.sdt.datamodel.adapter.IPropertyExtenders interface.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="abstractProperty"/>+ −
</xsd:sequence>+ −
<xsd:attribute name="name" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>The unique name of this extension property set. Used to select properties+ −
to add at runtime.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:simpleType name="propertyDataType">+ −
<xsd:annotation><xsd:documentation>Simple, predefined property types.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:restriction base="xsd:string">+ −
<xsd:enumeration value="void">+ −
<xsd:annotation><xsd:documentation>The empty type. Do not use for real properties.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:enumeration>+ −
<xsd:enumeration value="boolean">+ −
<xsd:annotation><xsd:documentation>+ −
</xsd:documentation></xsd:annotation>True/False values.+ −
</xsd:enumeration>+ −
<xsd:enumeration value="integer">+ −
<xsd:annotation><xsd:documentation>Four byte integer properties. Ranges may be constrained on property declarations.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:enumeration>+ −
<xsd:enumeration value="float">+ −
<xsd:annotation><xsd:documentation>Floating point values. Ranges may be constrained on property declarations.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:enumeration>+ −
<xsd:enumeration value="string">+ −
<xsd:annotation><xsd:documentation>Non-localized string literals+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:enumeration>+ −
<xsd:enumeration value="localizedString">+ −
<xsd:annotation><xsd:documentation>Localized string literals. Users may enter different values for each language.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:enumeration>+ −
<xsd:enumeration value="uniqueName">+ −
<xsd:annotation><xsd:documentation>Unique, non-localized string. Values are forced to be unique across the data model.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:enumeration>+ −
</xsd:restriction>+ −
</xsd:simpleType>+ −
+ −
<xsd:element abstract="true" name="abstractProperty" type="abstractPropertyType"/>+ −
<xsd:element name="property" substitutionGroup="abstractProperty" type="simplePropertyType"/>+ −
<xsd:element name="compoundProperty" substitutionGroup="abstractProperty" type="compoundPropertyType"/>+ −
<xsd:element name="enumProperty" substitutionGroup="abstractProperty" type="enumPropertyType"/>+ −
<xsd:element name="arrayProperty" substitutionGroup="abstractProperty" type="arrayPropertyType"/>+ −
<xsd:element name="componentReferenceProperty" substitutionGroup="abstractProperty" type="componentReferencePropertyType"/>+ −
<xsd:complexType name="abstractPropertyType">+ −
<xsd:annotation><xsd:documentation>A base schema type for further property type declarations. Not used directly in components.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:attribute name="name" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>The internal name for the property. It must be unique within the component and its base+ −
components. Since it may be used as an identifier in scripts it should be a legal JavaScript identifier.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="displayName" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>The property name to be display in the user interface. Can contain spaces and other characters.+ −
This value should be localized.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="category" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>The category grouping to be used in the property sheet. + −
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+ −
potentially localized string, i.e. if it is %-prefixed a string is looked up in the properties file.+ −
The special value of "hidden" will cause the property to be filtered from the property sheet.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute default="false" name="readOnly" type="xsd:boolean">+ −
<xsd:annotation><xsd:documentation>If true the property will be read-only in the property sheet.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute default="true" name="resettable" type="xsd:boolean">+ −
<xsd:annotation><xsd:documentation>If false the reset button will be disabled, inhibiting the user from reverting to the default value+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="descriptionKey" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>A property key to descriptive text for the property to be displayed in the status bar+ −
when the property is selected in the property sheet.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="helpKey" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>A key to more detailed help for the property.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="editorClass" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>The fully qualified name of a class implementing com.nokia.sdt.component.property.IPropertyEditorFactory.+ −
This allows Java code to provide a label provider, cell editor, and validator for the property.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
+ −
<xsd:complexType name="simplePropertyType">+ −
<xsd:annotation><xsd:documentation>Concrete type used for basic properties.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexContent>+ −
<xsd:extension base="abstractPropertyType">+ −
<xsd:attribute name="type" type="propertyDataType" use="required">+ −
<xsd:annotation><xsd:documentation>Selects the data type of the property.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="default" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>A default value for the property. Must be a string convertible to the+ −
particular property type.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="minValue" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>Optional minimum value constraint. Applies only to integers and floats.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="maxValue" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>Optional maximum value constraint. Applies only to integers and floats.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="extendWithEnum" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>Optional extension of the enum with the enums provided by an enimPropertyDeclaration.+ −
If the value of the property matches any in an extension enumProperty's 'value' attribute, the 'displayValue' will be shown+ −
as the current value in the property sheet. Additionally, the editor for the value (if not overridden with+ −
a custom editorClass) will be a combo that allows typing in the literal value or selecting one of + −
the extended enums.+ −
<p>+ −
The 'value' of each of the extending enums must match the type being extended, or else the attempt to set the value+ −
to that enum will fail. Note that this means that it is useless to extend booleans (since all extensions+ −
must map to 'true' or 'false'). + −
</p>+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
+ −
<xsd:complexType name="compoundPropertyType">+ −
<xsd:annotation><xsd:documentation>Concrete type used for structured properties.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexContent>+ −
<xsd:extension base="abstractPropertyType">+ −
<xsd:attribute name="type" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>The fully qualified name of the compound property type declaration. It can be+ −
any type accessible from the current or any other component definitions. See compoundPropertyDeclaration for+ −
further information.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="default" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>An optional default value for the property. The compoundPropertyDeclaration must+ −
have a converterType specified for this default value to be used.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
+ −
<xsd:complexType name="enumPropertyType">+ −
<xsd:annotation><xsd:documentation>Concrete type used for enumerated value properties.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexContent>+ −
<xsd:extension base="abstractPropertyType">+ −
<xsd:attribute name="type" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>The fully qualifed name of the enumerated property type. See+ −
enumPropertyDeclaration.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="default" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>The default enumerated value, in case it needs to be different from + −
the default declared in the enumeratedPropertyDeclaration.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="extendWithEnum" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>Optional extension of the simple values with the enums provided by an enimPropertyDeclaration.+ −
If the value of the property matches any in an enumProperty's 'value' attribute, the 'displayValue' will be shown+ −
as the current value in the property sheet. Additionally, the editor for the value (if not overridden with+ −
a custom editorClass) will be a combo that allows typing in the literal value or selecting one of the+ −
union of base and extended enums.+ −
<p> + −
The extending enum may provide 'value' elements which are different from the base enum (even integers, say),+ −
if appropriate. These values are exposed to script, source mapping, and source gen, so ensure that all+ −
those clients are prepared to deal with the extra values.+ −
</p>+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
+ −
<xsd:simpleType name="referenceScopeType">+ −
<xsd:annotation><xsd:documentation>Enumeration used for scoping references within the model+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:restriction base="xsd:string">+ −
<xsd:enumeration value="model">+ −
<xsd:annotation><xsd:documentation>Property can reference any valid instance in the model+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:enumeration>+ −
<xsd:enumeration value="children">+ −
<xsd:annotation><xsd:documentation>Property can reference any children of the referencing instance+ −
</xsd:documentation></xsd:annotation>True/False values.+ −
</xsd:enumeration>+ −
<xsd:enumeration value="siblings">+ −
<xsd:annotation><xsd:documentation>Property can reference any siblings or children of the referencing instance+ −
</xsd:documentation></xsd:annotation>True/False values.+ −
</xsd:enumeration>+ −
</xsd:restriction>+ −
</xsd:simpleType>+ −
+ −
<xsd:complexType name="componentReferencePropertyType">+ −
<xsd:annotation><xsd:documentation>A concrete property type that maintains a reference to a component+ −
instance in the same model. The reference is kept by name, and is maintained across renames of the target+ −
instance. It is cleared automatically if the target instance is removed.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexContent>+ −
<xsd:extension base="abstractPropertyType">+ −
<xsd:attribute name="scope" type="referenceScopeType" use="required">+ −
<xsd:annotation><xsd:documentation>Enumeration defining the scope for permissable values.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="constraint" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>If specified, this must be the fully qualified name of a component type. Values+ −
are then constrained to be instances of this type, and the property sheet user interface displays a list of eligible+ −
instances.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="creationKeys" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>An optional comma-delimited string containing a list of keys. When+ −
present these keys are used to add "create new xxx" items to the dropdown menu for the property, in addition to+ −
the "None" and existing instances populated into the menu. A component using this feature must also provide+ −
an ISetValueCommandExtender implementation to handle the creation of these items.+ −
Each key is used for two purposes:+ −
- As a resource key for the dropdown menu item. The resource string should be the full command, e.g. "Create new Foo".+ −
- When selected, the key is provided as a parameter to a com.nokia.sdt.component.NewComponentReferenceParameter instance. + −
This instance is then available from the SetValueCommand passed to ISetValueCommandExtender.getExtendedCommand. + −
The implementation should retrieve the key, and return a Command object that will create the appropriate new instance + −
and set the target value to the new instance.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="promoteReferenceProperties" type="xsd:boolean">+ −
<xsd:annotation><xsd:documentation>If specified, the properties of the instance referenced by this property are promoted+ −
into this property source, excluding the 'name' property and other properties that already exist in this component. + −
This property and the referenced component instance's properties will be at the same level.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
+ −
<xsd:complexType name="arrayPropertyType">+ −
<xsd:annotation><xsd:documentation>A concrete property type that is a dynamic array of property values. All values+ −
are of the same type, which can be either a simple or compound property type.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexContent>+ −
<xsd:extension base="abstractPropertyType">+ −
<xsd:attribute name="type" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>The element type. It must be either a propertyDataType value, such as "integer" + −
or "localizedString", or the fully qualified name of a compound property type.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
+ −
<xsd:element name="compoundPropertyDeclaration">+ −
<xsd:annotation><xsd:documentation>+ −
Declares a compound type that may be referenced from one or more+ −
compound property declarations in this or other component documents. All compound property declarations are in a global + −
namespace and must be declared as global elements.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="abstractProperty">+ −
<xsd:annotation><xsd:documentation>Any property type may be used here, i.e. simple, compound, array, reference.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:element>+ −
+ −
<xsd:element maxOccurs="1" minOccurs="0" ref="sourceTypeMapping">+ −
<xsd:annotation><xsd:documentation>+ −
This element provides source mapping for the type, for use by+ −
map*FromType elements. Added post 1.2.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:element>+ −
+ −
</xsd:sequence>+ −
<xsd:attribute name="qualifiedName" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>A globally unique name for the property. By convention this is a dotted name, e.g.+ −
com.example.MyPropertyType. This identifier is used in compound property declarations.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute default="" name="editableType" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>The property type of the editable value. In addition to editing each+ −
child value, the user may be able to edit the property as a whole. For example, an RGB color value may be+ −
editable as a string. This value can be a propertyDataType value such as "integer" or "string", or can be+ −
the name of an enumPropertyDeclaration.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="converterClass" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>If specified, this must be the fully qualified name of an implementation of+ −
com.nokia.sdt.component.property.ICompoundPropertyValueConverter. It is used to convert back and forth between+ −
the editable value and the compound value. The editable value is a single value, display as the parent value in the+ −
property sheet and used with cell editors.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="editorClass" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>The fully qualified name of a class implementing + −
com.nokia.sdt.component.property.IPropertyEditorFactory.+ −
This allows Java code to provide a label provider, cell editor, and validator for the property.+ −
Specify a factory class here provides a default for all compound properties of this type. The factory+ −
may be overriden by a compound property declaration+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="enumPropertyDeclaration">+ −
<xsd:annotation><xsd:documentation>+ −
Declares an enumerated type that may be referenced from one or more+ −
enumerated property declarations in this or other component documents. All enum property declarations are in a global + −
namespace and must be declared as global elements.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element maxOccurs="unbounded" name="enumElement">+ −
<xsd:annotation><xsd:documentation>This sequence is the list of values comprising the enumerated type. Each+ −
value consists of an internal string value and a displayable string value.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:attribute name="value" use="required">+ −
<xsd:annotation><xsd:documentation>The internal value, which is not localizable.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="displayValue" use="optional">+ −
<xsd:annotation><xsd:documentation>The displayable value, which should be localized.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element maxOccurs="1" minOccurs="0" ref="sourceTypeMapping">+ −
<xsd:annotation><xsd:documentation>+ −
This element provides source mapping for the type, for use by+ −
map*FromType elements. Added post 1.2+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:element>+ −
</xsd:sequence>+ −
<xsd:attribute name="qualifiedName" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>The globally unique name for this type. By convention this is a dotted name, e.g. com.example.MyEnumType.+ −
This value is used in enumPropertyDeclaration.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="defaultValue" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>A default internal value for the enumeration. It can be overriden in property declarations.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="propertyOverrides">+ −
<xsd:annotation><xsd:documentation>A list of property overrides defined for this component. Components also+ −
inherit the property overrides of their base components, with changes applied by the most derived component taking+ −
precedence. + −
+ −
Property overrides allow certain characteristics of a property to be modified, such as changing a modifiable property+ −
to read-only.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element name="propertyOverride" maxOccurs="unbounded" minOccurs="0">+ −
<xsd:complexType>+ −
<xsd:attribute name="name" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>The internal name for the property being overriden. It is legal for+ −
this to reference a name that does not exist. This allows overrides of extension properties, which are+ −
only conditionaly defined.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute> + −
<xsd:attribute name="category" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>Override of the property category. See the description+ −
in <abstractPropertyType>+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute> + −
<xsd:attribute name="readOnly" type="xsd:boolean">+ −
<xsd:annotation><xsd:documentation>Override of the readOnly state. See the description+ −
in <abstractPropertyType>+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute> + −
<xsd:attribute name="default" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>Override of the default value. Default values can only+ −
be overriden on properties supporting default values, i.e simple properties, enums, and compound + −
properties. See the description in <abstractPropertyType> for more information.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute> + −
</xsd:complexType>+ −
</xsd:element>+ −
</xsd:sequence>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="events">+ −
<xsd:annotation><xsd:documentation>The list of events defined for this component. Components also inherit the events of+ −
their base components. Events are named notifications or hooks to which code can be attached. The data here is+ −
used to drive the user interface. The details of source code generation are part of the source code generation templates.+ −
+ −
The set of available events, and default event, may be overriden via code or script. See the + −
com.nokia.sdt.datamodel.adapter.IComponentEventInfo interface for more information.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="event"/>+ −
</xsd:sequence>+ −
<xsd:attribute name="defaultEventName" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>If defined, the default event will be identified in a component instance's context+ −
menu. In the case of inheritance the most derived definition of the default event is used.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="event">+ −
<xsd:annotation><xsd:documentation>The definition of a single event.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:attribute name="name" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>The internal name for the event. This does not need to be a dotted name, but it must+ −
be unique within the component and its base components.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="displayName" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>This displayable name for the event. This value should be localized.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="category" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>Categories are used for grouping events in the Events view. As with property categories,+ −
this can be a key to a category localized by the component provider, or it can be a pre-localized or literal string.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="descriptionKey" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>A key for descriptive information about the event.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="helpKey" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>A help topic for online help for the event.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="handlerNameTemplate" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>A template which is expanded to the proposed default name for the+ −
event handler function. An example of such a template is "Handle{title(name)}StateChangedL".+ −
The {} marks template variables. A variable may contain a simple property value, but generally only the 'name' property+ −
should be used. The pseudo-functions "lower", "upper", and "title" may be used to transform the property value.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="group" type="xsd:string">+ −
<xsd:annotation><xsd:documentation>This is a grouping, separate from categories, used in event filtering. Events+ −
may only make sense for specific containers. The interface com.nokia.sdt.datamodel.adapter.IComponentEventInfo is+ −
used to filter applicable events from the complete set of declared events. When deriving from an existing base+ −
component it is not generally necessary to implement this interface. Instead, just use the groups defined by+ −
the base component in your own events. For example to make events visible in a CCoeControl container, The CCoeControlBase+ −
component uses the filter group "Control". + −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="implementations">+ −
<xsd:annotation>+ −
<xsd:documentation>Implementation elements declare code or script implementations of interfaces by name.+ −
</xsd:documentation>+ −
</xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element maxOccurs="unbounded" ref="implementation"/>+ −
</xsd:sequence>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="implementation">+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:sequence>+ −
<xsd:element maxOccurs="unbounded" name="interface">+ −
<xsd:complexType>+ −
<xsd:attribute name="id" type="xsd:string" use="required"/>+ −
</xsd:complexType>+ −
</xsd:element>+ −
</xsd:sequence>+ −
<xsd:choice>+ −
<xsd:element ref="code"/>+ −
<xsd:element ref="script"/>+ −
</xsd:choice>+ −
</xsd:sequence>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="code">+ −
<xsd:annotation><xsd:documentation>+ −
Define a reference to an interface implemented in Java.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:attribute name="plugin" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Plugin id+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
+ −
<xsd:attribute name="class" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
Class in plugin.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="script">+ −
<xsd:annotation><xsd:documentation>+ −
Define a reference to an interface implemented in Javascript.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:attribute name="file" type="xsd:string" use="required"/>+ −
<xsd:attribute name="prototype" type="xsd:string" use="required"/>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="sourceGen">+ −
<xsd:annotation><xsd:documentation>+ −
This section controls C/C++ source generation (with the potential to support + −
other one-way languages). In a sourceGen element, all the elements in linear + −
order comprise the component's contributions. + −
+ −
Conditional sourcegen is implemented by using the "form" attribute on + −
templates or templateGroups, or explicitly checking the regex "form" in inline code. + −
+ −
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.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:choice maxOccurs="unbounded" minOccurs="0">+ −
<xsd:element ref="defineLocation"/>+ −
<xsd:element ref="template"/>+ −
<xsd:element ref="templateGroup"/>+ −
<xsd:element ref="useTemplate"/>+ −
<xsd:element ref="useTemplateGroup"/>+ −
<xsd:element ref="inline"/>+ −
<xsd:element ref="script"/>+ −
<xsd:element ref="defineMacro"/>+ −
<xsd:element ref="expandMacro"/>+ −
</xsd:choice>+ −
</xsd:sequence>+ −
<!-- IGNORED -->+ −
<xsd:attribute name="forms" type="xsd:string" use="optional"/>+ −
<xsd:attribute default="false" name="debug" type="xsd:boolean" use="optional"/>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:simpleType name="listOfStrings">+ −
<xsd:list itemType="xsd:string"/>+ −
</xsd:simpleType>+ −
+ −
<xsd:attributeGroup name="ConditionalSourceGenAttributes">+ −
<xsd:annotation><xsd:documentation>+ −
Base for sourcegen elements which may be conditionally skipped.+ −
Such skipping applies to the save-time behavior and not+ −
the load-time or validation-time behavior.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:attribute name="forms" type="listOfStrings" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Added post 1.1 to inline.+ −
+ −
A list of tokens used to select a particular kind of source for a parent.+ −
The namespace is determined implicitly by what a parent requests.+ −
+ −
For instance, a parent may have special sourcegen, and pass+ −
the form "SpecialCase" to its children. Elements specifying+ −
form="SpecialCase" will be selected. Other parents will not see+ −
such elements if they do not specify that form.+ −
+ −
If the form does not match, the element is not invoked.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute name="ifEvents" type="listOfStrings" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Added post 1.1 to inline.+ −
If defined, a list of events, any of which must be bound for the+ −
element to be invoked.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="ifExpr" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Added post 1.1.+ −
If defined, a Javascript expression which must evaluate to+ −
true (or non-zero) for the element to be invoked.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:attributeGroup>+ −
+ −
<xsd:complexType name="ConditionalSourceGen" abstract="true">+ −
<xsd:attributeGroup ref="ConditionalSourceGenAttributes"/>+ −
</xsd:complexType>+ −
+ −
<!-- I'm really annoyed schema doesn't support multiple inheritance.+ −
ConditionalSourceGenString should be an extension + −
of ConditionalSourceGen too. -->+ −
<xsd:complexType name="ConditionalSourceGenString" abstract="true">+ −
<xsd:annotation><xsd:documentation>+ −
Base for sourcegen elements which may be conditionally skipped+ −
(and which contain text).+ −
Such skipping applies to the save-time behavior and not+ −
the load-time or validation-time behavior.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:simpleContent>+ −
<xsd:extension base="xsd:string">+ −
<xsd:attributeGroup ref="ConditionalSourceGenAttributes"/>+ −
</xsd:extension>+ −
</xsd:simpleContent>+ −
</xsd:complexType>+ −
+ −
<xsd:element name="inline">+ −
<xsd:annotation><xsd:documentation>+ −
Provide Javascript in-line with templates and other sourceGen elements.+ −
Be sure to supply a "forms" attribute, otherwise the code may execute multiple times+ −
during the source generation contribution-gathering phase.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:simpleContent>+ −
<xsd:extension base="ConditionalSourceGenString">+ −
<xsd:attribute default="function" name="scope" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Tells where the inline code appears. By default, it appears+ −
in the primary function into which templates are generated, thus is+ −
executed in line with them. + −
+ −
Specifying "file" or "prototype" means the content is intended to modify the + −
Javascript prototype, thus it is placed at the top level of the file. + −
${jsObject}.prototype may be used to access the prototype.+ −
+ −
Note: include() and includeFrom() calls should be placed in the prototype scope,+ −
or their contents will not be visible to derived components.+ −
+ −
Added post 1.1: "file" is a synonym for "prototype".+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="id" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Added post 1.1: the identifier for the inline section,+ −
which makes it inheritable. Inline sections are inherited as templates,+ −
accessible with "useTemplate" of the same id.+ −
If unspecified, a default id is assigned. Use a blank id to avoid inheriting.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:simpleContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="defineLocation">+ −
<xsd:annotation><xsd:documentation>+ −
This element defines a location in source, such as a function in the main + −
file or a region of text in a class declaration. + −
This is a slight misnomer as this element does not by its presence realize+ −
the location. Only when a contribution references+ −
location id (or post 1.1: when realize="true" is used)+ −
will the location be added to source.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:choice maxOccurs="unbounded" minOccurs="0">+ −
<xsd:element ref="template"/>+ −
<xsd:element ref="inline"/>+ −
<xsd:element ref="script"/>+ −
<xsd:element ref="expandMacro"/>+ −
</xsd:choice>+ −
</xsd:sequence>+ −
<xsd:attribute name="baseLocation" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
If defined, the location id this location lives inside. (E.g. a class inside a file,+ −
an enum declaration inside a class, etc.)+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="domain" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
The source domain which controls how locations are interpreted and instantiated. + −
Only "cpp" is supported currently.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="id" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
The location identifier. This must be unique in a component. A derived component+ −
may redefine a location.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="dir" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
For a top-level location, where baseLocation is null, this is a+ −
template-expanded reference to the project-relative directory to+ −
use. Predefined variables ${src}, ${inc}, ${resource}, ${build}+ −
are provided.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="file" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
For a top-level location, where baseLocation is null, this is a+ −
template-expanded filename relative to the directory specified by "dir".+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="location" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
This describes the location relative to its base (use "" for a+ −
top-level file location). + −
+ −
A location segment in the cpp domain is a string+ −
representing a node in a C/C++ parse tree. Each takes the syntax “<name>+ −
‘(‘ <arguments…> ‘)’�?. Certain nodes may only appear within certain+ −
others. This list defines top-level nodes:+ −
+ −
class(<name>): + −
reference the class declaration for the class ‘name’, which may include namespaces (e.g.+ −
“class(MyClass)�? or “class(${className})�?)+ −
+ −
function(<name>(<arguments…)):+ −
reference a function with the given signature. ‘name’ may include namespaces+ −
or represent a destructor. ‘arguments’ is a comma-separated list of types. + −
This list of arguments is currently not parsed and only the number of+ −
arguments matters. The arguments list may end in ellipsis (“…�?) to indicate+ −
that any zero or more arguments are matched. Again, the <template>+ −
inside a <defineLocation> really defines the function. (E.g.+ −
“function(main(int,char**))�? or “function(${className}::method(void*)�?.)+ −
+ −
region(<name>): + −
a region defines a commented block of text with no other syntactical clues. The+ −
block comments and the name are used to identify the block. Thus, names should+ −
be unique across a component. (E.g. “region(Generated Includes)�?.)+ −
+ −
enum(<name>): + −
a enum declaration with the given name. Name must be non-empty (locations are+ −
used to look up source, so anonymous enums cannot be unambiguously+ −
identified). (E.g. “enum(T${className}Ids)�?.)+ −
+ −
namespace(<name>):+ −
a namespace declaration with the given name, which may contain colons. (E.g.+ −
“namespace(std::tr1)�?)+ −
+ −
to-file(): + −
resolve to the current file of a location, i.e. get back to the root location. + −
+ −
Inside a class(), namespace() is not allowed, and this+ −
additional segment is allowed:+ −
+ −
bases(): + −
references the base-class-list within a class declaration. If the class’ defining text+ −
already includes a base, then the defining text for the bases() location may be+ −
omitted. If a class’ defining text does not include a base, the bases()+ −
location must include the leading colon in its defining text. Otherwise,+ −
contributions are individual class references with leading commas.+ −
+ −
In a function(), only class(), region(), enum(), and to-file() are allowed.+ −
+ −
In an enum(), bases() or region(), only region() and to-file() are allowed.+ −
+ −
+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute default="true" name="owned" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Note: a string for macro use only; must resolve to "true" or "false".+ −
If true, the location is marked generated in source and will be+ −
regenerated from scratch on every save. Otherwise, the location+ −
is generated only when missing.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute default="default" name="filter" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Defines a filter on contributions added to the location.+ −
Available filters:+ −
* unique-includes (can be applied anywhere, but scans files)+ −
* unique-prototypes (can be applied in "class()" or children, but scans the class)+ −
* unique-bases (can be applied to "bases()" or children, but scans the base class list)+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="isEventHandler" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Note: a string for macro use only; must resolve to "true" or "false".+ −
When "ifEvents" is non-empty, this flag tells the designer which particular+ −
function is the user-editable event handler. So this usually is applied+ −
to a function() location.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="realize" type="xsd:string" use="optional" default="false">+ −
<xsd:annotation><xsd:documentation>+ −
Added post 1.1. + −
Note: a string for macro use only; must resolve to "true" or "false".+ −
If true, a template for this location is automatically added when this location is defined.+ −
Otherwise, the location is a placeholder and is not "realized" in actual source unless a template references it.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="ifEvents" type="listOfStrings" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
If defined, a list of events, any of which must be bound for the+ −
location to be declared. Otherwise, its id is not available and + −
the location is undefined.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
+ −
</xsd:element>+ −
+ −
+ −
<xsd:element name="template">+ −
<xsd:annotation><xsd:documentation>+ −
This defines a contribution. The text element is template-expanded + −
with ${ ... } expression escapes and may contain Javascript in <% ... %> sections.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="ConditionalSourceGenString">+ −
<xsd:attribute name="location" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
The location id the contribution goes to. May not be specified when "phase" is set.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
<xsd:attribute name="phase" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
The phase the contribution goes to. A parent component must realize the+ −
phase into an actual location id.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute name="mode" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Unused currently.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<!-- form and forms are the same, semantically -->+ −
+ −
<!-- form is obsolescent, use forms instead -->+ −
<xsd:attribute name="form" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
A token used to select a particular kind of source for a parent.+ −
The namespace is determined implicitly by what a parent requests.+ −
+ −
For instance, a parent may have special sourcegen, and pass+ −
the form "SpecialCase" to its children. Templates specifying+ −
form="SpecialCase" will be selected. Other parents will not see+ −
such templates if they do not specify that form.+ −
+ −
If the form does not match, the template is not instantiated.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
<xsd:attribute name="id" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Unique id for the template within a component or+ −
within a templateGroup. Ids may be shared for different+ −
forms. Derived components may redefine ids or inherit+ −
templates by id.+ −
Added post 1.1: if the id is unspecified in a templateGroup, + −
a default id is assigned. To avoid inheriting, supply an empty id.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="templateGroup">+ −
<xsd:annotation><xsd:documentation>+ −
A logical grouping of templates and locations. Attributes+ −
present on the group are automatically applied to children.+ −
Groups may not be nested.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="ConditionalSourceGen">+ −
<xsd:sequence>+ −
<xsd:choice maxOccurs="unbounded" minOccurs="0">+ −
<xsd:element ref="defineLocation"/>+ −
<xsd:element ref="template"/>+ −
<!-- added post 1.1 -->+ −
<xsd:element ref="inline"/>+ −
<!-- added post 1.1 -->+ −
<xsd:element ref="useTemplate"/>+ −
<!-- added post 1.1 -->+ −
<xsd:element ref="useTemplateGroup"/>+ −
<!-- added post 1.1 -->+ −
<xsd:element ref="expandMacro"/>+ −
</xsd:choice>+ −
</xsd:sequence>+ −
<xsd:attribute name="location" type="xsd:string" use="optional"/>+ −
<xsd:attribute name="mode" type="xsd:string" use="optional"/>+ −
<xsd:attribute name="phase" type="xsd:string" use="optional"/>+ −
<xsd:attribute name="id" type="xsd:string" use="optional"/>+ −
<!-- form is obsolescent -->+ −
<xsd:attribute name="form" type="xsd:string" use="optional"/>+ −
</xsd:extension> + −
</xsd:complexContent> + −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="useTemplate">+ −
<xsd:annotation><xsd:documentation>+ −
In a derived component, selects a template from the base by id.+ −
</xsd:documentation></xsd:annotation> + −
+ −
<xsd:complexType>+ −
<xsd:attribute name="ids" type="xsd:string" use="required"/>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="useTemplateGroup">+ −
<xsd:annotation><xsd:documentation>+ −
In a derived component, selects a template group from the base by id.+ −
If no subelements are specified, all the named templates (those with ids)+ −
are inherited. No templates without ids are inherited.+ −
+ −
If subelements are specified, these describe the specific templates+ −
to inherit from the group. The id "*" may be used to bring in all+ −
named templates.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="useTemplate"/>+ −
</xsd:sequence>+ −
<xsd:attribute name="ids" type="xsd:string" use="required"/>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="defineMacro">+ −
<xsd:annotation><xsd:documentation>+ −
Added post 1.1. + −
This element defines a macro consisting of a set of templates + −
and inlines which may be variable-substituted.+ −
+ −
If a given defineMacro imports multiple arguments+ −
of the same name, then they must be explicitly redefined,+ −
to resolve any ambiguities about the default value. + −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element ref="importArguments" maxOccurs="unbounded" minOccurs="0"/>+ −
<xsd:element ref="macroArgument" maxOccurs="unbounded" minOccurs="0"/>+ −
<xsd:choice maxOccurs="unbounded" minOccurs="0">+ −
<xsd:element ref="template"/>+ −
<xsd:element ref="inline"/>+ −
<xsd:element ref="defineLocation"/>+ −
<xsd:element ref="expandMacro"/>+ −
</xsd:choice>+ −
</xsd:sequence>+ −
+ −
<xsd:attribute name="id" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Unique id for the macro within a component. + −
Ids may be shared for different+ −
forms. Derived components inherit macros automatically+ −
but may redefine a macro with the same id.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
<xsd:attribute name="help" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Help/usage text for a documentation generating tool.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="macroArgument">+ −
<xsd:annotation><xsd:documentation>+ −
Added post 1.1.+ −
Defines an argument for use with the macro.+ −
The default value may be specified in the 'default' attribute or in the text of the element.+ −
The text supercedes the attribute. + −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:simpleContent>+ −
<xsd:extension base="xsd:string">+ −
<xsd:attribute name="name" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
The name of the argument. This must be a legal Javascript identifier+ −
and unique within the macro.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute name="optional" type="xsd:boolean" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Tells whether the argument may be omitted from an expandMacro use.+ −
If true, and no default is provided, the variable's value is null.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute name="default" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
The default value of the argument if unspecified. Alternately, the+ −
text of this element may be supplied as the default, if formatting+ −
or newlines are used.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute name="help" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Help/usage text for a documentation generating tool.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:simpleContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="importArguments">+ −
<xsd:annotation><xsd:documentation>+ −
Added post 1.1. + −
This element specifies that a list of arguments (name, type, defaults,+ −
optional flags) will be imported from another macro. + −
If this element is omitted, then all the arguments from the macro+ −
are imported. + −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:attribute name="macroName" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
The macro whose arguments to import.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute name="arguments" type="listOfStrings" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
The list of argument names to import. This is mutually exclusive with 'exceptArguments'.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute name="exceptArguments" type="listOfStrings" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
The list of argument names NOT to import. All the arguments are imported+ −
except these. This is mutually exclusive with 'arguments'.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute name="help" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Help/usage text for a documentation generating tool.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="expandMacro">+ −
<xsd:annotation><xsd:documentation>+ −
<p>+ −
Added post 1.1.+ −
Expands a given macro into the sourceGen of the caller. + −
This has the same effect as inserting the same templates and inlines + −
from the macro's definition at the point of call. + −
Variable references from those templates and inlines+ −
are substituted with the values provided in attributes + −
(e.g. variableName="value") or expandArgument child elements. + −
The latter may be preferred for cases where code is substituted,+ −
so the formatting may be retained.+ −
</p>+ −
<p>+ −
As a special case, variable references may have modifiers to+ −
modify the formatting of a variable when it is expanded. + −
Modifiers are appended+ −
to the variable name as in: $(varName::modifier). + −
</p>+ −
<p>+ −
Currently supported modifiers are all for tweaking canonical+ −
function argument lists, which match the format of + −
declaration, with spaces, argument names, default values, etc:+ −
</p>+ −
<ul>+ −
<li>as-function-declaration-args: identity+ −
</li>+ −
<li>as-function-definition-args: removes default argument values+ −
</li>+ −
<li>as-function-location-args: removes argument names, default arguments, and spaces+ −
</li>+ −
</ul>+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="ConditionalSourceGen" >+ −
<xsd:sequence>+ −
<xsd:element ref="expandArgument" maxOccurs="unbounded" minOccurs="0"/>+ −
</xsd:sequence>+ −
<xsd:attribute name="name" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
The macro to invoke (matching the id from defineMacro).+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="passArguments" type="listOfStrings" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
A list of arguments defined in the current calling macro to+ −
pass unchanged to the called macro, excluding any arguments+ −
that are not defined in the current call.+ −
+ −
This attribute is only valid in expandMacro called from+ −
a defineMacro. + −
+ −
Passing arguments is different from adding attributes+ −
argName="$(argName)" because it avoids defining otherwise + −
undefined arguments. (A missing optional argument is null,+ −
not the empty string. The '::is-defined' modifier can be+ −
used to check this.)+ −
+ −
Elements in the list of strings are names of arguments, or+ −
renames of the form targetArgumentName=hostArgumentName which+ −
passes hostArgumentName from the hosting macro with the name+ −
targetArgumentName (again, only if the argument is actually+ −
defined in the call).+ −
+ −
If this argument is not specified, all the arguments in the+ −
invoked macro are passed (zero or more may have defaults which+ −
are overridden in this macro). + −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
+ −
<xsd:attribute name="dontPassArguments" type="listOfStrings" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
This is primarily used when passArguments is not specified.+ −
It specifies which arguments not to pass to the invoked macro,+ −
which become undefined in the expansion of that macro.+ −
This is useful when this macro takes over the work of one or more+ −
arguments from the invoked macro. + −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
+ −
<xsd:attribute name="help" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Help/usage text for a documentation generating tool.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
+ −
<xsd:anyAttribute processContents="lax">+ −
<xsd:annotation><xsd:documentation>+ −
Any attribute matching the variables used in the given named macro may appear here.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:anyAttribute>+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="expandArgument">+ −
<xsd:annotation><xsd:documentation>+ −
Added post 1.1. + −
Provides multiline text content for an argument.+ −
This is semantically identical to setting an attribute of the same+ −
name="..." value in the expandMacro element, with any standalone + −
leading whitespace and standalone trailing whitespace removed+ −
(as with <template>).+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:simpleContent>+ −
<xsd:extension base="xsd:string">+ −
<xsd:attribute name="name" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
The variable to define (matching the id from macroArgument).+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
<xsd:attribute name="help" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Help/usage text for a documentation generating tool.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:simpleContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="select">+ −
<xsd:annotation><xsd:documentation>+ −
This element encapsulates choice elements which allow conditional+ −
source mapping. One choice must match or an error results (you can+ −
use an empty choice to match the default case if necessary). Only+ −
the first matching choice is considered.+ −
<p>+ −
Only use one attribute (property, attribute, propertyExists, isComponentInstanceOf)+ −
for the select statement.+ −
</p>+ −
</xsd:documentation></xsd:annotation> + −
+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="choice"/>+ −
</xsd:sequence>+ −
<!-- only one of these should be set -->+ −
<xsd:attribute name="property" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Specifies the property path to test. (E.g. "flag", "[parent].flag", ...)+ −
Results in an error if the property does not exist, else the string version of the property to test.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
<xsd:attribute name="attribute" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Specifies the attribute value to test. Results in blank ("") or the value of the attribute to test.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
<xsd:attribute name="propertyExists" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Specifies the property path to test for existence. (E.g. "flag", "[parent].flag", ...)+ −
Results in a 'true' or 'false' value to test. + −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
<xsd:attribute name="isComponentInstanceOf" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Specifies the property path to test for existence, e.g., whether the+ −
property may be set or queried. This is independent of whether the+ −
property is actually set. The attribute takes a property path (e.g. "flag", "[parent].flag", ...)+ −
Results in a 'true' or 'false' value to test. + −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="choice">+ −
<xsd:annotation><xsd:documentation>+ −
This defines a decision in the select element. If the "value" attribute+ −
matches the value obtained in the select element, the choice is matched+ −
and its mapping elements instantiated.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:choice maxOccurs="unbounded" minOccurs="0">+ −
<xsd:element ref="twoWayMapping"/>+ −
<xsd:element ref="mapResource"/>+ −
<xsd:element ref="select"/>+ −
</xsd:choice>+ −
</xsd:sequence>+ −
<xsd:attribute name="value" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
The value to match. If unspecified, the choice always matches.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:complexType name="twoWayMappingType">+ −
<xsd:annotation><xsd:documentation>+ −
Base for two-way mappings.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:complexType> + −
<xsd:complexType name="mappingFixedType">+ −
<xsd:annotation><xsd:documentation>+ −
Base for mapping a fixed value to RSS.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexContent>+ −
<xsd:extension base="twoWayMappingType">+ −
<xsd:attribute name="value" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
The literal string to emit into RSS.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
<xsd:complexType name="mappingSimpleType">+ −
<xsd:annotation><xsd:documentation>+ −
Base for mapping simple types (integers, floats, strings, booleans).+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexContent>+ −
<xsd:extension base="twoWayMappingType"/>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
<xsd:complexType name="mappingInstanceType">+ −
<xsd:annotation><xsd:documentation>+ −
Base for mapping resources generated by component instances.+ −
Either a reference to the resource is emitted (for LLINK targets)+ −
or the resource expression is emitted (for STRUCT targets).+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexContent>+ −
<xsd:extension base="twoWayMappingType">+ −
<xsd:attribute name="rsrcId" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
If specified, which particular resource to match.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
<xsd:complexType name="mappingReferenceType">+ −
<xsd:annotation><xsd:documentation>+ −
Base for mapping references to resources generated by component instances.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexContent>+ −
<xsd:extension base="twoWayMappingType">+ −
<xsd:attribute name="rsrcId" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
If defined, tells which particular generated resource to reference.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute> + −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
<xsd:complexType name="mappingEnumType">+ −
<xsd:annotation><xsd:documentation>+ −
Base for mapping enumerator properties.+ −
If any mapEnum elements specified, they completely define the list of mappings + −
of internal enumerator values to external RSS values. Otherwise, internal + −
values are directly emitted as RSS values.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexContent>+ −
<xsd:extension base="twoWayMappingType">+ −
<xsd:sequence maxOccurs="unbounded" minOccurs="0">+ −
<xsd:element ref="mapEnum"/>+ −
</xsd:sequence>+ −
<xsd:attribute name="enumeration" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Unused.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute name="headers" type="listOfStrings" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
List of header files that must be included to provide the RSS enumerator symbols.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute default="true" name="validate" type="xsd:boolean" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
If true, ensure that mapped enumerators are declared in the RSS context,+ −
emitting warnings if not. Set this to false if mapping #defines or+ −
expressions.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
<xsd:attribute name="nameAlgorithm" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
If defined, mapped RSS values may be generated by an algorithm based on+ −
the current instance and property. See the com.nokia.sdt.sourceGen.nameAlgorithm+ −
extension point for details.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute name="uniqueValue" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
When nameAlgorithm is defined, specifies that some or all mapped values+ −
are generated by the name algorithm. If the value is "*", every value goes+ −
through the name algorithm and gets an enumerator in an *.hrh file.+ −
Otherwise, only properties matching the value are generated.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
<xsd:element name="mapEnum">+ −
<xsd:annotation><xsd:documentation>+ −
This defines the mapping of one particular property value to one+ −
particular RSS value.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:attribute name="value" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
The property value.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
<xsd:attribute name="enumerator" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
The RSS enumerator.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:complexType name="mappingIdentifierType">+ −
<xsd:annotation><xsd:documentation>+ −
Base for mapping property values to RSS identifiers (rather than+ −
strings, for instance, as mappingSimpleType would do).+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexContent>+ −
<xsd:extension base="twoWayMappingType"/>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
<xsd:complexType name="mappingResourceType">+ −
<xsd:annotation><xsd:documentation>+ −
Base for mapping resources in RSS.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexContent>+ −
<xsd:extension base="twoWayMappingType">+ −
<xsd:sequence>+ −
<xsd:choice maxOccurs="unbounded" minOccurs="0">+ −
<xsd:element ref="mapSimpleMember"/>+ −
<xsd:element ref="mapInstanceMember"/>+ −
<xsd:element ref="mapReferenceMember"/>+ −
<xsd:element ref="mapFixedMember"/>+ −
<xsd:element ref="mapEnumMember"/>+ −
<xsd:element ref="mapIdentifierMember"/>+ −
<xsd:element ref="mapArrayMember"/>+ −
<xsd:element ref="mapResourceMember"/>+ −
<xsd:element ref="mapBitmaskMember"/>+ −
<xsd:element ref="mapMemberFromType"/>+ −
<xsd:element ref="mapIntoProperty"/>+ −
<xsd:element ref="select"/>+ −
</xsd:choice>+ −
</xsd:sequence>+ −
<xsd:attribute name="struct" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
The RSS STRUCT name to generate.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
<xsd:attribute name="headers" type="listOfStrings" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
The list of headers required to declare the STRUCT.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
<xsd:attribute name="id" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
The unique identifier for this resource within a component.+ −
+ −
Every mapResourceXXX must have an identifier, either implicitly+ −
or explicitly defined.+ −
+ −
If unspecified, an identifier is automatically generated for+ −
mapResourceMember or mapResourceElement elements. Otherwise,+ −
missing identifiers are reported at errors at source mapping time.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
<xsd:complexType name="mappingBitmaskType">+ −
<xsd:annotation><xsd:documentation>+ −
Base for mapping sets of boolean properties to a single bitmask expression in RSS.+ −
+ −
When mapping this element, a working set of the includedProperties is created.+ −
Each mapBitmaskValue element is considered in turn, and if all the properties+ −
it references are present in the working set and have the value "true", + −
the matching value is OR'ed into the target expression, and those properties removed from the working set.+ −
Once the working set is empty, the mapping is complete. If all mapBitmaskValues are+ −
exhausted but the working set is non-empty, this is a component error.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexContent>+ −
<xsd:extension base="twoWayMappingType">+ −
<xsd:sequence maxOccurs="unbounded" minOccurs="0">+ −
<xsd:element ref="mapBitmaskValue"/>+ −
</xsd:sequence>+ −
<xsd:attribute name="includedProperties" type="listOfStrings" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
The list of properties included in the set. If undefined, all the+ −
sibling properties (within a component or compound property) are included.+ −
Every included property must be referenced in a mapBitmaskValue element,+ −
or else the mapping is considered invalid, and an error reported.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
<xsd:element name="mapBitmaskValue">+ −
<xsd:annotation><xsd:documentation>+ −
Map a set of properties to a subexpression of the bitmask expression. If all the given+ −
properties are "true", the given value is OR'ed into the target expression.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:attribute name="properties" type="listOfStrings" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
List of properties to consider. May be property paths.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
<xsd:attribute name="value" type="xsd:string" use="required">+ −
<xsd:annotation><xsd:documentation>+ −
Value to OR into the target expression.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element abstract="true" name="twoWayMapping" type="twoWayMappingType"/>+ −
+ −
<xsd:complexType name="mappingArrayType">+ −
<xsd:annotation><xsd:documentation>+ −
Base for mapping arrays from sequence properties or component instance children.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexContent>+ −
<xsd:extension base="twoWayMappingType">+ −
<xsd:sequence>+ −
<xsd:choice maxOccurs="1" minOccurs="0">+ −
<xsd:element ref="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
This is restricted to mapXXXElement, mapElementFromType, or mapIntoProperty, but we can't represent this in XSD.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:element>+ −
+ −
<xsd:element ref="select"/>+ −
</xsd:choice>+ −
</xsd:sequence>+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
+ −
<xsd:annotation>+ −
<xsd:documentation>+ −
Type mappings are used to store mappings along with a type. Added post 1.2 + −
</xsd:documentation>+ −
</xsd:annotation>+ −
+ −
<!-- added post 1.2 -->+ −
<xsd:element name="mapFixedType" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a fixed value.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingFixedType" >+ −
&MapTypeIdAttribute;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<!-- added post 1.2 -->+ −
<xsd:element name="mapSimpleType" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a simple value.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingSimpleType">+ −
&MapTypeIdAttribute;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<!-- added post 1.2 -->+ −
<xsd:element name="mapInstanceType" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map resources for an instance.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingInstanceType">+ −
&MapTypeIdAttribute;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<!-- added post 1.2 -->+ −
<xsd:element name="mapReferenceType" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a reference property to resources the instance generates.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingReferenceType">+ −
&MapTypeIdAttribute;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<!-- added post 1.2 -->+ −
<xsd:element name="mapEnumType" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map an enumerator to RSS.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingEnumType">+ −
&MapTypeIdAttribute;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<!-- added post 1.2 -->+ −
<xsd:element name="mapIdentifierType" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a simple property to a literal (identifier) in RSS.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingIdentifierType">+ −
&MapTypeIdAttribute;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<!-- added post 1.2 -->+ −
<xsd:element name="mapResourceType" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a property to a RESOURCE expression or statement.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingResourceType">+ −
&MapTypeIdAttribute;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<!-- added post 1.2 -->+ −
<xsd:element name="mapArrayType" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a property or child list to an array in RSS.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingArrayType">+ −
&MapTypeIdAttribute;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<!-- added post 1.2 -->+ −
<xsd:element name="mapBitmaskType" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a set of boolean properties to a bitmask expression in RSS.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingBitmaskType">+ −
&MapTypeIdAttribute;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:annotation>+ −
<xsd:documentation>+ −
Member mappings are used to map a property to a member of a resource. + −
</xsd:documentation>+ −
</xsd:annotation>+ −
+ −
<xsd:element name="mapFixedMember" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a fixed value to an RSS member.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingFixedType">+ −
&MapMemberAttributes; + −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="mapSimpleMember" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a simple value to a member.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingSimpleType">+ −
&MapPropertyAttribute;+ −
&MapMemberAttributes;+ −
+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapInstanceMember" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map resources for an instance.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingInstanceType">+ −
&MapPropertyAttribute;+ −
&MapMemberAttributes;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapReferenceMember" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a reference property to resources the instance generates.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingReferenceType">+ −
&MapPropertyAttribute;+ −
&MapMemberAttributes;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapEnumMember" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map an enumerator to RSS.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingEnumType">+ −
&MapPropertyAttribute;+ −
&MapMemberAttributes;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapIdentifierMember" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a simple property to a literal (identifier) in RSS.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingIdentifierType">+ −
&MapPropertyAttribute;+ −
&MapMemberAttributes;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapResourceMember" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a property to a RESOURCE expression or statement.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingResourceType">+ −
&MapPropertyAttribute;+ −
&MapMemberAttributes;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapArrayMember" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a property or child list to an array in RSS.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingArrayType">+ −
&MapPropertyAttribute;+ −
&MapMemberAttributes;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapBitmaskMember" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a set of boolean properties to a bitmask expression in RSS.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingBitmaskType">+ −
&MapPropertyAttribute;+ −
&MapMemberAttributes;+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<!-- added post 1.2 -->+ −
<xsd:element name="mapMemberFromType" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map RSS from the type declaration attached to the given property.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="twoWayMappingType">+ −
&MapPropertyAttribute;+ −
&MapMemberAttributes;+ −
+ −
<xsd:attribute name="typeId" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
This attribute tells which of a set of type mappings to use+ −
from the given type (as named in the id="..." attributes on+ −
the mapXXXType children of sourceTypeMapping). + −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
+ −
+ −
<!-- Array element mappings -->+ −
<xsd:element name="mapSimpleElement" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a simple value to an array element.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingSimpleType">+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapFixedElement" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a fixed value to an array element.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingFixedType">+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapInstanceElement" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map an instance's resources to an array element.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingInstanceType"/>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapReferenceElement" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a reference property to an array element.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingReferenceType"/>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapEnumElement" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map an enumerator to an array element.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingEnumType"/>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapIdentifierElement" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a simple value to a literal (identifier) in an array element.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingIdentifierType"/>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapResourceElement" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a compound property or instance to resources in an array element.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingResourceType">+ −
+ −
<xsd:attribute name="instanceIdentifyingMember" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
This attribute provides a means to distinguish resource+ −
elements that come from different instances. + −
+ −
It tells which resource member to use as a key, so that the + −
array mapper can match up elements to instances when importing,+ −
to allow unknown items to be inserted (or for known items to + −
be reordered, ideally).+ −
+ −
If not set, the array is assumed to contain entries whose+ −
positions uniquely identify them (as is the case with+ −
arrays of integers, references, etc.).+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<xsd:element name="mapBitmaskElement" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map a set of boolean properties to an expression in an array element.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingBitmaskType"/>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
<!-- no mapArrayElement: no sub-arrays! -->+ −
+ −
<!-- added post 1.2 -->+ −
<xsd:element name="mapElementFromType" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Map RSS from the type declaration attached to the current element.+ −
You may need to use <mapProperty> to descend into a child of the current+ −
element for this to work.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="twoWayMappingType">+ −
<xsd:attribute name="typeId" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
This attribute tells which of a set of type mappings to use+ −
from the given type (as named in the id="..." attributes on+ −
the mapXXXType children of sourceTypeMapping). + −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
+ −
</xsd:element>+ −
+ −
<!-- added post 1.2 -->+ −
<xsd:element name="mapIntoProperty" substitutionGroup="twoWayMapping">+ −
<xsd:annotation><xsd:documentation>+ −
Delve into a property path without generating any resources.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="twoWayMappingType">+ −
<xsd:sequence>+ −
<xsd:element ref="twoWayMapping"/>+ −
</xsd:sequence>+ −
&MapPropertyAttribute;+ −
</xsd:extension>+ −
+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:element name="sourceMapping">+ −
<xsd:annotation>+ −
<xsd:documentation>+ −
The sourceMapping element defines a particular style of source generation+ −
which consists of automatic generation of source by structurally+ −
mapping a component instance to a source definition. + −
</xsd:documentation>+ −
</xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:choice maxOccurs="unbounded" minOccurs="0">+ −
<xsd:element ref="mapResource"/>+ −
<xsd:element ref="select"/>+ −
</xsd:choice>+ −
</xsd:sequence>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<xsd:simpleType name="standaloneType">+ −
<xsd:annotation><xsd:documentation>+ −
The selector for controlling standalone resource mapping.+ −
</xsd:documentation></xsd:annotation>+ −
<xsd:restriction base="xsd:string">+ −
<xsd:enumeration value="false">+ −
<xsd:annotation><xsd:documentation>+ −
Deprecated value corresponding to "default".+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:enumeration>+ −
<xsd:enumeration value="true">+ −
<xsd:annotation><xsd:documentation>+ −
Depecated value corresponding to "always".+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:enumeration>+ −
<xsd:enumeration value="never">+ −
<xsd:annotation><xsd:documentation>+ −
Never emit the resource by itself. Only emit it if another resource+ −
references it. By using this, a component may generate two forms of+ −
resource (with different resource ids) and let a container or reference+ −
select which resource it wants, without also generating the unused variant.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:enumeration>+ −
<xsd:enumeration value="default">+ −
<xsd:annotation><xsd:documentation>+ −
Emit the resource by itself if it is not generated as an expression or+ −
by a LINK or LLINK.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:enumeration>+ −
<xsd:enumeration value="always">+ −
<xsd:annotation><xsd:documentation>+ −
Always emit the resource by itself, even if already generated as an expression.+ −
</xsd:documentation></xsd:annotation>+ −
</xsd:enumeration>+ −
</xsd:restriction>+ −
</xsd:simpleType>+ −
+ −
<xsd:element name="mapResource">+ −
<xsd:annotation><xsd:documentation>+ −
Map an instance to a RESOURCE.+ −
</xsd:documentation></xsd:annotation> + −
<xsd:complexType>+ −
<xsd:complexContent>+ −
<xsd:extension base="mappingResourceType">+ −
<xsd:attribute default="false" name="unnamed" type="xsd:boolean" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
This tells whether to emit the resource without a name+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute default="default" name="standalone" type="standaloneType" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
This tells whether the resource must be emitted as a standalone resource statement (always),+ −
regardless of whether it is also generated as a resource expression, or whether it+ −
will never be emitted unless referenced by another resource (never). The default behavior+ −
is to emit it if not generated as an expression.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute name="baseName" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Force the base name of the resource. If unspecified, resources are+ −
named after the instance and member or element being mapped.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
<xsd:attribute name="rssFile" type="xsd:string" use="optional">+ −
<xsd:annotation><xsd:documentation>+ −
Force the RSS filename (but not directory). This is used to redirect+ −
resources to a top-level RSS file.+ −
</xsd:documentation></xsd:annotation> + −
</xsd:attribute>+ −
</xsd:extension>+ −
</xsd:complexContent>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
<!-- added post 1.2 -->+ −
<xsd:element name="sourceTypeMapping">+ −
<xsd:annotation>+ −
<xsd:documentation>+ −
The sourceTypeMapping element mirrors sourceMapping but provides stored source+ −
mapping data for use by compound or enum types. + −
</xsd:documentation>+ −
</xsd:annotation>+ −
<xsd:complexType>+ −
<xsd:sequence>+ −
<xsd:choice maxOccurs="unbounded" minOccurs="0">+ −
<xsd:element ref="mapResourceType"/>+ −
<xsd:element ref="mapEnumType"/>+ −
<xsd:element ref="mapSimpleType"/>+ −
<xsd:element ref="mapFixedType"/>+ −
<xsd:element ref="mapBitmaskType"/>+ −
<xsd:element ref="mapIdentifierType"/>+ −
<xsd:element ref="mapReferenceType"/>+ −
<xsd:element ref="mapArrayType"/>+ −
<xsd:element ref="select"/>+ −
</xsd:choice>+ −
</xsd:sequence>+ −
</xsd:complexType>+ −
</xsd:element>+ −
+ −
</xsd:schema>+ −