Current Fix Information Structure

#N12 Additional variable types
(including non-scalar)
[e.g. #S2 Interoperability; identifier comes from “Version 1.1 Candidate Items” spreasheet on TC Documents page]
SDD 1.1 General Direction
Proposal
XXX = [Proposal | Initial Discussion | General Direction Proposal]
Current Situation
• Extend the set of variable types:
– Available variable types in V1.0 shall be extended
with more types, including non-scalar types (non such
available in v1.0)
– Currently following types are available
•
•
•
•
•
•
IntegerParameterType (extends BaseParameterType)
StringParameterType (extends BaseParameterType)
BooleanParameterType (extends BaseParameterType)
URIParameterType (extends BaseParameterType)
ResourcePropertyType
DerivedVariableType
Proposal
• The idea is additionally existing types to
introduce two new types
– ComplexParameterType is a new type
– ArrayParameterType is subtype
BaseParameterType
• Additionally a hierarchy of new elements
called data-types is introduced
Scenario(s)/Use Case(s)
• Let’s recall the variables definition: Variables provide a way to associate
user inputs, resource property values, fixed strings and values derived from these with input
arguments for artifacts and with constraints on resources.
• It makes sense to define two more variable types
– a record of elements of different base types – to structure
parameters that belong logically together (user account for
example)
– an array of the same base type – to declare unknown number of
common inputs (file locations for example)
• With respect to the purpose of variables in SDD I was
not able to define a use case where table-structure may
be used therefore the proposal does not contain a table
Proposed Schema
• ParametersType
Proposed Schema
• ComplexParameterType
Proposed Schema
• ArrayParameterType
Proposed Schema
• Data Types
Examples
• SequenceParameterType
1.
2.
3.
4.
<sdd-dd:ComplexParameter id=“DatabaseAccount“ required=“true”>
<sdd-dd:StringParameter id="DatabaseUserName"/>
<sdd-dd:StringParameter id="DatabaseUserPassword" sensitive="true"/>
</sdd-dd:ComplexParameter>
• ArrayParameterType
1.
2.
3.
4.
5.
<sdd-dd:ArrayParameter id=“ContentDVDLocations” operation=“”install”>
<sdd-dd:URIType />
<sdd-dd:DefaultValue>$dbDVDLocation </sdd-dd:DefaultValue>
<sdd-dd:DefaultValue>$appSrvDVDLocation</sdd-dd:DefaultValue>
</sdd-dd:ArrayParameter>
Proposed Schema Change
1. <xsd:complexType name="ParametersType">
2. <xsd:choice maxOccurs="unbounded">
3.
<xsd:element name="IntegerParameter" type="sdddd:IntegerParameterType"/>
4.
<xsd:element name="StringParameter" type="sdddd:StringParameterType"/>
5.
<xsd:element name="BooleanParameter" type="sdddd:BooleanParameterType"/>
6.
<xsd:element name="URIParameter" type="sdddd:URIParameterType"/>
7.
<xsd:element name=“ComplexParameter" type="sdddd:ComplexParameterType"/>
8.
<xsd:element name="ArrayParameter" type="sdddd:ArrayParameterType"/>
9.
<xsd:any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
10. </xsd:choice>
11. </xsd:complexType>
Proposed Schema Change
1. <xsd:complexType name="ComplexParameterType">
2. <xsd:sequence>
3.
<xsd:group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/>
4.
<xsd:choice maxOccurs="unbounded">
5.
<xsd:element name="IntegerParameter" type="sdd-dd:IntegerParameterType"/>
6.
<xsd:element name="StringParameter" type="sdd-dd:StringParameterType"/>
7.
<xsd:element name="BooleanParameter" type="sdddd:BooleanParameterType"/>
8.
<xsd:element name="URIParameter" type="sdd-dd:URIParameterType"/>
9.
<xsd:any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
10. </xsd:choice>
11. </xsd:sequence>
12. <xsd:attribute name="id" type="xsd:ID" use="required"/>
13. <xsd:attribute name="required" type="xsd:boolean" use="optional" default="true"/>
14. <xsd:attribute name="operation" type="sdd-dd:OperationListType" use="optional"/>
15. </xsd:complexType>
Proposed Schema Change
1. <xsd:complexType name="ArrayParameterType">
2. <xsd:complexContent>
3.
<xsd:extension base="sdd-dd:BaseParameterType">
4.
<xsd:sequence>
5.
<xsd:choice>
6.
<xsd:element name="IntegerType" type="sdd-dd:IntegerDataType"/>
7.
<xsd:element name="StringType" type="sdd-dd:StringDataType"/>
8.
<xsd:element name="BooleanType" type="sdddd:BooleanDataType"/>
9.
<xsd:element name="URIType" type="sdd-dd:URIDataType"/>
10.
</xsd:choice>
11.
<xsd:element name="DefaultValue" type="sdddd:VariableExpressionType" minOccurs="0" maxOccurs="unbounded"/>
12.
</xsd:sequence>
13.
<xsd:anyAttribute namespace="##other" processContents="lax"/>
14. </xsd:extension>
15. </xsd:complexContent>
16. </xsd:complexType>
Proposed Schema Change
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<xsd:complexType name="IntegerDataType">
<xsd:sequence>
<xsd:element name="Bounds" type="sdd-dd:BoundaryType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<xsd:complexType name="StringDataType">
<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:complexType>
<xsd:complexType name="BooleanDataType">
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<xsd:complexType name="URIDataType">
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>