diff --git a/SDT/schema2.0/docs/SDT_Components.md b/SDT/schema2.0/docs/SDT_Components.md index 7c99878b20b8bdde0b199fe631135d1240db069d..2bb770944d16a8e2d67f239af67c2c8e3726a9af 100644 --- a/SDT/schema2.0/docs/SDT_Components.md +++ b/SDT/schema2.0/docs/SDT_Components.md @@ -2,6 +2,11 @@ In this document an overview about the SDT 2.0 ødefinitions and component hierarchy is given. +[Domain](#Domain) +[RootDevice](#RootDevice) +[Device](#Device) +[DeviceInfo](#DeviceInfo) + ## SDT Overview The followng UML diagram presents an overview about the SDT components. @@ -14,15 +19,23 @@ The syntax used in the diagram to model an XML Schema Definition (XSD) as an UML ## Components --TBD - ---- +<a name="Domain"></a> ### Domain The *Domain* is the top-level component that defines all modules and devices of a domain. A *Domain* can import definitions of other domains. +A *Domain* can define *ModuleClasses* or *RootDevices* only, or may choose to provide both. +  +#### Attributes +- **id** : The identifier for that *Domain*. Required. + +#### Elements +- **Imports** : XML import/include of other XML files. Optional. +- **Modules** : A list of *Module* components that are global to the whole domain. Optional. +- **RootDevices** : a List *RootDevice* components. Optional. + #### Example <Domain xmlns:xi="http://www.w3.org/2001/XInclude" @@ -32,23 +45,127 @@ The *Domain* is the top-level component that defines all modules and devices of <xi:include href="./dal-core.xml" parse="xml" /> </Imports> <Modules> - <!-- Modules go here --> + <!-- List of Domain global Modules go here --> </Modules> <RootDevices> - <!-- RootDevices go here --> + <!-- List of RootDevices go here --> </RootDevices> </Domain> --- +<a name="RootDevice"/></a> ### RootDevice -#### DeviceInfo +A *RootDevice* is the description of a (physical) device that may contain optional sub-devices. It represents the idea an appliance that is addressable on a Home Area Network where one or more sub-*Devices* provide certain functionalities. + +An example is a connected power-strip where each of the sockets can be switched on and off individually. The power-strip itself can provide functions such as "all sockets off" and "overall power consumption". + +If the *RootDevice* includes sub-*Devices* then each sub-device may be of the same type or of different types. The functionality (*Actions*) of the *RootDevice* may be different from the functionality of its sub-*Devices*. + +If the *RootDevice* does not include sub-devices then the *RootDevice* is the actual adressable device that provides all the functionality of the connected appliance. + +*RootDevices* may define their own *ModuleClasses* or refer to predefined ModulesClasses of its or another *Domain*. + + + +#### Attributes +- **id** : The identifier for that *RootDevice*. Required. + +#### Elements + +- **Doc** : Documentation for the *RootDevice*. Optional. +- **Modules** : A list of *Module* components that are local to the *RootDevice*. Optional. +- **DeviceInfo** : Further meta-data about the *RootDevice*. Optional. +- **Devices** : A list *Device* components. Optional. + +#### Example + + <RootDevice id="aRootDevice"> + <Doc>Some documentation</Doc> + <Modules> + <!-- List of Modules local to the RootDevice go here--> + </Modules> + <DeviceInfo> + <!-- The DeviceInfos for the RootDevice goes here--> + </DeviceInfo> + <Devices> + <!-- List of Sub-Devices of the RootDevice go here--> + </Devices> + </RootDevice> + +--- ### Device +*Devices* are optional components of a *RootDevice*. They represent physical sub-devices inside another device (the *RootDevice*). + +*Devices* may define their own *ModuleClasses* or refer to predefined ModulesClasses of its or another *Domain*. + + + +#### Attributes +- **id** : The identifier for that *Device*. Required. + +#### Elements +- **Doc** : Documentation for the *Device*. Optional. +- **Modules** : A list of *Module* components that are local to the *RootDevice*. Optional. +- **DeviceInfo** : A list *Device* components. Optional. + +#### Example + + <Device id="aDevice"> + <Doc>Some documentation</Doc> + <Modules> + <!-- Modules local to the Device go here--> + </Modules> + <DeviceInfo> + <!-- The DeviceInfo for the Device goes here--> + </DeviceInfo> + </RootDevice> + +--- ### Module, ModuleClass, ModuleDef + + + +#### Attributes +#### Sub-Components +#### Example + +--- + +<a name="DeviceInfo"/></a> +### DeviceInfo +The *DeviceInfo* is an element of *RootDevice* or *Device* where a device vendor can provide metadata for a device that may be presented to an end-user. + + + +#### Attributes +None. + +#### Elements +- **Name** : Vendor-specific name of a device. Required. +- **Vendor** : Name of the vendor for the device. Required. +- **FirmwareVersion** : Current version number of the firmware or other version information. Optional. +- **VendorURL** : A URL that points to further information for that device. This might be the product page on the web or an URL to the device manual. Optional. +- **SerialNumber** : The serial number or serial string. Optional. + +#### Example + + <DeviceInfo> + <Name>SomeDeviceName</Name> + <Vendor>ACME</Vendor> + <FirmwareVersion>1.0</FirmwareVersion> + <VendorURL>http://www.example.com/</VendorURL> + <SerialNumber>1234.5</SerialNumber> + </DeviceInfo> + +--- + +--- + ### Action ### Data @@ -59,3 +176,14 @@ The *Domain* is the top-level component that defines all modules and devices of + + + + + +# DOC TBD +Explain. Describe content elements + + + + diff --git a/SDT/schema2.0/docs/SDT_UML.uxf b/SDT/schema2.0/docs/SDT_UML.uxf index ede0c4dd6547334ae17a654472a0c88a645ac31e..9a0d8c474e4936c2ef340a460889fa95ee3a5eaf 100644 --- a/SDT/schema2.0/docs/SDT_UML.uxf +++ b/SDT/schema2.0/docs/SDT_UML.uxf @@ -4,12 +4,12 @@ <element> <id>UMLClass</id> <coordinates> - <x>270</x> - <y>70</y> + <x>330</x> + <y>120</y> <w>150</w> <h>130</h> </coordinates> - <panel_attributes>ModuleDef + <panel_attributes>ModuleClass -- *@ name : text* /- extends: Extends/ @@ -17,14 +17,15 @@ /- Actions : Actions/ /- Data : Data/ /- Events : Events/ +fg=blue </panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> - <x>520</x> - <y>160</y> + <x>580</x> + <y>190</y> <w>140</w> <h>100</h> </coordinates> @@ -40,21 +41,21 @@ fg=blue</panel_attributes> <element> <id>Relation</id> <coordinates> - <x>410</x> - <y>70</y> + <x>470</x> + <y>100</y> <w>130</w> - <h>70</h> + <h>90</h> </coordinates> <panel_attributes>lt=<- m1=0,1 </panel_attributes> - <additional_attributes>110.0;10.0;40.0;10.0;40.0;50.0;10.0;50.0</additional_attributes> + <additional_attributes>110.0;10.0;40.0;10.0;40.0;70.0;10.0;70.0</additional_attributes> </element> <element> <id>UMLClass</id> <coordinates> - <x>740</x> - <y>230</y> + <x>800</x> + <y>260</y> <w>160</w> <h>80</h> </coordinates> @@ -63,14 +64,14 @@ m1=0,1 *@ name ; text* *@ type : DataType* /- Doc : Doc/ -</panel_attributes> +fg=blue</panel_attributes> <additional_attributes/> </element> <element> <id>Relation</id> <coordinates> - <x>650</x> - <y>230</y> + <x>710</x> + <y>260</y> <w>110</w> <h>40</h> </coordinates> @@ -81,8 +82,8 @@ m1=0..*</panel_attributes> <element> <id>UMLClass</id> <coordinates> - <x>0</x> - <y>200</y> + <x>60</x> + <y>230</y> <w>200</w> <h>100</h> </coordinates> @@ -98,21 +99,20 @@ fg=blue</panel_attributes> <element> <id>Relation</id> <coordinates> - <x>190</x> - <y>250</y> + <x>250</x> + <y>120</y> <w>100</w> - <h>50</h> + <h>200</h> </coordinates> <panel_attributes>lt=<- -m1=0..* -</panel_attributes> - <additional_attributes>80.0;20.0;10.0;20.0</additional_attributes> +m1= 0..*</panel_attributes> + <additional_attributes>80.0;10.0;30.0;10.0;30.0;180.0;10.0;180.0</additional_attributes> </element> <element> <id>UMLClass</id> <coordinates> - <x>270</x> - <y>570</y> + <x>330</x> + <y>600</y> <w>190</w> <h>100</h> </coordinates> @@ -128,8 +128,8 @@ fg=blue</panel_attributes> <element> <id>Relation</id> <coordinates> - <x>180</x> - <y>270</y> + <x>240</x> + <y>300</y> <w>50</w> <h>250</h> </coordinates> @@ -141,8 +141,8 @@ m1=0..* <element> <id>UMLClass</id> <coordinates> - <x>530</x> - <y>580</y> + <x>590</x> + <y>610</y> <w>180</w> <h>130</h> </coordinates> @@ -160,8 +160,8 @@ fg=blue</panel_attributes> <element> <id>Relation</id> <coordinates> - <x>450</x> - <y>580</y> + <x>510</x> + <y>610</y> <w>100</w> <h>90</h> </coordinates> @@ -172,8 +172,8 @@ m1= 0,1</panel_attributes> <element> <id>UMLClass</id> <coordinates> - <x>740</x> - <y>0</y> + <x>800</x> + <y>30</y> <w>160</w> <h>210</h> </coordinates> @@ -195,21 +195,22 @@ blob</panel_attributes> <element> <id>UMLClass</id> <coordinates> - <x>790</x> - <y>620</y> + <x>850</x> + <y>650</y> <w>110</w> <h>50</h> </coordinates> <panel_attributes>Doc -- -- ...</panel_attributes> +- ... +fg=blue</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> - <x>520</x> - <y>60</y> + <x>580</x> + <y>90</y> <w>130</w> <h>80</h> </coordinates> @@ -224,21 +225,21 @@ Extends <element> <id>Relation</id> <coordinates> - <x>410</x> - <y>140</y> + <x>470</x> + <y>180</y> <w>130</w> - <h>60</h> + <h>50</h> </coordinates> <panel_attributes>lt=<- m1=0..* </panel_attributes> - <additional_attributes>110.0;30.0;80.0;30.0;80.0;10.0;10.0;10.0</additional_attributes> + <additional_attributes>110.0;20.0;10.0;20.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> - <x>650</x> - <y>10</y> + <x>710</x> + <y>40</y> <w>110</w> <h>220</h> </coordinates> @@ -250,8 +251,8 @@ m1=0,1 <element> <id>Relation</id> <coordinates> - <x>720</x> - <y>610</y> + <x>780</x> + <y>640</y> <w>90</w> <h>50</h> </coordinates> @@ -263,8 +264,8 @@ m1=0..* <element> <id>Relation</id> <coordinates> - <x>890</x> - <y>80</y> + <x>950</x> + <y>110</y> <w>50</w> <h>220</h> </coordinates> @@ -276,8 +277,8 @@ m1= 1 <element> <id>UMLClass</id> <coordinates> - <x>520</x> - <y>310</y> + <x>580</x> + <y>340</y> <w>170</w> <h>50</h> </coordinates> @@ -290,21 +291,21 @@ fg=blue</panel_attributes> <element> <id>Relation</id> <coordinates> - <x>410</x> - <y>160</y> + <x>470</x> + <y>210</y> <w>130</w> - <h>190</h> + <h>170</h> </coordinates> <panel_attributes>lt=<- m1=0..* </panel_attributes> - <additional_attributes>110.0;160.0;50.0;160.0;50.0;10.0;10.0;10.0</additional_attributes> + <additional_attributes>110.0;140.0;50.0;140.0;50.0;10.0;10.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> - <x>680</x> - <y>320</y> + <x>740</x> + <y>350</y> <w>80</w> <h>50</h> </coordinates> @@ -316,8 +317,8 @@ m1=0..* <element> <id>UMLClass</id> <coordinates> - <x>740</x> - <y>330</y> + <x>800</x> + <y>360</y> <w>160</w> <h>130</h> </coordinates> @@ -329,14 +330,15 @@ m1=0..* /@ readable : boolean/ /@ eventable : boolean/ /- Doc : Doc/ +fg=blue </panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> - <x>530</x> - <y>490</y> + <x>590</x> + <y>520</y> <w>160</w> <h>80</h> </coordinates> @@ -351,21 +353,21 @@ fg=blue</panel_attributes> <element> <id>Relation</id> <coordinates> - <x>410</x> - <y>170</y> + <x>470</x> + <y>220</y> <w>140</w> - <h>360</h> + <h>340</h> </coordinates> <panel_attributes>lt=<- m1=0..* </panel_attributes> - <additional_attributes>120.0;330.0;30.0;330.0;30.0;10.0;10.0;10.0</additional_attributes> + <additional_attributes>120.0;310.0;30.0;310.0;30.0;10.0;10.0;10.0</additional_attributes> </element> <element> <id>UMLClass</id> <coordinates> - <x>270</x> - <y>520</y> + <x>330</x> + <y>550</y> <w>120</w> <h>30</h> </coordinates> @@ -373,36 +375,11 @@ m1=0..* fg=blue</panel_attributes> <additional_attributes/> </element> - <element> - <id>UMLClass</id> - <coordinates> - <x>270</x> - <y>260</y> - <w>120</w> - <h>30</h> - </coordinates> - <panel_attributes>ModuleClass -fg=blue</panel_attributes> - <additional_attributes/> - </element> - <element> - <id>Relation</id> - <coordinates> - <x>320</x> - <y>190</y> - <w>100</w> - <h>90</h> - </coordinates> - <panel_attributes>lt=<<<. -<<extends>> -</panel_attributes> - <additional_attributes>10.0;10.0;10.0;70.0</additional_attributes> - </element> <element> <id>Relation</id> <coordinates> - <x>380</x> - <y>520</y> + <x>440</x> + <y>550</y> <w>110</w> <h>130</h> </coordinates> @@ -414,20 +391,20 @@ m1=0..* <element> <id>Relation</id> <coordinates> - <x>320</x> - <y>280</y> + <x>380</x> + <y>240</y> <w>100</w> - <h>260</h> + <h>330</h> </coordinates> <panel_attributes>lt=<<<. <<extends>></panel_attributes> - <additional_attributes>10.0;10.0;10.0;240.0</additional_attributes> + <additional_attributes>10.0;10.0;10.0;310.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> - <x>590</x> - <y>350</y> + <x>650</x> + <y>380</y> <w>130</w> <h>210</h> </coordinates> @@ -439,8 +416,8 @@ m1=0..* <element> <id>Relation</id> <coordinates> - <x>890</x> - <y>10</y> + <x>950</x> + <y>40</y> <w>70</w> <h>390</h> </coordinates> @@ -452,8 +429,8 @@ m1=1 <element> <id>UMLClass</id> <coordinates> - <x>10</x> - <y>500</y> + <x>70</x> + <y>530</y> <w>190</w> <h>110</h> </coordinates> @@ -470,8 +447,8 @@ fg=blue</panel_attributes> <element> <id>Relation</id> <coordinates> - <x>190</x> - <y>560</y> + <x>250</x> + <y>590</y> <w>100</w> <h>50</h> </coordinates> @@ -483,8 +460,8 @@ m1=0..* <element> <id>UMLNote</id> <coordinates> - <x>0</x> - <y>0</y> + <x>60</x> + <y>30</y> <w>200</w> <h>130</h> </coordinates> @@ -504,8 +481,8 @@ Subclassing</panel_attributes> <element> <id>Relation</id> <coordinates> - <x>100</x> - <y>60</y> + <x>160</x> + <y>90</y> <w>100</w> <h>40</h> </coordinates> @@ -518,8 +495,8 @@ m1=0..* <element> <id>Relation</id> <coordinates> - <x>100</x> - <y>90</y> + <x>160</x> + <y>120</y> <w>110</w> <h>40</h> </coordinates> @@ -531,8 +508,8 @@ fontsize=10</panel_attributes> <element> <id>Relation</id> <coordinates> - <x>190</x> - <y>520</y> + <x>250</x> + <y>550</y> <w>100</w> <h>60</h> </coordinates> @@ -544,8 +521,8 @@ m1=0..* <element> <id>Relation</id> <coordinates> - <x>190</x> - <y>580</y> + <x>250</x> + <y>610</y> <w>360</w> <h>130</h> </coordinates>