#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>
© Copyright 2026 Paperzz