Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "COSMOS SDD Tooling BTG Data Type Comparisons"
Line 2,373: | Line 2,373: | ||
== <ArtifactTypeNameType> == | == <ArtifactTypeNameType> == | ||
<pre> | <pre> | ||
+ | <xsd:simpleType name="ArtifactTypeNameType"> | ||
+ | <xsd:restriction base="xsd:QName"/> | ||
+ | </xsd:simpleType> | ||
</pre> | </pre> | ||
Line 2,380: | Line 2,383: | ||
! Type !! Element !! Attribute !! Data Type !! Compare? | ! Type !! Element !! Attribute !! Data Type !! Compare? | ||
|- | |- | ||
− | | || || || || | + | | <ArtifactTypeNameType> || || || xsd:QName || Yes |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|} | |} | ||
− | |||
− | |||
== <AdditionalContentType> == | == <AdditionalContentType> == | ||
<pre> | <pre> | ||
+ | <xsd:complexType name="AdditionalContentType"> | ||
+ | <xsd:sequence> | ||
+ | <xsd:element name="Substitution" type="sdd-dd:SubstitutionType" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | </xsd:sequence> | ||
+ | <xsd:attribute name="contentRef" type="xsd:token" use="required"/> | ||
+ | <xsd:attribute name="type" type="sdd-dd:ArtifactTypeNameType" use="optional"/> | ||
+ | <xsd:anyAttribute namespace="##other" processContents="lax"/> | ||
+ | </xsd:complexType> | ||
</pre> | </pre> | ||
Line 2,400: | Line 2,404: | ||
! Type !! Element !! Attribute !! Data Type !! Compare? | ! Type !! Element !! Attribute !! Data Type !! Compare? | ||
|- | |- | ||
− | | || || || || | + | | <AdditionalContentType> || || || || |
+ | |- | ||
+ | | || || contentRef || xsd:token || Yes | ||
+ | |- | ||
+ | | || || type || <[[#<ArtifactTypeNameType>|ArtifactTypeNameType]]> || Merge | ||
|- | |- | ||
− | | || || || || | + | | || || any || namespace="##other" || ? |
|- | |- | ||
− | | || || || || | + | | || Substitution || || <[[#<SubstitutionType>|SubstitutionType]]> || Merge |
|- | |- | ||
− | | || || || || | + | | || any || || namespace="##other" || ? |
|} | |} | ||
Notes:<br> | Notes:<br> | ||
+ | Compare the Content pointed to by contentRef, not the references themselves. | ||
+ | |||
+ | When merging, type and contentRef must stay together as a pair. So, whichever contentRef is kept, the associated type must be kept. | ||
== <ArtifactType> == | == <ArtifactType> == | ||
<pre> | <pre> | ||
+ | <xsd:complexType name="ArtifactType"> | ||
+ | <xsd:sequence> | ||
+ | <xsd:element name="Arguments" type="sdd-dd:ArgumentListType" minOccurs="0"/> | ||
+ | <xsd:element name="OutputVariables" type="sdd-dd:OutputVariableListType" minOccurs="0"/> | ||
+ | <xsd:element name="AdditionalContent" type="sdd-dd:AdditionalContentType" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | </xsd:sequence> | ||
+ | <xsd:attribute name="contentRef" type="xsd:token" use="optional"/> | ||
+ | <xsd:attribute name="resourceRef" type="xsd:IDREF" use="optional"/> | ||
+ | <xsd:attribute name="type" type="sdd-dd:ArtifactTypeNameType" use="optional"/> | ||
+ | <xsd:attribute name="weight" type="xsd:positiveInteger" use="optional"/> | ||
+ | <xsd:anyAttribute namespace="##other" processContents="lax"/> | ||
+ | </xsd:complexType> | ||
</pre> | </pre> | ||
Line 2,420: | Line 2,444: | ||
! Type !! Element !! Attribute !! Data Type !! Compare? | ! Type !! Element !! Attribute !! Data Type !! Compare? | ||
|- | |- | ||
− | | || || || || | + | | <ArtifactType> || || || || |
|- | |- | ||
− | | || || || || | + | | || || contentRef || xsd:token || Yes |
|- | |- | ||
− | | || || || || | + | | || || resourceRef || xsd:IDREF || Yes |
|- | |- | ||
− | | || || || || | + | | || || type || <[[#<ArtifactTypeNameType>|ArtifactTypeNameType]]> || Merge |
+ | |- | ||
+ | | || || weight || xsd:positiveInteger || Merge | ||
+ | |- | ||
+ | | || || any || namespace="##other" || ? | ||
+ | |- | ||
+ | | || Arguments || || <[[#<ArgumentListType>|ArgumentListType]]> || Merge | ||
+ | |- | ||
+ | | || OutputVariables || || <[[#<OutputVariableListType>|OutputVariableListType]]> || Merge | ||
+ | |- | ||
+ | | || AdditionalContent || || <[[#<AdditionalContentType>|AdditionalContentType]]> || Merge | ||
+ | |- | ||
+ | | || any || || namespace="##other" || ? | ||
|} | |} | ||
Notes:<br> | Notes:<br> | ||
+ | If two weights are different (which means two inputs think the same Artifact takes two different times to install), then log a warning and do not include weight in the ouput. | ||
+ | |||
+ | When merging, type must go along as a pair with the contentRef or resourceRef that it's associated with. | ||
+ | |||
+ | When comparing conrentRef or resourceRef, compare the element pointed to instead of the references themselves. | ||
== <InstallationArtifactsType> == | == <InstallationArtifactsType> == | ||
<pre> | <pre> | ||
+ | <xsd:complexType name="InstallationArtifactsType"> | ||
+ | <xsd:sequence> | ||
+ | <xsd:element name="InstallArtifact" type="sdd-dd:ArtifactType" minOccurs="0"/> | ||
+ | <xsd:element name="UpdateArtifact" type="sdd-dd:ArtifactType" minOccurs="0"/> | ||
+ | <xsd:element name="UndoArtifact" type="sdd-dd:ArtifactType" minOccurs="0"/> | ||
+ | <xsd:element name="UninstallArtifact" type="sdd-dd:ArtifactType" minOccurs="0"/> | ||
+ | <xsd:element name="RepairArtifact" type="sdd-dd:ArtifactType" minOccurs="0"/> | ||
+ | <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | </xsd:sequence> | ||
+ | </xsd:complexType> | ||
</pre> | </pre> | ||
Line 2,440: | Line 2,491: | ||
! Type !! Element !! Attribute !! Data Type !! Compare? | ! Type !! Element !! Attribute !! Data Type !! Compare? | ||
|- | |- | ||
− | | || || || || | + | | <InstallationArtifactsType> || || || || |
|- | |- | ||
− | | || || || || | + | | || InstallArtifact || || <[[#<ArtifactType>|ArtifactType]]> || Merge |
|- | |- | ||
− | | || || || || | + | | || UpdateArtifact || || <[[#<ArtifactType>|ArtifactType]]> || Merge |
|- | |- | ||
− | | || || || || | + | | || UndoArtifact || || <[[#<ArtifactType>|ArtifactType]]> || Merge |
+ | |- | ||
+ | | || UninstallArtifact || || <[[#<ArtifactType>|ArtifactType]]> || Merge | ||
+ | |- | ||
+ | | || RepairArtifact || || <[[#<ArtifactType>|ArtifactType]]> || Merge | ||
+ | |- | ||
+ | | || any || || namespace="##other" || ? | ||
|} | |} | ||
− | |||
− | |||
== <InstallableUnitType> == | == <InstallableUnitType> == | ||
<pre> | <pre> | ||
+ | <xsd:complexType name="InstallableUnitType"> | ||
+ | <xsd:sequence> | ||
+ | <xsd:element name="Identity" type="sdd-common:IdentityType" minOccurs="0"/> | ||
+ | <xsd:element name="Condition" type="sdd-dd:ConditionType" minOccurs="0"/> | ||
+ | <xsd:element name="Variables" type="sdd-dd:VariablesType" minOccurs="0"/> | ||
+ | <xsd:element name="RequiredBase" type="sdd-dd:RequiredBaseType" minOccurs="0"/> | ||
+ | <xsd:element name="Requirements" type="sdd-dd:RequirementsType" minOccurs="0"/> | ||
+ | <xsd:element name="Languages" type="sdd-dd:LanguagesType" minOccurs="0"/> | ||
+ | <xsd:element name="Completion" type="sdd-dd:CompletionType" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | <xsd:element name="ResultingResource" type="sdd-dd:ResultingResourceType" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | <xsd:element name="ResultingChange" type="sdd-dd:ResultingChangeType" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | <xsd:element name="Artifacts" type="sdd-dd:InstallationArtifactsType"/> | ||
+ | <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | </xsd:sequence> | ||
+ | <xsd:attribute name="id" type="xsd:ID" use="required"/> | ||
+ | <xsd:attribute name="targetResourceRef" type="xsd:IDREF" use="required"/> | ||
+ | <xsd:anyAttribute namespace="##other" processContents="lax"/> | ||
+ | </xsd:complexType> | ||
</pre> | </pre> | ||
Line 2,460: | Line 2,533: | ||
! Type !! Element !! Attribute !! Data Type !! Compare? | ! Type !! Element !! Attribute !! Data Type !! Compare? | ||
|- | |- | ||
− | | || || || || | + | | <InstallableUnitType> || || || || |
+ | |- | ||
+ | | || || id || xsd:ID || Throw Away | ||
+ | |- | ||
+ | | || || targetResourceRef || xsd:IDREF || Yes | ||
+ | |- | ||
+ | | || || any || namespace="##other" || ? | ||
+ | |- | ||
+ | | || Identity || || <[[#<IdentityType>|IdentityType]]> || Merge | ||
+ | |- | ||
+ | | || Condition || || <[[#<ConditionType>|ConditionType]]> || Merge | ||
+ | |- | ||
+ | | || Variables || || <[[#<VariablesType>|VariablesType]]> || Merge | ||
+ | |- | ||
+ | | || RequiredBase || || <[[#<RequiredBaseType>|RequiredBaseType]]> || Merge | ||
+ | |- | ||
+ | | || Requirements || || <[[#<RequirementsType>|RequirementsType]]> || Merge | ||
+ | |- | ||
+ | | || Languages || || <[[#<LanguagesType>|LanguagesType]]> || Merge | ||
+ | |- | ||
+ | | || Completion || || <[[#<CompletionType>|CompletionType]]> || Merge | ||
+ | |- | ||
+ | | || ResultingResource || || <[[#<ResultingResourceType>|ResultingResourceType]]> || Yes | ||
|- | |- | ||
− | | || || || || | + | | || ResultingChange || || <[[#<ResultingChangeType>|ResultingChangeType]]> || Yes |
|- | |- | ||
− | | || || || || | + | | || Artifacts || || <[[#<InstallationArtifactsType>|InstallationArtifactsType]]> || No |
|- | |- | ||
− | | || || || || | + | | || any || || namespace="##other" || ? |
|} | |} | ||
Notes:<br> | Notes:<br> | ||
+ | When comparing targetResourceRefs, compare the TargetResources pointed to instead of the targetResourceRefs themselves. | ||
+ | |||
+ | Artifacts, ResultingResource and ResultingChange must all stay together as a set. If ResultingResource and ResultingChange from two InstallableUnits match but the Artifacts are different, pick one Artifacts and log a warning. | ||
== <ConfigurationArtifactsType> == | == <ConfigurationArtifactsType> == | ||
<pre> | <pre> | ||
+ | <xsd:complexType name="ConfigurationArtifactsType"> | ||
+ | <xsd:sequence> | ||
+ | <xsd:element name="ConfigArtifact" type="sdd-dd:ArtifactType" minOccurs="0"/> | ||
+ | <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | </xsd:sequence> | ||
+ | </xsd:complexType> | ||
</pre> | </pre> | ||
Line 2,480: | Line 2,584: | ||
! Type !! Element !! Attribute !! Data Type !! Compare? | ! Type !! Element !! Attribute !! Data Type !! Compare? | ||
|- | |- | ||
− | | || || || || | + | | <ConfigurationArtifactsType> || || || || |
|- | |- | ||
− | | || || || || | + | | || ConfigArtifact || || <[[#<ArtifactType>|ArtifactType]]> || Yes |
|- | |- | ||
− | | || || || || | + | | || any || || namespace="##other" || ? |
− | + | ||
− | + | ||
|} | |} | ||
− | |||
− | |||
== <ConfigurationUnitType> == | == <ConfigurationUnitType> == | ||
<pre> | <pre> | ||
+ | <xsd:complexType name="ConfigurationUnitType"> | ||
+ | <xsd:sequence> | ||
+ | <xsd:element name="Identity" type="sdd-common:IdentityType" minOccurs="0"/> | ||
+ | <xsd:element name="Condition" type="sdd-dd:ConditionType" minOccurs="0"/> | ||
+ | <xsd:element name="Variables" type="sdd-dd:VariablesType" minOccurs="0"/> | ||
+ | <xsd:element name="Requirements" type="sdd-dd:RequirementsType" minOccurs="0"/> | ||
+ | <xsd:element name="Completion" type="sdd-dd:CompletionType" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | <xsd:element name="ResultingChange" type="sdd-dd:ResultingChangeType" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | <xsd:element name="Artifacts" type="sdd-dd:ConfigurationArtifactsType"/> | ||
+ | <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | </xsd:sequence> | ||
+ | <xsd:attribute name="id" type="xsd:ID" use="required"/> | ||
+ | <xsd:attribute name="targetResourceRef" type="xsd:IDREF" use="required"/> | ||
+ | <xsd:anyAttribute namespace="##other" processContents="lax"/> | ||
+ | </xsd:complexType> | ||
</pre> | </pre> | ||
Line 2,500: | Line 2,615: | ||
! Type !! Element !! Attribute !! Data Type !! Compare? | ! Type !! Element !! Attribute !! Data Type !! Compare? | ||
|- | |- | ||
− | | || || || || | + | | <ConfigurationUnitType> || || || || |
|- | |- | ||
− | | || || || || | + | | || || id || xsd:ID || Throw Away |
|- | |- | ||
− | | || || || || | + | | || || targetResourceRef || xsd:IDREF || Yes |
|- | |- | ||
− | | || || || || | + | | || || any || namespace="##other" || ? |
+ | |- | ||
+ | | || Identity || || <[[#<IdentityType>|IdentityType]]> || Merge | ||
+ | |- | ||
+ | | || Condition || || <[[#<ConditionType>|ConditionType]]> || Merge | ||
+ | |- | ||
+ | | || Variables || || <[[#<VariablesType>|VariablesType]]> || Merge | ||
+ | |- | ||
+ | | || Requirements || || <[[#<RequirementsType>|RequirementsType]]> || Merge | ||
+ | |- | ||
+ | | || Completion || || <[[#<CompletionType>|CompletionType]]> || Merge | ||
+ | |- | ||
+ | | || ResultingChange || || <[[#<ResultingChangeType>|ResultingChangeType]]> || Yes | ||
+ | |- | ||
+ | | || Artifacts || || <[[#<ConfigurationArtifactsType>|ConfigurationArtifactsType]]> || No | ||
+ | |- | ||
+ | | || any || || namespace="##other" || ? | ||
|} | |} | ||
Notes:<br> | Notes:<br> | ||
+ | When comparing targetResourceRefs, compare the TargetResources pointed to instead of the tergerResourceRefs themselves. | ||
== <LocalizationUnitType> == | == <LocalizationUnitType> == | ||
<pre> | <pre> | ||
+ | <xsd:complexType name="LocalizationUnitType"> | ||
+ | <xsd:sequence> | ||
+ | <xsd:element name="Identity" type="sdd-common:IdentityType" minOccurs="0"/> | ||
+ | <xsd:element name="Condition" type="sdd-dd:ConditionType" minOccurs="0"/> | ||
+ | <xsd:element name="Variables" type="sdd-dd:VariablesType" minOccurs="0"/> | ||
+ | <xsd:element name="RequiredBase" type="sdd-dd:RequiredBaseType" minOccurs="0"/> | ||
+ | <xsd:element name="Requirements" type="sdd-dd:RequirementsType" minOccurs="0"/> | ||
+ | <xsd:element name="Languages" type="sdd-dd:LanguagesType" minOccurs="0"/> | ||
+ | <xsd:element name="Completion" type="sdd-dd:CompletionType" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | <xsd:element name="LocalizationBase" type="sdd-dd:RequiredBaseType" minOccurs="0"/> | ||
+ | <xsd:element name="ResultingResource" type="sdd-dd:ResultingResourceType" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | <xsd:element name="Artifacts" type="sdd-dd:InstallationArtifactsType"/> | ||
+ | <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> | ||
+ | </xsd:sequence> | ||
+ | <xsd:attribute name="id" type="xsd:ID" use="required"/> | ||
+ | <xsd:attribute name="targetResourceRef" type="xsd:IDREF" use="required"/> | ||
+ | <xsd:anyAttribute namespace="##other" processContents="lax"/> | ||
+ | </xsd:complexType> | ||
</pre> | </pre> | ||
Line 2,520: | Line 2,670: | ||
! Type !! Element !! Attribute !! Data Type !! Compare? | ! Type !! Element !! Attribute !! Data Type !! Compare? | ||
|- | |- | ||
− | | || || || || | + | | <LocalizationUnitType> || || || || |
|- | |- | ||
− | | || || || || | + | | || || id || xsd:ID || Throw Away |
|- | |- | ||
− | | || || || || | + | | || || targetResourceRef || xsd:IDREF || Yes |
|- | |- | ||
− | | || || || || | + | | || || any || namespace="##other" || ? |
+ | |- | ||
+ | | || Identity || || <[[#<IdentityType>|IdentityType]]> || Merge | ||
+ | |- | ||
+ | | || Condition || || <[[#<ConditionType>|ConditionType]]> || Merge | ||
+ | |- | ||
+ | | || Variables || || <[[#<VariablesType>|VariablesType]]> || Merge | ||
+ | |- | ||
+ | | || RequiredBase || || <[[#<RequiredBaseType>|RequiredBaseType]]> || Merge | ||
+ | |- | ||
+ | | || Requirements || || <[[#<RequirementsType>|RequirementsType]]> || Merge | ||
+ | |- | ||
+ | | || Languages || || <[[#<LanguagesType>|LanguagesType]]> || Merge | ||
+ | |- | ||
+ | | || Completion || || <[[#<CompletionType>|CompletionType]]> || Merge | ||
+ | |- | ||
+ | | || LocalizationBase || || <[[#<RequiredBaseType>|RequiredBaseType]]> || Merge | ||
+ | |- | ||
+ | | || ResultingResource || || <[[#<ResultingResourceType>|ResultingResourceType]]> || Yes | ||
+ | |- | ||
+ | | || Artifacts || || <[[#<InstallationArtifactsType>|InstallationArtifactsType]]> || No | ||
+ | |- | ||
+ | | || any || || namespace="##other" || ? | ||
|} | |} | ||
Notes:<br> | Notes:<br> | ||
+ | When comparing targetResourceRefs, compare the TargetResources pointed to instead of the tergerResourceRefs themselves. | ||
== <LanguageSetType> == | == <LanguageSetType> == | ||
<pre> | <pre> | ||
+ | <xsd:complexType name="LanguageSetType"> | ||
+ | <xsd:sequence> | ||
+ | <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> | ||
+ | <xsd:element name="Language" type="sdd-dd:LanguageType" maxOccurs="unbounded"/> | ||
+ | </xsd:sequence> | ||
+ | </xsd:complexType> | ||
</pre> | </pre> | ||
Line 2,540: | Line 2,719: | ||
! Type !! Element !! Attribute !! Data Type !! Compare? | ! Type !! Element !! Attribute !! Data Type !! Compare? | ||
|- | |- | ||
− | | || || || || | + | | <LanguageSetType> || || || || |
|- | |- | ||
− | | || || || || | + | | || DisplayElementGroup || || [[#DisplayElementGroup|DisplayElementGroup]] || Merge |
|- | |- | ||
− | | || || || | | + | | || Language || || <[[#<LanguageType>|LanguageType]]> || Merge |
− | + | ||
− | + | ||
|} | |} | ||
− | |||
− | |||
== <OptionalLanguagesType> == | == <OptionalLanguagesType> == | ||
<pre> | <pre> | ||
+ | <xsd:complexType name="OptionalLanguagesType"> | ||
+ | <xsd:choice maxOccurs="unbounded"> | ||
+ | <xsd:element name="Language" type="sdd-dd:LanguageType"/> | ||
+ | <xsd:element name="LanguageSet" type="sdd-dd:LanguageSetType"/> | ||
+ | </xsd:choice> | ||
+ | </xsd:complexType> | ||
</pre> | </pre> | ||
Line 2,560: | Line 2,741: | ||
! Type !! Element !! Attribute !! Data Type !! Compare? | ! Type !! Element !! Attribute !! Data Type !! Compare? | ||
|- | |- | ||
− | | || || || || | + | | <OptionalLanguagesType> || || || || |
|- | |- | ||
− | | || || || || | + | | || Language || || <[[#<LanguageType>|LanguageType]]> || Merge |
|- | |- | ||
− | | || || || | | + | | || LanguageSet || || <[[#<LanguageSetType>|LanguageSetType]]> || Merge |
− | + | ||
− | + | ||
|} | |} | ||
− | |||
− | |||
== <LanguageSelectionsType> == | == <LanguageSelectionsType> == | ||
<pre> | <pre> | ||
+ | <xsd:complexType name="LanguageSelectionsType"> | ||
+ | <xsd:sequence> | ||
+ | <xsd:element name="Mandatory" type="sdd-dd:LanguagesType" minOccurs="0"/> | ||
+ | <xsd:element name="Optional" type="sdd-dd:OptionalLanguagesType" minOccurs="0" /> | ||
+ | </xsd:sequence> | ||
+ | </xsd:complexType> | ||
</pre> | </pre> | ||
Line 2,580: | Line 2,763: | ||
! Type !! Element !! Attribute !! Data Type !! Compare? | ! Type !! Element !! Attribute !! Data Type !! Compare? | ||
|- | |- | ||
− | | || || || || | + | | <LanguageSelectionsType> || || || || |
|- | |- | ||
− | | || || || || | + | | || Mandatory || || <[[#<LanguagesType>|LanguagesType]]> || Merge |
|- | |- | ||
− | | || || || | | + | | || Optional || || <[[#<OptionalLanguagesType>|OptionalLanguagesType]]> || Merge |
− | + | ||
− | + | ||
|} | |} | ||
− | |||
− | |||
== <CompositeUnitType> == | == <CompositeUnitType> == | ||
<pre> | <pre> | ||
+ | <xsd:complexType name="CompositeUnitType"> | ||
+ | <xsd:sequence> | ||
+ | <xsd:element name="Identity" type="sdd-common:IdentityType" minOccurs="0"/> | ||
+ | <xsd:element name="Condition" type="sdd-dd:ConditionType" minOccurs="0"/> | ||
+ | <xsd:element name="Variables" type="sdd-dd:VariablesType" minOccurs="0"/> | ||
+ | <xsd:element name="Requirements" type="sdd-dd:RequirementsType" minOccurs="0"/> | ||
+ | <xsd:group ref="sdd-dd:ContentListGroup"/> | ||
+ | </xsd:sequence> | ||
+ | <xsd:attribute name="id" type="xsd:ID" use="required"/> | ||
+ | <xsd:anyAttribute namespace="##other" processContents="lax"/> | ||
+ | </xsd:complexType> | ||
</pre> | </pre> | ||
Line 2,600: | Line 2,790: | ||
! Type !! Element !! Attribute !! Data Type !! Compare? | ! Type !! Element !! Attribute !! Data Type !! Compare? | ||
|- | |- | ||
− | | || || || || | + | | <CompositeUnitType> || || || || |
|- | |- | ||
− | | || || || || | + | | || || id || xsd:ID || Throw Away |
|- | |- | ||
− | | || || || || | + | | || || any || namespace="##other" || ? |
|- | |- | ||
− | | || || || || | + | | || Identity || || <[[#<IdentityType>|IdentityType]]> || Merge |
+ | |- | ||
+ | | || Condition || || <[[#<ConditionType>|ConditionType]]> || Merge | ||
+ | |- | ||
+ | | || Variables || || <[[#<VariablesType>|VariablesType]]> || Merge | ||
+ | |- | ||
+ | | || Requirements || || <[[#<RequirementsType>|RequirementsType]]> || Merge | ||
+ | |- | ||
+ | | || ContentListGroup || || [[#ContentListGroup|ContentListGroup]] || Merge | ||
|} | |} | ||
− | |||
− | |||
== <ContentSelectionFeatureType> == | == <ContentSelectionFeatureType> == |
Revision as of 16:12, 22 February 2008
Contents
- 1 Common Schema Elements
- 2 Package Descriptor Schema Elements
- 3 Deployment Descriptor Schema Elements
- 3.1 DescriptionGroup
- 3.2 DisplayElementGroup
- 3.3 ResourceConstraintGroup
- 3.4 ContentListGroup
- 3.5 <VariableExpressionType>
- 3.6 <PropertyType>
- 3.7 <ResourceTypeNameType>
- 3.8 <ResourceType>
- 3.9 <TopologyType>
- 3.10 <VersionValueType>
- 3.11 <MaxVersionType>
- 3.12 <VersionRangeType>
- 3.13 <VersionConstraintValueType>
- 3.14 <VersionConstraintType>
- 3.15 <PropertyMatchType>
- 3.16 <PropertyValueListType>
- 3.17 <ConditionalPropertyConstraintType>
- 3.18 <UniquenessConstraintType>
- 3.19 <RelationshipConstraintType>
- 3.20 <ConditionalResourceConstraintType>
- 3.21 <AlternativeConditionalType>
- 3.22 <OperationType>
- 3.23 <OperationListType>
- 3.24 <ConditionType>
- 3.25 <BaseParameterType>
- 3.26 <BoundaryType>
- 3.27 <IntegerParameterType>
- 3.28 <StringCaseType>
- 3.29 <StringParameterType>
- 3.30 <BooleanParameterType>
- 3.31 <URIParameterType>
- 3.32 <ParametersType>
- 3.33 <BaseVariableType>
- 3.34 <ResourcePropertyType>
- 3.35 <ConditionalDerivedVariableExpressionType>
- 3.36 <DerivedVariableType>
- 3.37 <VariablesType>
- 3.38 <RequiredBaseConstraintType>
- 3.39 <AlternativeRequiredBaseConstraintType>
- 3.40 <RequiredBaseType>
- 3.41 <CapacityValueType>
- 3.42 <CapacityConstraintType>
- 3.43 <ConsumptionConstraintValueType>
- 3.44 <ConsumptionConstraintType>
- 3.45 <PropertyConstraintType>
- 3.46 <RequirementResourceConstraintType>
- 3.47 <DependencyType>
- 3.48 <InternalDependencyType>
- 3.49 <AlternativeRequirementType>
- 3.50 <RequirementType>
- 3.51 <RequirementsType>
- 3.52 <LanguageType>
- 3.53 <LanguagesType>
- 3.54 <SDDCompletionTypeNamesType>
- 3.55 <DescriptionGroup>
- 3.56 <CompletionType>
- 3.57 <ResultingPropertyType>
- 3.58 <RelationshipType>
- 3.59 <ResultingResourceType>
- 3.60 <ResultingChangeType>
- 3.61 <ArgumentType>
- 3.62 <ArgumentListType>
- 3.63 <OutputVariableType>
- 3.64 <OutputVariableListType>
- 3.65 <SubstitutionType>
- 3.66 <ArtifactTypeNameType>
- 3.67 <AdditionalContentType>
- 3.68 <ArtifactType>
- 3.69 <InstallationArtifactsType>
- 3.70 <InstallableUnitType>
- 3.71 <ConfigurationArtifactsType>
- 3.72 <ConfigurationUnitType>
- 3.73 <LocalizationUnitType>
- 3.74 <LanguageSetType>
- 3.75 <OptionalLanguagesType>
- 3.76 <LanguageSelectionsType>
- 3.77 <CompositeUnitType>
- 3.78 <ContentSelectionFeatureType>
- 3.79 <RequiredContentSelectionType>
- 3.80 <ResourceMapType>
- 3.81 <ResultingResourceMapType>
- 3.82 <ResultingChangeMapType>
- 3.83 <ReferencedPackageType>
- 3.84 <BaseContentType>
- 3.85 <FeatureReferenceType>
- 3.86 <GroupType>
- 3.87 <GroupsType>
- 3.88 <MultiplicityConstraintType>
- 3.89 <ConstrainedResourceType>
- 3.90 <MultiplicityType>
- 3.91 <ContentElementReferenceType>
- 3.92 <PackageFeatureReferenceType>
- 3.93 <NestedFeatureType>
- 3.94 <FeatureType>
- 3.95 <MultiSelectType>
- 3.96 <FeaturesType>
- 3.97 <SelectableContentType>
- 3.98 <CompositeLocalizationUnitType>
- 3.99 <LocalizationContentType>
- 3.100 <CompositeInstallableType>
- 3.101 <RequisitesType>
- 3.102 <DeploymentDescriptorType>
Common Schema Elements
DescriptorInfoGroup
<xsd:attributeGroup name="DescriptorInfoGroup"> <xsd:attribute name="schemaVersion" type="xsd:string" fixed="1.0" use="required"/> <xsd:attribute name="descriptorID" type="sdd-common:UUIDType" use="required"/> <xsd:attribute name="lastModified" type="xsd:dateTime" use="required"/> <xsd:attribute name="descriptorLanguageBundle" type="xsd:token" use="optional"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:attributeGroup>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
DescriptorInfoGroup | ||||
schemaVersion | xsd:string | Throw Away | ||
descriptorID | <UUIDType> | Throw Away | ||
lastModified | xsd:dateTime | Throw Away | ||
descriptorLanguageBundle | xsd:token | Merge | ||
any | namespace="##other" | ? |
Notes:
DescriptorInfoGroup is always merged.
<DisplayTextType>
<xsd:complexType name="DisplayTextType"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="translationKey" type="xsd:NCName" use="optional"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<DisplayTextType> | Extension Of: xsd:string | Yes | ||
translationKey | xsd:NCName | Merge |
Notes:
DisplayTextType is always merged. When xsd:strings are equal, the merging algorithm must resolve translationKey and choose one of the translations to use.
<VersionType>
<xsd:simpleType name="VersionType"> <xsd:restriction base="xsd:string"/> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<VersionType> | xsd:string | Yes |
<FixIdentityType>
<xsd:complexType name="FixIdentityType"> <xsd:sequence> <xsd:element name="Name" type="xsd:NMTOKEN"/> <xsd:element name="Description" type="sdd-common:DisplayTextType"/> <xsd:element name="ShortDescription" type="sdd-common:DisplayTextType" minOccurs="0"/> <xsd:element name="Symptom" type="sdd-common:DisplayTextType" minOccurs="0" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<FixIdentityType> | ||||
Name | xsd:NMTOKEN | Yes | ||
Description | <DisplayTextType> | Merge | ||
ShortDescription | <DisplayTextType> | Merge | ||
Symptom | <DisplayTextType> | Merge | ||
any | namespace="##other" | ? |
<MaintenanceInformationType>
<xsd:complexType name="MaintenanceInformationType"> <xsd:sequence> <xsd:element name="Severity" type="sdd-common:DisplayTextType" minOccurs="0"/> <xsd:element name="Category" type="sdd-common:DisplayTextType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="Fix" type="sdd-common:FixIdentityType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="Supersedes" type="sdd-common:MaintenanceInformationType" minOccurs="0" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<MaintenanceInformationType> | ||||
Severity | <DisplayTextType> | Merge | ||
Category | <DisplayTextType> | Merge | ||
Fix | <FixIdentityType> | Yes | ||
Supersedes | <MaintenanceInformationType> | Merge | ||
any | namespace="##other" | ? |
Notes:
In a MaintenanceInformationType, all Categories apply to all Fixes. When merging two or more instances, it's important to only keep information that is true for all inputs. So, all fixes are kept and as many categories as apply to all fixes are kept.
For example, if MI one contains category FUNCTION and fix A, MI two contains categories FUNCTION, PERFORMANCE and fixes B,C and MI three contains category PERFORMANCE and fix D - the merged MI could contain no categories and fixes A,B,C,D.
Another case is when MI one contains category FUNCTION and fix A and MI two contains categories FUNCTION,PERFORMANCE and fixes B,C. Then the merged MI would contain category FUNCTION and fixes A,B,C.
<BuildInformationType>
<xsd:complexType name="BuildInformationType"> <xsd:attribute name="buildID" type="xsd:token" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<BuildInformationType> | ||||
buildID | xsd:token | Merge | ||
any | namespace="##other" | ? |
Notes:
If a buildID comes from a build system plugin, that buildID should be kept.
<LocationType>
<xsd:complexType name="LocationType"> <xsd:sequence> <xsd:element name="Address" type="sdd-common:DisplayTextType" minOccurs="0"/> <xsd:element name="Country" type="sdd-common:DisplayTextType" minOccurs="0"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<LocationType> | ||||
Address | <DisplayTextType> | Merge | ||
Country | <DisplayTextType> | Merge |
<ManufacturerType>
<xsd:complexType name="ManufacturerType"> <xsd:sequence> <xsd:element name="Name" type="sdd-common:DisplayTextType"/> <xsd:element name="Location" type="sdd-common:LocationType" minOccurs="0"/> <xsd:element name="ContactInformation" type="sdd-common:DisplayTextType" minOccurs="0"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ManufacturerType> | ||||
Name | <DisplayTextType> | Yes | ||
Location | <LocationType> | Merge | ||
ContactInformation | <DisplayTextType> | Merge | ||
any | namespace="##other" | ? |
<IdentityType>
<xsd:complexType name="IdentityType"> <xsd:sequence> <xsd:element name="Description" type="sdd-common:DisplayTextType" minOccurs="0"/> <xsd:element name="ShortDescription" type="sdd-common:DisplayTextType" minOccurs="0"/> <xsd:element name="Name" type="sdd-common:DisplayTextType" minOccurs="0" /> <xsd:element name="Version" type="sdd-common:VersionType" minOccurs="0"/> <xsd:element name="MaintenanceInformation" type="sdd-common:MaintenanceInformationType" minOccurs="0"/> <xsd:element name="BuildInformation" type="sdd-common:BuildInformationType" minOccurs="0"/> <xsd:element name="Manufacturer" type="sdd-common:ManufacturerType" minOccurs="0"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="softwareID" type="xsd:string" use="optional"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<IdentityType> | ||||
softwareID | xsd:string | Yes | ||
any | namespace="##other" | ? | ||
Description | <DisplayTextType> | Merge | ||
ShortDescription | <DisplayTextType> | Merge | ||
Name | <DisplayTextType> | Merge | ||
Version | <VersionType> | Merge | ||
MaintenanceInformation | <MaintenanceInformationType> | Merge | ||
BuildInformation | <BuildInformationType> | Merge | ||
Manufacturer | <ManufacturerType> | Merge | ||
any | namespace="##other" | ? |
<UUIDType>
<xsd:simpleType name="UUIDType"> <xsd:restriction base="xsd:hexBinary"> <xsd:length value="16"/> </xsd:restriction> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<UUIDType> | xsd:hexBinary | Yes |
Package Descriptor Schema Elements
DigestInfoGroup
<xsd:group name="DigestInfoGroup"> <xsd:sequence> <xsd:element ref="ds:DigestMethod"/> <xsd:element ref="ds:DigestValue"/> </xsd:sequence> </xsd:group>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
DigestInfoGroup | ||||
DigestMethod | <DigestMethodType> | Yes | ||
DigestValue | <DigestValueType> | Yes |
<SDDContentPurposeType>
<xsd:simpleType name="SDDContentPurposeType"> <xsd:restriction base="xsd:NCName"> <xsd:enumeration value="readMe"/> <xsd:enumeration value="endUserLicenseAgreement"/> <xsd:enumeration value="responseFile"/> <xsd:enumeration value="deploymentDescriptor"/> <xsd:enumeration value="packageDescriptor"/> <xsd:enumeration value="descriptorLanguageBundle"/> <xsd:enumeration value="content"/> </xsd:restriction> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<SDDContentPurposeType> | xsd:NCName | Yes |
<ContentPurposeType>
<xsd:simpleType name="ContentPurposeType"> <xsd:union memberTypes="sdd-pd:SDDContentPurposeType xsd:NCName"/> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ContentPurposeType> | Union Of: <SDDContentPurposeType> + xsd:NCName | Yes |
<ContentType>
<xsd:complexType name="ContentType"> <xsd:sequence> <xsd:group ref="sdd-pd:DigestInfoGroup" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="pathname" type="xsd:anyURI" use="required"/> <xsd:attribute name="purpose" type="sdd-pd:ContentPurposeType" default="content" use="optional"/> <xsd:attribute name="charEncoding" type="xsd:string" use="optional"/> <xsd:attribute name="length" type="xsd:nonNegativeInteger" use="optional"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ContentType> | ||||
DigestInfoGroup | DigestInfoGroup | No | ||
id | xsd:ID | Throw Away | ||
pathname | xsd:anyURI | Yes | ||
purpose | <ContentPurposeType> | Merge | ||
charEncoding | xsd:string | No | ||
length | xsd:nonNegativeInteger | No | ||
any | namespace="##other" | ? |
Notes:
If there are two matching pathnames, log a message to the user that the correct file needs to be chosen via a custom rule in order for DigestInfoGroup, charEncoding and length to be valid. The default rule will simply pick one, but it must pick DigestInfoGroup, charEncoding and length together as a set from one of the inputs.
<ContentsType>
<xsd:complexType name="ContentsType"> <xsd:sequence> <xsd:element name="Content" type="sdd-pd:ContentType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ContentsType> | ||||
Content | <ContentType> | Merge |
<SDDPackageTypeType>
<xsd:simpleType name="SDDPackageTypeType"> <xsd:restriction base="xsd:NCName"> <xsd:enumeration value="baseInstall"/> <xsd:enumeration value="baseUninstall"/> <xsd:enumeration value="configuration"/> <xsd:enumeration value="maintenance"/> <xsd:enumeration value="modification"/> <xsd:enumeration value="replacement"/> <xsd:enumeration value="localization"/> </xsd:restriction> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<SDDPackageTypeType> | xsd:NCName | Yes |
<ExtensiblePackageTypeType>
<xsd:simpleType name="ExtensiblePackageTypeType"> <xsd:union memberTypes="sdd-pd:SDDPackageTypeType xsd:NCName"/> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ExtensiblePackageTypeType> | Union Of: <SDDPackageTypeType> + xsd:NCName | Yes |
<PackageTypeType>
<xsd:simpleType name="PackageTypeType"> <xsd:list itemType="sdd-pd:ExtensiblePackageTypeType"/> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<PackageTypeType> | List Of: <ExtensiblePackageTypeType> | Merge |
<PackageIdentityType>
<xsd:complexType name="PackageIdentityType"> <xsd:complexContent> <xsd:extension base="sdd-common:IdentityType"> <xsd:attribute name="packageType" type="sdd-pd:PackageTypeType" default="baseInstall" use="optional"/> <xsd:attribute name="contentType" type="xsd:QName" use="optional"/> <xsd:attribute name="label" type="xsd:NCName" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<PackageIdentityType> | Extension Of: <IdentityType> | Merge | ||
packageType | <PackageTypeType> | Merge | ||
contentType | xsd:QName | Merge | ||
label | xsd:NCName | Merge |
<PackageDescriptorType>
<xsd:complexType name="PackageDescriptorType"> <xsd:sequence> <xsd:element name="PackageIdentity" type="sdd-pd:PackageIdentityType"/> <xsd:element name="Contents" type="sdd-pd:ContentsType"/> <xsd:element ref="ds:Signature" minOccurs="0"/> </xsd:sequence> <xsd:attributeGroup ref="sdd-common:DescriptorInfoGroup"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<PackageDescriptorType> | ||||
DescriptorInfoGroup | DescriptorInfoGroup | Merge | ||
PackageIdentity | <PackageIdentityType> | Merge | ||
Contents | <ContentsType> | Merge | ||
Signature | <SignatureType> | Merge |
Deployment Descriptor Schema Elements
DescriptionGroup
<xsd:group name="DescriptionGroup"> <xsd:sequence> <xsd:element name="Description" type="sdd-common:DisplayTextType"/> <xsd:element name="ShortDescription" type="sdd-common:DisplayTextType" minOccurs="0"/> </xsd:sequence> </xsd:group>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
DescriptionGroup | ||||
Description | <DisplayTextType> | Merge | ||
ShortDescription | <DisplayTextType> | Merge |
DisplayElementGroup
<xsd:group name="DisplayElementGroup"> <xsd:sequence> <xsd:element name="DisplayName" type="sdd-common:DisplayTextType" minOccurs="0"/> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> </xsd:sequence> </xsd:group>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
DisplayElementGroup | ||||
DisplayName | <DisplayTextType> | Merge | ||
DescriptionGroup | DescriptionGroup | Merge |
ResourceConstraintGroup
<xsd:group name="ResourceConstraintGroup"> <xsd:choice> <xsd:element name="CapacityConstraint" type="sdd-dd:CapacityConstraintType"/> <xsd:element name="ConsumptionConstraint" type="sdd-dd:ConsumptionConstraintType"/> <xsd:element name="PropertyConstraint" type="sdd-dd:PropertyConstraintType"/> <xsd:element name="VersionConstraint" type="sdd-dd:VersionConstraintType"/> <xsd:element name="UniquenessConstraint" type="sdd-dd:UniquenessConstraintType"/> <xsd:element name="RelationshipConstraint" type="sdd-dd:RelationshipConstraintType"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> </xsd:group>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
ResourceConstraintGroup | ||||
CapacityConstraint | <CapacityConstraintType> | Merge | ||
ConsumptionConstraint | <ConsumptionConstraintType> | Merge | ||
PropertyConstraint | <PropertyConstraintType> | Merge | ||
VersionConstraint | <VersionConstraintType> | Merge | ||
UniquenessConstraint | <UniquenessConstraintType> | Merge | ||
RelationshipConstraint | <RelationshipConstraintType> | Merge | ||
any | namespace="##other" | ? |
ContentListGroup
<xsd:group name="ContentListGroup"> <xsd:sequence> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="InstallableUnit" type="sdd-dd:InstallableUnitType"/> <xsd:element name="ConfigurationUnit" type="sdd-dd:ConfigurationUnitType"/> <xsd:element name="CompositeUnit" type="sdd-dd:CompositeUnitType"/> <xsd:element name="ContainedPackage" type="sdd-dd:ReferencedPackageType"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> </xsd:sequence> </xsd:group>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
ContentListGroup | ||||
InstallableUnit | <InstallableUnitType> | Merge | ||
ConfigurationUnit | <ConfigurationUnitType> | Merge | ||
CompositeUnit | <CompositeUnitType> | Merge | ||
RequiredBase | <RequiredBaseType> | Merge | ||
ContainedPackage | <ReferencedPackageType> | Merge | ||
any | namespace="##other" | ? |
<VariableExpressionType>
<xsd:simpleType name="VariableExpressionType"> <xsd:restriction base="xsd:token"> <xsd:pattern value="([^$]*($[^(])*($\([a-zA-Z_]+[0-9a-zA-Z_]*\))*)*"/> </xsd:restriction> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<VariableExpressionType> | xsd:token | Yes |
<PropertyType>
<xsd:complexType name="PropertyType"> <xsd:sequence> <xsd:element name="PropertyName" type="xsd:QName"/> <xsd:element name="Value" type="sdd-dd:VariableExpressionType"/> </xsd:sequence> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<PropertyType> | ||||
any | namespace="##other" | ? | ||
PropertyName | xsd:QName | Yes | ||
Value | <VariableExpressionType> | Merge |
<ResourceTypeNameType>
<xsd:simpleType name="ResourceTypeNameType"> <xsd:restriction base="xsd:QName"/> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
ResourceTypeNameType | xsd:QName | Yes |
<ResourceType>
<xsd:complexType name="ResourceType"> <xsd:sequence> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> <xsd:element name="Name" type="sdd-dd:VariableExpressionType" minOccurs="0" /> <xsd:element name="Property" type="sdd-dd:PropertyType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="HostedResource" type="sdd-dd:ResourceType" minOccurs="0" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="type" type="sdd-dd:ResourceTypeNameType" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ResourceType> | ||||
xsd:ID | Throw Away | |||
<ResourceTypeNameType> | Yes | |||
namespace="##other" | ? | |||
DescriptionGroup | Merge | |||
<VariableExpressionType> | Merge | |||
<PropertyType> | Merge | |||
<ResourceType> | Merge | |||
any | namespace="##other" | ? |
<TopologyType>
<xsd:complexType name="TopologyType"> <xsd:sequence> <xsd:element name="Resource" type="sdd-dd:ResourceType" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<TopologyType> | ||||
Resource | <ResourceType> | Merge | ||
any | namespace="##other" | ? |
<VersionValueType>
<xsd:complexType name="VersionValueType"> <xsd:sequence> <xsd:element name="Version" type="sdd-common:VersionType"/> <xsd:element name="FixName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<VersionValueType> | ||||
Version | <VersionType> | Yes | ||
FixName | xsd:string | Yes |
<MaxVersionType>
<xsd:complexType name="MaxVersionType"> <xsd:simpleContent> <xsd:extension base="sdd-common:VersionType"> <xsd:attribute name="inclusive" type="xsd:boolean" use="optional" default="false"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<MaxVersionType> | Extension Of: <VersionType> | Yes | ||
inclusive | xsd:boolean | Yes | ||
any | namespace="##other" | ? |
Notes:
If the inclusive attribute is not present, it's the same as if it is present with a value of false (since the default is false).
<VersionRangeType>
<xsd:complexType name="VersionRangeType"> <xsd:sequence> <xsd:element name="MinVersion" type="sdd-common:VersionType" minOccurs="0"/> <xsd:element name="MaxVersion" type="sdd-dd:MaxVersionType" minOccurs="0"/> <xsd:element name="FixName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<VersionRangeType> | ||||
MinVersion | <VersionType> | Yes | ||
MaxVersion | <MaxVersionType> | Yes | ||
FixName | xsd:string | ? |
<VersionConstraintValueType>
<xsd:complexType name="VersionConstraintValueType"> <xsd:sequence> <xsd:element name="Value" type="sdd-dd:VersionValueType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="Range" type="sdd-dd:VersionRangeType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<VersionConstraintValueType> | ||||
Value | <VersionValueType> | Merge | ||
Range | <VersionRangeType> | Merge |
<VersionConstraintType>
<xsd:complexType name="VersionConstraintType"> <xsd:sequence> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> <xsd:element name="Supported" type="sdd-dd:VersionConstraintValueType"/> <xsd:element name="Certified" type="sdd-dd:VersionConstraintValueType" minOccurs="0"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<VersionConstraintType> | ||||
DescriptionGroup | DescriptionGroup | Merge | ||
Supported | <VersionConstraintValueType> | Merge | ||
Certified | <VersionConstraintValueType> | Merge |
<PropertyMatchType>
<xsd:simpleType name="PropertyMatchType"> <xsd:restriction base="xsd:NCName"> <xsd:enumeration value="any"/> <xsd:enumeration value="all"/> </xsd:restriction> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<PropertyMatchType> | xsd:NCName | Yes |
<PropertyValueListType>
<xsd:complexType name="PropertyValueListType"> <xsd:sequence> <xsd:element name="Value" type="sdd-dd:VariableExpressionType" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="match" type="sdd-dd:PropertyMatchType" use="optional" default="any"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<PropertyValueListType> | ||||
match | <PropertyMatchType> | Yes | ||
any | namespace="##other" | ? | ||
Value | <VariableExpressionType> | Yes |
Notes:
There is no clean way to merge the list of Values, so if either the Value or match is different for a given PropertyName then the higher level type containing PropertyValueListType should be duplicated.
<ConditionalPropertyConstraintType>
<xsd:complexType name="ConditionalPropertyConstraintType"> <xsd:sequence> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> <xsd:element name="PropertyName" type="xsd:QName"/> <xsd:choice> <xsd:element name="Value" type="xsd:string"/> <xsd:element name="ListOfValues" type="sdd-dd:PropertyValueListType"/> </xsd:choice> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ConditionalPropertyConstraintType> | ||||
DescriptionGroup | DescriptionGroup | Merge | ||
PropertyName | xsd:QName | Yes | ||
Value | xsd:string | Yes | ||
ListOfValues | <PropertyValueListType> | Yes |
Notes:
<UniquenessConstraintType>
<xsd:complexType name="UniquenessConstraintType"> <xsd:sequence> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="distinctResourceRef" type="xsd:IDREF" use="required"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<UniquenessConstraintType> | ||||
distinctResourceRef | xsd:IDREF | Yes | ||
DescriptionGroup | DescriptionGroup | Merge |
Notes:
The comparison of distinceResourceRef involves comparing the Resource pointed to, not the reference itself.
<RelationshipConstraintType>
<xsd:complexType name="RelationshipConstraintType"> <xsd:sequence> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> <xsd:element name="Property" type="sdd-dd:PropertyType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="relatedResourceRef" type="xsd:IDREF" use="optional"/> <xsd:attribute name="type" type="xsd:QName" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<RelationshipConstraintType> | ||||
relatedResourceRef | xsd:IDREF | Yes | ||
type | xsd:QName | Yes | ||
any | namespace="##other" | ? | ||
DescriptionGroup | DescriptionGroup | Merge | ||
Property | <PropertyType> | Merge |
Notes:
The comparison of relatedResourceRef involves comparing the Resource pointed to, not the reference itself.
<ConditionalResourceConstraintType>
<xsd:complexType name="ConditionalResourceConstraintType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> <xsd:element name="Name" type="sdd-dd:VariableExpressionType" minOccurs="0" /> <xsd:element name="VersionConstraint" type="sdd-dd:VersionConstraintValueType" minOccurs="0"/> <xsd:element name="PropertyConstraint" type="sdd-dd:ConditionalPropertyConstraintType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="UniquenessConstraint" type="sdd-dd:UniquenessConstraintType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="RelationshipConstraint" type="sdd-dd:RelationshipConstraintType" minOccurs="0" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="resourceRef" type="xsd:IDREF" use="required"/> <xsd:attribute name="testValue" type="xsd:boolean" use="optional" default="true"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ConditionalResourceConstraintType> | ||||
id | xsd:ID | Throw Away | ||
resourceRef | xsd:IDREF | Yes | ||
testValue | xsd:boolean | Yes | ||
any | namespace="##other" | ? | ||
DisplayElementGroup | DisplayElementGroup | Merge | ||
Name | <VariableExpressionType> | Merge | ||
VersionConstraint | <VersionConstraintValueType> | Merge | ||
PropertyConstraint | <ConditionalPropertyConstraintType> | Merge | ||
UniquenessConstraint | <UniquenessConstraintType> | Merge | ||
RelationshipConstraint | <RelationshipConstraintType> | Merge | ||
any | namespace="##other" | ? |
Notes:
The comparison of resourceRef involves comparing the Resource pointed to, not the reference itself.
When comparing testValue, a missing value is the same as a true value since true is the default.
<AlternativeConditionalType>
<xsd:complexType name="AlternativeConditionalType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> <xsd:element name="ResourceConstraint" type="sdd-dd:ConditionalResourceConstraintType" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<AlternativeConditionalType> | ||||
id | xsd:ID | Throw Away | ||
any | namespace="##other" | ? | ||
DisplayElementGroup | DisplayElementGroup | Merge | ||
ResourceConstraint | <ConditionalResourceConstraintType> | Merge | ||
any | namespace="##other" | ? |
<OperationType>
<xsd:simpleType name="OperationType"> <xsd:restriction base="xsd:NCName"> <xsd:enumeration value="configure"/> <xsd:enumeration value="install"/> <xsd:enumeration value="repair"/> <xsd:enumeration value="undo"/> <xsd:enumeration value="update"/> <xsd:enumeration value="use"/> <xsd:enumeration value="uninstall"/> </xsd:restriction> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<OperationType> | xsd:NCName | Yes |
<OperationListType>
<xsd:simpleType name="OperationListType"> <xsd:list itemType="sdd-dd:OperationType"/> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<OperationListType> | List Of:<OperationType> | Yes |
<ConditionType>
<xsd:complexType name="ConditionType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> <xsd:choice> <xsd:element name="Alternative" type="sdd-dd:AlternativeConditionalType" maxOccurs="unbounded"/> <xsd:sequence> <xsd:element name="ResourceConstraint" type="sdd-dd:ConditionalResourceConstraintType" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:choice> </xsd:sequence> <xsd:attribute name="operation" type="sdd-dd:OperationListType" use="optional"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ConditionType> | ||||
operation | <OperationListType> | Yes | ||
any | namespace="##other" | ? | ||
DisplayElementGroup | DisplayElementGroup | Merge | ||
Alternative | <AlternativeConditionalType> | Merge | ||
ResourceConstraint | <ConditionalResourceConstraintType> | Merge | ||
any | namespace="##other" | ? |
Notes:
May need to look at operation here when deciding what kind of ContentUnits to output in the merged descriptor.
<BaseParameterType>
<xsd:complexType name="BaseParameterType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="defaultValue" type="sdd-dd:VariableExpressionType" use="optional"/> <xsd:attribute name="sensitive" type="xsd:boolean" use="optional" default="false"/> <xsd:attribute name="required" type="xsd:boolean" use="optional" default="true"/> <xsd:attribute name="operation" type="sdd-dd:OperationListType" use="optional"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<BaseParameterType> | ||||
id | xsd:ID | Throw Aawy | ||
defaultValue | <VariableExpressionType> | Yes | ||
sensitive | xsd:boolean | Yes | ||
required | xsd:boolean | Yes | ||
operation | <OperationListType> | Yes | ||
DisplayElementGroup | DisplayElementGroup | Merge |
<BoundaryType>
<xsd:complexType name="BoundaryType"> <xsd:sequence> <xsd:element name="LowerBound" type="sdd-dd:VariableExpressionType" minOccurs="0"/> <xsd:element name="UpperBound" type="sdd-dd:VariableExpressionType" minOccurs="0"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<BoundaryType> | ||||
LowerBound | <VariableExpressionType> | Yes | ||
UpperBound | <VariableExpressionType> | Yes |
<IntegerParameterType>
<xsd:complexType name="IntegerParameterType"> <xsd:complexContent> <xsd:extension base="sdd-dd:BaseParameterType"> <xsd:sequence> <xsd:element name="Bounds" type="sdd-dd:BoundaryType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<IntegerParameterType> | Extension Of:<BaseParameterType> | |||
any | namespace="##other" | ? | ||
Bounds | <BoundaryType> | Merge |
<StringCaseType>
<xsd:simpleType name="StringCaseType"> <xsd:restriction base="xsd:NCName"> <xsd:enumeration value="lower"/> <xsd:enumeration value="upper"/> <xsd:enumeration value="mixed"/> </xsd:restriction> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<StringCaseType> | xsd:NCName | Yes |
<StringParameterType>
<xsd:complexType name="StringParameterType"> <xsd:complexContent> <xsd:extension base="sdd-dd:BaseParameterType"> <xsd:sequence> <xsd:element name="ValidValue" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="minLength" type="xsd:positiveInteger" use="optional"/> <xsd:attribute name="maxLength" type="xsd:positiveInteger" use="optional"/> <xsd:attribute name="case" type="sdd-dd:StringCaseType" use="optional" default="mixed"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<StringParameterType> | Extension Of:<BaseParameterType> | |||
minLength | xsd:positiveInteger | Merge | ||
maxLength | xsd:positiveInteger | Merge | ||
case | <StringCaseType> | Merge | ||
any | namespace="##other" | ? | ||
ValidValue | xsd:string | Merge |
Notes:
A warning should be logged describing the way minLength, maxLength and ValueValue are merged. The default is to combine all ValueValues, take the longest minLength and the shortest maxLength. If minLength ends up longer than maxLength, then throw an error.
For case, if the values don't match then the output becomes mixed. So, upper and lower would merge to mixed, as would upper and mixed or lower and mixed.
<BooleanParameterType>
<xsd:complexType name="BooleanParameterType"> <xsd:complexContent> <xsd:extension base="sdd-dd:BaseParameterType"> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<BooleanParameterType> | Extension Of:<BaseParameterType> | |||
any | namespace="##other" | ? |
<URIParameterType>
<xsd:complexType name="URIParameterType"> <xsd:complexContent> <xsd:extension base="sdd-dd:BaseParameterType"> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<URIParameterType> | Extension Of:<BaseParameterType> | |||
any | namespace="##other" | ? |
<ParametersType>
<xsd:complexType name="ParametersType"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="IntegerParameter" type="sdd-dd:IntegerParameterType"/> <xsd:element name="StringParameter" type="sdd-dd:StringParameterType"/> <xsd:element name="BooleanParameter" type="sdd-dd:BooleanParameterType"/> <xsd:element name="URIParameter" type="sdd-dd:URIParameterType"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ParametersType> | ||||
IntegerParameter | <IntegerParameterType> | Merge | ||
StringParameter | <StringParameterType> | Merge | ||
BooleanParameter | <BooleanParameterType> | Merge | ||
URIParameter | <URIParameterType> | Merge | ||
any | namespace="##other" | ? |
<BaseVariableType>
<xsd:complexType name="BaseVariableType"> <xsd:sequence> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="sensitive" type="xsd:boolean" use="optional" default="false"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<BaseVariableType> | ||||
id | xsd:ID | Throw Away | ||
sensitive | xsd:boolean | Yes | ||
DescriptionGroup | DescriptionGroup | Merge |
<ResourcePropertyType>
<xsd:complexType name="ResourcePropertyType"> <xsd:complexContent> <xsd:extension base="sdd-dd:BaseVariableType"> <xsd:attribute name="resourceRef" type="xsd:IDREF" use="required"/> <xsd:attribute name="propertyName" type="xsd:QName" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ResourcePropertyType> | Extension Of:<BaseVariableType> | |||
resourceRef | xsd:IDREF | Yes | ||
propertyName | xsd:QName | Yes | ||
any | namespace="##other" | ? |
Notes:
Compare the Resource pointed to by the resourceRef, not the reference itself.
<ConditionalDerivedVariableExpressionType>
<xsd:complexType name="ConditionalDerivedVariableExpressionType"> <xsd:sequence> <xsd:element name="Condition" type="sdd-dd:ConditionType"/> <xsd:element name="Expression" type="sdd-dd:VariableExpressionType"/> </xsd:sequence> <xsd:attribute name="priority" type="xsd:positiveInteger" use="optional" default="1"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ConditionalDerivedVariableExpressionType> | ||||
priority | xsd:positiveInteger | Merge | ||
Condition | <ConditionType> | Yes | ||
Expression | <VariableExpressionType> | Yes |
Merging Algorithm
Walk down the left list, checking if each item is equal to anything in the right list. If an item is equal to something in the right list, replace the left item with the item from the right and everything in the right list above that item (excluding items that have already been copied to the left list). Continue until reaching the end of the left list. If any un-copied items remain in the right list, append them to the end of the left list.
There are two special cases that have to be handled slightly differently. The first case is when an item in one list is equal to more than one item in the other list. Merging should take place as normal, but all priorities should be removed from the final list. This case is an error in the input so a warning should be logged. The second case is when an item in the left list is equal to an item in the right list that has already been copied to the left list. Normal merging should continue and the priorities should be removed from the final list.
Here's what the lists above would look like after merging:
<DerivedVariableType>
<xsd:complexType name="DerivedVariableType"> <xsd:complexContent> <xsd:extension base="sdd-dd:BaseVariableType"> <xsd:choice> <xsd:element name="Expression" type="sdd-dd:VariableExpressionType"/> <xsd:element name="ConditionalExpression" type="sdd-dd:ConditionalDerivedVariableExpressionType" maxOccurs="unbounded"/> </xsd:choice> </xsd:extension> </xsd:complexContent> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<DerivedVariableType> | Extension Of:<BaseVariableType> | |||
Expression | <VariableExpressionType> | Yes | ||
ConditionalExpression | <ConditionalDerivedVariableExpressionType> | Merge |
<VariablesType>
<xsd:complexType name="VariablesType"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="Parameters" type="sdd-dd:ParametersType"/> <xsd:element name="ResourceProperty" type="sdd-dd:ResourcePropertyType"/> <xsd:element name="DerivedVariable" type="sdd-dd:DerivedVariableType"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<VariablesType> | ||||
Parameters | <ParametersType> | Merge | ||
ResourceProperty | <ResourcePropertyType> | Merge | ||
DerivedVariable | <DerivedVariableType> | Merge | ||
any | namespace="##other" | ? |
<RequiredBaseConstraintType>
<xsd:complexType name="RequiredBaseConstraintType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> <xsd:element name="Name" type="sdd-dd:VariableExpressionType" minOccurs="0" /> <xsd:element name="VersionConstraint" type="sdd-dd:VersionConstraintType" minOccurs="0"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="resourceRef" type="xsd:IDREF" use="required"/> <xsd:attribute name="testValue" type="xsd:boolean" use="optional" default="true"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<RequiredBaseConstraintType> | ||||
id | xsd:ID | Throw Away | ||
resourceRef | xsd:IDREF | Yes | ||
testValue | xsd:boolean | Yes | ||
any | namespace="##other" | ? | ||
DisplayElementGroup | DisplayElementGroup | Merge | ||
Name | <VariableExpressionType> | Merge | ||
VersionConstraint | <VersionConstraintType> | Yes | ||
any | namespace="##other" | ? |
Notes:
Compare the Resources pointed to by the resourceRef, not the references themselves.
<AlternativeRequiredBaseConstraintType>
<xsd:complexType name="AlternativeRequiredBaseConstraintType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> <xsd:element name="ResourceConstraint" type="sdd-dd:RequiredBaseConstraintType" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="priority" type="xsd:positiveInteger" use="optional" default="1"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<AlternativeRequiredBaseConstraintType> | ||||
id | xsd:ID | Throw Away | ||
priority | xsd:positiveInteger | Merge | ||
any | namespace="##other" | ? | ||
DisplayElementGroup | DisplayElementGroup | Merge | ||
ResourceConstraint | <RequiredBaseConstraintType> | Yes | ||
any | namespace="##other" | ? |
Notes:
See notes in <ConditionalDerivedVariableExpressionType>
<RequiredBaseType>
<xsd:complexType name="RequiredBaseType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> <xsd:choice> <xsd:element name="Alternative" type="sdd-dd:AlternativeRequiredBaseConstraintType" maxOccurs="unbounded"/> <xsd:sequence> <xsd:element name="ResourceConstraint" type="sdd-dd:RequiredBaseConstraintType" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:choice> </xsd:sequence> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<RequiredBaseType> | ||||
any | namespace="##other" | ? | ||
DisplayElementGroup | DisplayElementGroup | Merge | ||
Alternative | <AlternativeRequiredBaseConstraintType> | Merge | ||
ResourceConstraint | <RequiredBaseConstraintType> | Merge | ||
any | namespace="##other" | ? |
<CapacityValueType>
<xsd:complexType name="CapacityValueType"> <xsd:sequence> <xsd:element name="Minimum" type="sdd-dd:VariableExpressionType" minOccurs="0"/> <xsd:element name="Maximum" type="sdd-dd:VariableExpressionType" minOccurs="0"/> <xsd:element name="MinimumRecommended" type="sdd-dd:VariableExpressionType" minOccurs="0"/> <xsd:element name="MaximumRecommended" type="sdd-dd:VariableExpressionType" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="unit" type="xsd:string" use="optional"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<CapacityValueType> | ||||
unit | xsd:string | Merge | ||
any | namespace="##other" | ? | ||
Minimum | <VariableExpressionType> | Merge | ||
Maximum | <VariableExpressionType> | Merge | ||
MinimumRecommended | <VariableExpressionType> | Merge | ||
MaximumRecommended | <VariableExpressionType> | Merge |
Notes:
A merge can take place in the case where the units are the same or the units are different and the Aggregator can understand and covert between the units (like MB and KB). If the units are both different and not known the the Aggregator then the CapacityValueType is marked not equal and merging takes place farther up the tree.
When merging, use the highest Minimum and highest Maximum.
<CapacityConstraintType>
<xsd:complexType name="CapacityConstraintType"> <xsd:sequence> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> <xsd:element name="PropertyName" type="xsd:QName"/> <xsd:element name="Value" type="sdd-dd:CapacityValueType"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<CapacityConstraintType> | ||||
DescriptionGroup | DescriptionGroup | Merge | ||
PropertyName | xsd:QName | Yes | ||
Value | <CapacityValueType> | Merge |
<ConsumptionConstraintValueType>
<xsd:complexType name="ConsumptionConstraintValueType"> <xsd:simpleContent> <xsd:extension base="sdd-dd:VariableExpressionType"> <xsd:attribute name="unit" type="xsd:string" use="optional"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ConsumptionConstraintValueType> | Extension Of: <VariableExpressionType> | |||
unit | xsd:string | Merge | ||
any | namespace="##other" | ? |
<ConsumptionConstraintType>
<xsd:complexType name="ConsumptionConstraintType"> <xsd:sequence> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> <xsd:element name="PropertyName" type="xsd:QName"/> <xsd:element name="Value" type="sdd-dd:ConsumptionConstraintValueType"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ConsumptionConstraintType> | ||||
DescriptionGroup | DescriptionGroup | Merge | ||
PropertyName | xsd:QName | Yes | ||
Value | <ConsumptionConstraintValueType> | Merge |
<PropertyConstraintType>
<xsd:complexType name="PropertyConstraintType"> <xsd:sequence> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> <xsd:element name="PropertyName" type="xsd:QName"/> <xsd:choice> <xsd:element name="Value" type="sdd-dd:VariableExpressionType"/> <xsd:element name="ListOfValues" type="sdd-dd:PropertyValueListType"/> </xsd:choice> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<PropertyConstraintType> | ||||
DescriptionGroup | DescriptionGroup | Merge | ||
PropertyName | xsd:QName | Yes | ||
Value | <VariableExpressionType> | Merge | ||
ListOfValues | <PropertyValueListType> | Merge |
Notes:
If merging two or more Values, they become a ListOfValues instead.
<RequirementResourceConstraintType>
<xsd:complexType name="RequirementResourceConstraintType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> <xsd:element name="Name" type="sdd-dd:VariableExpressionType" minOccurs="0" /> <xsd:group ref="sdd-dd:ResourceConstraintGroup" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="resourceRef" type="xsd:IDREF" use="required"/> <xsd:attribute name="testValue" type="xsd:boolean" use="optional" default="true"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<RequirementResourceConstraintType> | ||||
id | xsd:ID | Throw Away | ||
resourceRef | xsd:IDREF | Yes | ||
testValue | xsd:boolean | Yes | ||
any | namespace="##other" | ? | ||
DisplayElementGroup | DisplayElementGroup | Merge | ||
Name | <VariableExpressionType> | Merge | ||
ResourceConstraintGroup | ResourceConstraintGroup | Yes |
<DependencyType>
<xsd:simpleType name="DependencyType"> <xsd:restriction base="xsd:NCName"> <xsd:enumeration value="pre-req"/> <xsd:enumeration value="co-req"/> <xsd:enumeration value="ex-req"/> </xsd:restriction> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<DependencyType> | xsd:NCName | Yes{Center} |
<InternalDependencyType>
<xsd:complexType name="InternalDependencyType"> <xsd:sequence> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="type" type="sdd-dd:DependencyType" use="optional" default="pre-req"/> <xsd:attribute name="contentElementRef" type="xsd:IDREF" use="required"/> <xsd:attribute name="contentElementRefOperation" type="sdd-dd:OperationListType" use="optional"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<InternalDependencyType> | ||||
type | <DependencyType> | Yes | ||
contentElementRef | xsd:IDREF | Yes | ||
contentElementRefOperation | <OperationListType> | Yes | ||
any | namespace="##other" | ? | ||
DescriptionGroup | DescriptionGroup | Merge |
Notes:
Compare the ContentElement pointed to by the contentElementRef, not the reference itself.
<AlternativeRequirementType>
<xsd:complexType name="AlternativeRequirementType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="ResourceConstraint" type="sdd-dd:RequirementResourceConstraintType"/> <xsd:element name="Dependency" type="sdd-dd:InternalDependencyType"/> <xsd:any namespace="##other" processContents="lax"/> </xsd:choice> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="priority" type="xsd:positiveInteger" use="optional" default="1"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<AlternativeRequirementType> | ||||
id | xsd:ID | Throw Away | ||
priority | xsd:positiveInteger | Merge | ||
any | namespace="##other" | ? | ||
DisplayElementGroup | DisplayElementGroup | Merge | ||
ResourceConstraint | <RequirementResourceConstraintType> | Yes | ||
Dependency | <InternalDependencyType> | Yes | ||
any | namespace="##other" | ? |
Notes:
See notes in <ConditionalDerivedVariableExpressionType> for merging priorities.
<RequirementType>
<xsd:complexType name="RequirementType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> <xsd:choice> <xsd:element name="Alternative" type="sdd-dd:AlternativeRequirementType" maxOccurs="unbounded"/> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="ResourceConstraint" type="sdd-dd:RequirementResourceConstraintType"/> <xsd:element name="Dependency" type="sdd-dd:InternalDependencyType"/> <xsd:any namespace="##other" processContents="lax"/> </xsd:choice> </xsd:choice> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="operation" type="sdd-dd:OperationListType" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<RequirementType> | ||||
id | xsd:ID | Throw Away | ||
operation | <OperationListType> | Yes | ||
any | namespace="##other" | ? | ||
DisplayElementGroup | DisplayElementGroup | Merge | ||
Alternative | <AlternativeRequirementType> | Merge | ||
ResourceConstraint | <RequirementResourceConstraintType> | Yes | ||
Dependency | <InternalDependencyType> | Yes | ||
any | namespace="##other" | ? |
<RequirementsType>
<xsd:complexType name="RequirementsType"> <xsd:sequence> <xsd:element name="Requirement" type="sdd-dd:RequirementType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<RequirementsType> | ||||
Requirement | <RequirementType> | Merge |
<LanguageType>
<xsd:complexType name="LanguageType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="type" type="xsd:language" use="required"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<LanguageType> | ||||
type | xsd:language | Yes | ||
DisplayElementGroup | DisplayElementGroup | Merge |
<LanguagesType>
<xsd:complexType name="LanguagesType"> <xsd:sequence> <xsd:element name="Language" type="sdd-dd:LanguageType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<LanguagesType> | ||||
Language | <LanguageType> | Merge |
<SDDCompletionTypeNamesType>
<xsd:simpleType name="SDDCompletionTypeNamesType"> <xsd:restriction base="xsd:NCName"> <xsd:enumeration value="restartRequiredImmediately"/> <xsd:enumeration value="restartRequiredBeforeUse"/> <xsd:enumeration value="restartOccurs"/> <xsd:enumeration value="logoffRequired"/> </xsd:restriction> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<SDDCompletionTypeNamesType> | xsd:NCName | Yes |
<DescriptionGroup>
<xsd:simpleType name="CompletionTypeNamesType"> <xsd:union memberTypes="sdd-dd:SDDCompletionTypeNamesType xsd:NCName" /> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<DescriptionGroup> | Union Of: <SDDCompletionTypeNamesType> + xsd:NCName | Yes |
<CompletionType>
<xsd:complexType name="CompletionType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> <xsd:element name="Condition" type="sdd-dd:ConditionType" minOccurs="0"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="type" type="sdd-dd:CompletionTypeNamesType" use="required"/> <xsd:attribute name="resourceRef" type="xsd:IDREF" use="required"/> <xsd:attribute name="operation" type="sdd-dd:OperationListType" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<CompletionType> | ||||
type | <CompletionTypeNamesType> | Yes | ||
resourceRef | xsd:IDREF | Yes | ||
operation | <OperationListType> | Yes | ||
any | namespace="##other" | ? | ||
DisplayElementGroup | <DisplayElementGroup> | Merge | ||
Condition | <ConditionType> | Merge | ||
any | namespace="##other" | ? |
Notes:
Compare the Resources pointed to by resourceRef, not the references themselves.
<ResultingPropertyType>
<xsd:complexType name="ResultingPropertyType"> <xsd:sequence> <xsd:element name="PropertyName" type="xsd:string"/> <xsd:element name="Value" type="sdd-dd:VariableExpressionType"/> </xsd:sequence> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ResultingPropertyType> | ||||
any | namespace="##other" | ? | ||
PropertyName | xsd:string | Yes | ||
Value | <VariableExpressionType> | Merge |
<RelationshipType>
<xsd:complexType name="RelationshipType"> <xsd:sequence> <xsd:element name="Property" type="sdd-dd:PropertyType" minOccurs="0" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="relatedResourceRef" type="xsd:IDREF" use="required"/> <xsd:attribute name="type" type="xsd:QName" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<RelationshipType> | ||||
relatedResourceRef | xsd:IDREF | Yes | ||
type | xsd:QName | Yes | ||
any | namespace="##other" | ? | ||
Property | <PropertyType> | Merge | ||
any | namespace="##other" | ? |
Notes:
Compare the Resources pointed to by the relatedResourceRef, not the references themselves.
<ResultingResourceType>
<xsd:complexType name="ResultingResourceType"> <xsd:sequence> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> <xsd:element name="Condition" type="sdd-dd:ConditionType" minOccurs="0"/> <xsd:element name="Name" type="sdd-dd:VariableExpressionType" minOccurs="0" /> <xsd:element name="Version" type="sdd-common:VersionType" minOccurs="0"/> <xsd:element name="FixName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="Property" type="sdd-dd:ResultingPropertyType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="Relationship" type="sdd-dd:RelationshipType" minOccurs="0" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="resourceRef" type="xsd:IDREF" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ResultingResourceType> | ||||
resourceRef | xsd:IDREF | Yes | ||
any | namespace="##other" | ? | ||
DescriptionGroup | DescriptionGroup | Merge | ||
Condition | <ConditionType> | Yes | ||
Name | <VariableExpressionType> | Merge | ||
Version | <VersionType> | Yes | ||
FixName | xsd:string | Merge | ||
Property | <ResultingPropertyType> | Merge | ||
Relationship | <RelationshipType> | Merge | ||
any | namespace="##other" | ? |
Notes:
Compare the Resources pointed to by the resourceRefs, not the references themselves.
<ResultingChangeType>
<xsd:complexType name="ResultingChangeType"> <xsd:sequence> <xsd:group ref="sdd-dd:DescriptionGroup" minOccurs="0"/> <xsd:element name="Condition" type="sdd-dd:ConditionType" minOccurs="0"/> <xsd:element name="Name" type="sdd-dd:VariableExpressionType" minOccurs="0" /> <xsd:element name="Property" type="sdd-dd:ResultingPropertyType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="Relationship" type="sdd-dd:RelationshipType" minOccurs="0" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="resourceRef" type="xsd:IDREF" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ResultingChangeType> | ||||
resourceRef | xsd:IDREF | Yes | ||
any | namespace="##other" | ? | ||
DescriptionGroup | DescriptionGroup | Merge | ||
Condition | <ConditionType> | Yes | ||
Name | <VariableExpressionType> | Merge | ||
Property | <ResultingPropertyType> | Merge | ||
Relationship | <RelationshipType> | Merge | ||
any | namespace="##other" | ? |
Notes:
Compare the Resources pointed to by the resourceRefs, not the references themselves.
<ArgumentType>
<xsd:complexType name="ArgumentType"> <xsd:attribute name="name" type="sdd-dd:VariableExpressionType" use="required"/> <xsd:attribute name="value" type="sdd-dd:VariableExpressionType" use="optional"/> <xsd:attribute name="required" type="xsd:boolean" use="optional" default="true"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ArgumentType> | ||||
name | <VariableExpressionType> | Yes | ||
value | <VariableExpressionType> | Marge | ||
required | xsd:boolean | Merge | ||
any | namespace="##other" | ? |
Notes:
Merge required by performing a logical OR.
<ArgumentListType>
<xsd:complexType name="ArgumentListType"> <xsd:sequence> <xsd:element name="Argument" type="sdd-dd:ArgumentType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ArgumentListType> | ||||
Argument | <ArgumentType> | Merge |
<OutputVariableType>
<xsd:complexType name="OutputVariableType"> <xsd:complexContent> <xsd:extension base="sdd-dd:BaseVariableType"> <xsd:attribute name="outputParameterName" type="xsd:NCName" use="optional"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<OutputVariableType> | Extension Of:<BaseVariableType> | |||
outputParameterName | xsd:NCName | Yes | ||
any | namespace="##other" | ? |
<OutputVariableListType>
<xsd:complexType name="OutputVariableListType"> <xsd:sequence> <xsd:element name="OutputVariable" type="sdd-dd:OutputVariableType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<OutputVariableListType> | ||||
OutputVariable | <OutputVariableType> | Merge |
<SubstitutionType>
<xsd:complexType name="SubstitutionType"> <xsd:sequence> <xsd:element name="Pattern" type="xsd:string"/> <xsd:element name="Value" type="sdd-dd:VariableExpressionType"/> </xsd:sequence> <xsd:attribute name="limit" type="xsd:positiveInteger" use="optional"/> <xsd:attribute name="required" type="xsd:boolean" use="optional" default="true"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<SubstitutionType> | ||||
limit | xsd:positiveInteger | Merge | ||
required | xsd:boolean | Merge | ||
any | namespace="##other" | ? | ||
Pattern | xsd:string | Yes | ||
Value | <VariableExpressionType> | Yes |
Notes:
Merge required by using a logical AND.
<ArtifactTypeNameType>
<xsd:simpleType name="ArtifactTypeNameType"> <xsd:restriction base="xsd:QName"/> </xsd:simpleType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ArtifactTypeNameType> | xsd:QName | Yes |
<AdditionalContentType>
<xsd:complexType name="AdditionalContentType"> <xsd:sequence> <xsd:element name="Substitution" type="sdd-dd:SubstitutionType" minOccurs="0" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="contentRef" type="xsd:token" use="required"/> <xsd:attribute name="type" type="sdd-dd:ArtifactTypeNameType" use="optional"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<AdditionalContentType> | ||||
contentRef | xsd:token | Yes | ||
type | <ArtifactTypeNameType> | Merge | ||
any | namespace="##other" | ? | ||
Substitution | <SubstitutionType> | Merge | ||
any | namespace="##other" | ? |
Notes:
Compare the Content pointed to by contentRef, not the references themselves.
When merging, type and contentRef must stay together as a pair. So, whichever contentRef is kept, the associated type must be kept.
<ArtifactType>
<xsd:complexType name="ArtifactType"> <xsd:sequence> <xsd:element name="Arguments" type="sdd-dd:ArgumentListType" minOccurs="0"/> <xsd:element name="OutputVariables" type="sdd-dd:OutputVariableListType" minOccurs="0"/> <xsd:element name="AdditionalContent" type="sdd-dd:AdditionalContentType" minOccurs="0" maxOccurs="unbounded"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="contentRef" type="xsd:token" use="optional"/> <xsd:attribute name="resourceRef" type="xsd:IDREF" use="optional"/> <xsd:attribute name="type" type="sdd-dd:ArtifactTypeNameType" use="optional"/> <xsd:attribute name="weight" type="xsd:positiveInteger" use="optional"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ArtifactType> | ||||
contentRef | xsd:token | Yes | ||
resourceRef | xsd:IDREF | Yes | ||
type | <ArtifactTypeNameType> | Merge | ||
weight | xsd:positiveInteger | Merge | ||
any | namespace="##other" | ? | ||
Arguments | <ArgumentListType> | Merge | ||
OutputVariables | <OutputVariableListType> | Merge | ||
AdditionalContent | <AdditionalContentType> | Merge | ||
any | namespace="##other" | ? |
Notes:
If two weights are different (which means two inputs think the same Artifact takes two different times to install), then log a warning and do not include weight in the ouput.
When merging, type must go along as a pair with the contentRef or resourceRef that it's associated with.
When comparing conrentRef or resourceRef, compare the element pointed to instead of the references themselves.
<InstallationArtifactsType>
<xsd:complexType name="InstallationArtifactsType"> <xsd:sequence> <xsd:element name="InstallArtifact" type="sdd-dd:ArtifactType" minOccurs="0"/> <xsd:element name="UpdateArtifact" type="sdd-dd:ArtifactType" minOccurs="0"/> <xsd:element name="UndoArtifact" type="sdd-dd:ArtifactType" minOccurs="0"/> <xsd:element name="UninstallArtifact" type="sdd-dd:ArtifactType" minOccurs="0"/> <xsd:element name="RepairArtifact" type="sdd-dd:ArtifactType" minOccurs="0"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<InstallationArtifactsType> | ||||
InstallArtifact | <ArtifactType> | Merge | ||
UpdateArtifact | <ArtifactType> | Merge | ||
UndoArtifact | <ArtifactType> | Merge | ||
UninstallArtifact | <ArtifactType> | Merge | ||
RepairArtifact | <ArtifactType> | Merge | ||
any | namespace="##other" | ? |
<InstallableUnitType>
<xsd:complexType name="InstallableUnitType"> <xsd:sequence> <xsd:element name="Identity" type="sdd-common:IdentityType" minOccurs="0"/> <xsd:element name="Condition" type="sdd-dd:ConditionType" minOccurs="0"/> <xsd:element name="Variables" type="sdd-dd:VariablesType" minOccurs="0"/> <xsd:element name="RequiredBase" type="sdd-dd:RequiredBaseType" minOccurs="0"/> <xsd:element name="Requirements" type="sdd-dd:RequirementsType" minOccurs="0"/> <xsd:element name="Languages" type="sdd-dd:LanguagesType" minOccurs="0"/> <xsd:element name="Completion" type="sdd-dd:CompletionType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="ResultingResource" type="sdd-dd:ResultingResourceType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="ResultingChange" type="sdd-dd:ResultingChangeType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="Artifacts" type="sdd-dd:InstallationArtifactsType"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="targetResourceRef" type="xsd:IDREF" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<InstallableUnitType> | ||||
id | xsd:ID | Throw Away | ||
targetResourceRef | xsd:IDREF | Yes | ||
any | namespace="##other" | ? | ||
Identity | <IdentityType> | Merge | ||
Condition | <ConditionType> | Merge | ||
Variables | <VariablesType> | Merge | ||
RequiredBase | <RequiredBaseType> | Merge | ||
Requirements | <RequirementsType> | Merge | ||
Languages | <LanguagesType> | Merge | ||
Completion | <CompletionType> | Merge | ||
ResultingResource | <ResultingResourceType> | Yes | ||
ResultingChange | <ResultingChangeType> | Yes | ||
Artifacts | <InstallationArtifactsType> | No | ||
any | namespace="##other" | ? |
Notes:
When comparing targetResourceRefs, compare the TargetResources pointed to instead of the targetResourceRefs themselves.
Artifacts, ResultingResource and ResultingChange must all stay together as a set. If ResultingResource and ResultingChange from two InstallableUnits match but the Artifacts are different, pick one Artifacts and log a warning.
<ConfigurationArtifactsType>
<xsd:complexType name="ConfigurationArtifactsType"> <xsd:sequence> <xsd:element name="ConfigArtifact" type="sdd-dd:ArtifactType" minOccurs="0"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ConfigurationArtifactsType> | ||||
ConfigArtifact | <ArtifactType> | Yes | ||
any | namespace="##other" | ? |
<ConfigurationUnitType>
<xsd:complexType name="ConfigurationUnitType"> <xsd:sequence> <xsd:element name="Identity" type="sdd-common:IdentityType" minOccurs="0"/> <xsd:element name="Condition" type="sdd-dd:ConditionType" minOccurs="0"/> <xsd:element name="Variables" type="sdd-dd:VariablesType" minOccurs="0"/> <xsd:element name="Requirements" type="sdd-dd:RequirementsType" minOccurs="0"/> <xsd:element name="Completion" type="sdd-dd:CompletionType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="ResultingChange" type="sdd-dd:ResultingChangeType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="Artifacts" type="sdd-dd:ConfigurationArtifactsType"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="targetResourceRef" type="xsd:IDREF" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<ConfigurationUnitType> | ||||
id | xsd:ID | Throw Away | ||
targetResourceRef | xsd:IDREF | Yes | ||
any | namespace="##other" | ? | ||
Identity | <IdentityType> | Merge | ||
Condition | <ConditionType> | Merge | ||
Variables | <VariablesType> | Merge | ||
Requirements | <RequirementsType> | Merge | ||
Completion | <CompletionType> | Merge | ||
ResultingChange | <ResultingChangeType> | Yes | ||
Artifacts | <ConfigurationArtifactsType> | No | ||
any | namespace="##other" | ? |
Notes:
When comparing targetResourceRefs, compare the TargetResources pointed to instead of the tergerResourceRefs themselves.
<LocalizationUnitType>
<xsd:complexType name="LocalizationUnitType"> <xsd:sequence> <xsd:element name="Identity" type="sdd-common:IdentityType" minOccurs="0"/> <xsd:element name="Condition" type="sdd-dd:ConditionType" minOccurs="0"/> <xsd:element name="Variables" type="sdd-dd:VariablesType" minOccurs="0"/> <xsd:element name="RequiredBase" type="sdd-dd:RequiredBaseType" minOccurs="0"/> <xsd:element name="Requirements" type="sdd-dd:RequirementsType" minOccurs="0"/> <xsd:element name="Languages" type="sdd-dd:LanguagesType" minOccurs="0"/> <xsd:element name="Completion" type="sdd-dd:CompletionType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="LocalizationBase" type="sdd-dd:RequiredBaseType" minOccurs="0"/> <xsd:element name="ResultingResource" type="sdd-dd:ResultingResourceType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="Artifacts" type="sdd-dd:InstallationArtifactsType"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="targetResourceRef" type="xsd:IDREF" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<LocalizationUnitType> | ||||
id | xsd:ID | Throw Away | ||
targetResourceRef | xsd:IDREF | Yes | ||
any | namespace="##other" | ? | ||
Identity | <IdentityType> | Merge | ||
Condition | <ConditionType> | Merge | ||
Variables | <VariablesType> | Merge | ||
RequiredBase | <RequiredBaseType> | Merge | ||
Requirements | <RequirementsType> | Merge | ||
Languages | <LanguagesType> | Merge | ||
Completion | <CompletionType> | Merge | ||
LocalizationBase | <RequiredBaseType> | Merge | ||
ResultingResource | <ResultingResourceType> | Yes | ||
Artifacts | <InstallationArtifactsType> | No | ||
any | namespace="##other" | ? |
Notes:
When comparing targetResourceRefs, compare the TargetResources pointed to instead of the tergerResourceRefs themselves.
<LanguageSetType>
<xsd:complexType name="LanguageSetType"> <xsd:sequence> <xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> <xsd:element name="Language" type="sdd-dd:LanguageType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<LanguageSetType> | ||||
DisplayElementGroup | DisplayElementGroup | Merge | ||
Language | <LanguageType> | Merge |
<OptionalLanguagesType>
<xsd:complexType name="OptionalLanguagesType"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="Language" type="sdd-dd:LanguageType"/> <xsd:element name="LanguageSet" type="sdd-dd:LanguageSetType"/> </xsd:choice> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<OptionalLanguagesType> | ||||
Language | <LanguageType> | Merge | ||
LanguageSet | <LanguageSetType> | Merge |
<LanguageSelectionsType>
<xsd:complexType name="LanguageSelectionsType"> <xsd:sequence> <xsd:element name="Mandatory" type="sdd-dd:LanguagesType" minOccurs="0"/> <xsd:element name="Optional" type="sdd-dd:OptionalLanguagesType" minOccurs="0" /> </xsd:sequence> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<LanguageSelectionsType> | ||||
Mandatory | <LanguagesType> | Merge | ||
Optional | <OptionalLanguagesType> | Merge |
<CompositeUnitType>
<xsd:complexType name="CompositeUnitType"> <xsd:sequence> <xsd:element name="Identity" type="sdd-common:IdentityType" minOccurs="0"/> <xsd:element name="Condition" type="sdd-dd:ConditionType" minOccurs="0"/> <xsd:element name="Variables" type="sdd-dd:VariablesType" minOccurs="0"/> <xsd:element name="Requirements" type="sdd-dd:RequirementsType" minOccurs="0"/> <xsd:group ref="sdd-dd:ContentListGroup"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
<CompositeUnitType> | ||||
id | xsd:ID | Throw Away | ||
any | namespace="##other" | ? | ||
Identity | <IdentityType> | Merge | ||
Condition | <ConditionType> | Merge | ||
Variables | <VariablesType> | Merge | ||
Requirements | <RequirementsType> | Merge | ||
ContentListGroup | ContentListGroup | Merge |
<ContentSelectionFeatureType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<RequiredContentSelectionType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<ResourceMapType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<ResultingResourceMapType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<ResultingChangeMapType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<ReferencedPackageType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<BaseContentType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<FeatureReferenceType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<GroupType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<GroupsType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<MultiplicityConstraintType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<ConstrainedResourceType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<MultiplicityType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<ContentElementReferenceType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<PackageFeatureReferenceType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<NestedFeatureType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<FeatureType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<MultiSelectType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<FeaturesType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<SelectableContentType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<CompositeLocalizationUnitType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<LocalizationContentType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<CompositeInstallableType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<RequisitesType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes:
<DeploymentDescriptorType>
Type | Element | Attribute | Data Type | Compare? |
---|---|---|---|---|
Notes: