Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
MAS
SDT
Commits
65fd4ce7
Commit
65fd4ce7
authored
Apr 26, 2019
by
ankraft
Browse files
Added new extend definition. Adapted test cases
parent
8da029f2
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
115 additions
and
80 deletions
+115
-80
SDT/schema4.0/etc/domain.rnc
SDT/schema4.0/etc/domain.rnc
+22
-19
SDT/schema4.0/src/domain.rng
SDT/schema4.0/src/domain.rng
+39
-17
SDT/schema4.0/src/domain.xsd
SDT/schema4.0/src/domain.xsd
+28
-16
SDT/schema4.0/test/EchonetLiteExamples.xml
SDT/schema4.0/test/EchonetLiteExamples.xml
+4
-4
SDT/schema4.0/test/dal-eg.xml
SDT/schema4.0/test/dal-eg.xml
+1
-1
SDT/schema4.0/test/datatypes-test.xml
SDT/schema4.0/test/datatypes-test.xml
+1
-1
SDT/schema4.0/test/deviceClass-test.xml
SDT/schema4.0/test/deviceClass-test.xml
+1
-1
SDT/schema4.0/test/example2.SDT.xml
SDT/schema4.0/test/example2.SDT.xml
+5
-5
SDT/schema4.0/test/example3.SDT.xml
SDT/schema4.0/test/example3.SDT.xml
+6
-6
SDT/schema4.0/test/extends-test.xml
SDT/schema4.0/test/extends-test.xml
+4
-6
SDT/schema4.0/test/mseeb.xml
SDT/schema4.0/test/mseeb.xml
+3
-3
SDT/schema4.0/test/semanticURI-test.xml
SDT/schema4.0/test/semanticURI-test.xml
+1
-1
No files found.
SDT/schema4.0/etc/domain.rnc
View file @
65fd4ce7
...
...
@@ -53,7 +53,7 @@ DataTypeDef =
attribute unitOfMeasure { text }?,
attribute semanticURI { xsd:anyURI }?,
DocDef,
(Extend
s
Def | (StructType | ArrayType | SimpleType | EnumType)),
(ExtendDef | (StructType | ArrayType | SimpleType | EnumType)),
ConstraintsDef?
}
StructType = element Struct { DataTypeDef+ }
...
...
@@ -116,8 +116,7 @@ ModuleClasses =
attribute optional { xsd:boolean }?,
attribute semanticURI { xsd:anyURI }?,
DocDef,
ExtendsDef,
# TODO: singular
ExtendDef,
PropertiesDef?,
Actions?,
Data?,
...
...
@@ -168,21 +167,25 @@ Events =
Data?
}+
}
ExtendsDef =
# TODO: singular
element extends {
# TODO: Uppercase , singular
ExtendDef =
element Extend {
attribute domain { xsd:Name },
attribute class { text },
element excludes {
# TODO: Uppercase + "...s" -> Excludes
element exclude {
attribute name { text },
attribute type {
text
# TODO: add ExcludeTypes
attribute entity { xsd:Name },
(element Exclude {
attribute name { xsd:Name },
attribute type { ExtendType }
}
}+
}?
| element Include {
attribute name { xsd:Name },
attribute type { ExtendType }
})?
}?
ExtendType =
"action"
| "datapoint"
| "event"
| "moduleclass"
| "product"
| "property"
| "device"
| "subdevice"
SDT/schema4.0/src/domain.rng
View file @
65fd4ce7
...
...
@@ -150,7 +150,7 @@
</optional>
<ref name="DocDef"/>
<choice>
<ref name="Extend
s
Def" />
<ref name="ExtendDef" />
<choice>
<ref name="StructType" />
<ref name="ArrayType" />
...
...
@@ -330,7 +330,7 @@
</attribute>
</optional>
<ref name="DocDef"/>
<ref name="Extend
s
Def" />
<!-- TODO: singular -->
<ref name="ExtendDef" />
<optional>
<ref name="PropertiesDef"/>
</optional>
...
...
@@ -471,30 +471,52 @@
</define>
<define name="Extend
s
Def">
<!-- TODO: singular -->
<define name="ExtendDef">
<optional>
<element name="
e
xtend
s
">
<!-- TODO: Uppercase , singular-->
<element name="
E
xtend">
<attribute name="domain">
<data type="Name"/>
</attribute>
<attribute name="class"/>
<attribute name="entity">
<data type="Name"/>
</attribute>
<optional>
<element name="excludes"> <!-- TODO: Uppercase + "...s" -> Excludes-->
<oneOrMore>
<element name="exclude">
<choice>
<element name="Exclude">
<attribute name="name">
<text
/>
<data type="Name"
/>
</attribute>
<attribute name="type">
<text/> <!-- TODO: add ExcludeTypes --
>
<ref name="ExtendType" /
>
</attribute>
</element>
</oneOrMore>
<element name="Include">
<attribute name="name">
<data type="Name"/>
</attribute>
<attribute name="type">
<ref name="ExtendType" />
</attribute>
</element>
</choice>
</optional>
</element>
</optional>
</define>
<define name="ExtendType">
<choice>
<value>action</value>
<value>datapoint</value>
<value>event</value>
<value>moduleclass</value>
<value>product</value>
<value>property</value>
<value>device</value>
<value>subdevice</value>
</choice>
</define>
</grammar>
SDT/schema4.0/src/domain.xsd
View file @
65fd4ce7
...
...
@@ -117,7 +117,7 @@
<xs:extension
base=
"DocDef"
>
<xs:sequence>
<xs:choice>
<xs:group
ref=
"Extend
s
Def"
/>
<xs:group
ref=
"ExtendDef"
/>
<xs:choice>
<xs:element
ref=
"Struct"
/>
<xs:element
ref=
"Array"
/>
...
...
@@ -262,7 +262,7 @@
<xs:complexContent>
<xs:extension
base=
"DocDef"
>
<xs:sequence>
<xs:group
ref=
"Extend
s
Def"
/>
<xs:group
ref=
"ExtendDef"
/>
<xs:element
minOccurs=
"0"
ref=
"Properties"
/>
<xs:element
minOccurs=
"0"
ref=
"Actions"
/>
<xs:element
minOccurs=
"0"
ref=
"Data"
/>
...
...
@@ -363,31 +363,43 @@
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:group
name=
"Extend
s
Def"
>
<xs:group
name=
"ExtendDef"
>
<xs:sequence>
<xs:element
minOccurs=
"0"
ref=
"
e
xtend
s
"
/>
<xs:element
minOccurs=
"0"
ref=
"
E
xtend"
/>
</xs:sequence>
</xs:group>
<xs:element
name=
"
e
xtend
s
"
>
<xs:element
name=
"
E
xtend"
>
<xs:complexType>
<xs:sequence>
<xs:element
minOccurs=
"0"
ref=
"excludes"
/>
</xs:sequence>
<xs:choice
minOccurs=
"0"
>
<xs:element
ref=
"Exclude"
/>
<xs:element
ref=
"Include"
/>
</xs:choice>
<xs:attribute
name=
"domain"
use=
"required"
type=
"xs:Name"
/>
<xs:attribute
name=
"
class
"
use=
"required"
/>
<xs:attribute
name=
"
entity
"
use=
"required"
type=
"xs:Name"
/>
</xs:complexType>
</xs:element>
<xs:element
name=
"
e
xclude
s
"
>
<xs:element
name=
"
E
xclude"
>
<xs:complexType>
<xs:sequence>
<xs:element
maxOccurs=
"unbounded"
ref=
"exclude"
/>
</xs:sequence>
<xs:attribute
name=
"name"
use=
"required"
type=
"xs:Name"
/>
<xs:attribute
name=
"type"
use=
"required"
type=
"ExtendType"
/>
</xs:complexType>
</xs:element>
<xs:element
name=
"
ex
clude"
>
<xs:element
name=
"
In
clude"
>
<xs:complexType>
<xs:attribute
name=
"name"
use=
"required"
/>
<xs:attribute
name=
"type"
use=
"required"
/>
<xs:attribute
name=
"name"
use=
"required"
type=
"xs:Name"
/>
<xs:attribute
name=
"type"
use=
"required"
type=
"ExtendType"
/>
</xs:complexType>
</xs:element>
<xs:simpleType
name=
"ExtendType"
>
<xs:restriction
base=
"xs:token"
>
<xs:enumeration
value=
"action"
/>
<xs:enumeration
value=
"datapoint"
/>
<xs:enumeration
value=
"event"
/>
<xs:enumeration
value=
"moduleclass"
/>
<xs:enumeration
value=
"product"
/>
<xs:enumeration
value=
"property"
/>
<xs:enumeration
value=
"device"
/>
<xs:enumeration
value=
"subdevice"
/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
SDT/schema4.0/test/EchonetLiteExamples.xml
View file @
65fd4ce7
...
...
@@ -83,15 +83,15 @@
<!-- Inheriting ModuleClasses from the global generic ModuleClasses -->
<ModuleClass
name=
"installationLocation"
>
<
e
xtend
s
domain=
"example.based.on.echonetLite"
class
=
"installationLocation"
/>
<
E
xtend
domain=
"example.based.on.echonetLite"
entity
=
"installationLocation"
/>
</ModuleClass>
<ModuleClass
name=
"measuredInstantaneousPowerConsumption"
>
<
e
xtend
s
domain=
"example.based.on.echonetLite"
class
=
"measuredInstantaneousPowerConsumption"
/>
<
E
xtend
domain=
"example.based.on.echonetLite"
entity
=
"measuredInstantaneousPowerConsumption"
/>
</ModuleClass>
<ModuleClass
name=
"temperatureSensorDataPoints"
>
<
e
xtend
s
domain=
"example.based.on.echonetLite"
class
=
"temperatureSensorDataPoints"
/>
<
E
xtend
domain=
"example.based.on.echonetLite"
entity
=
"temperatureSensorDataPoints"
/>
</ModuleClass>
...
...
@@ -99,7 +99,7 @@
the change of name. -->
<ModuleClass
name=
"washingMachineOperationStatus"
>
<
e
xtend
s
domain=
"example.based.on.echonetLite"
class
=
"operationStatus"
/>
<
E
xtend
domain=
"example.based.on.echonetLite"
entity
=
"operationStatus"
/>
<!-- This Module extends the global one with an event. -->
...
...
SDT/schema4.0/test/dal-eg.xml
View file @
65fd4ce7
...
...
@@ -48,7 +48,7 @@
</Events>
</ModuleClass>
<ModuleClass
name=
"power"
>
<
e
xtend
s
class
=
"BooleanState"
domain=
"hgi.dal.core"
/>
<
E
xtend
entity
=
"BooleanState"
domain=
"hgi.dal.core"
/>
</ModuleClass>
</ModuleClasses>
</DeviceClass>
...
...
SDT/schema4.0/test/datatypes-test.xml
View file @
65fd4ce7
...
...
@@ -20,7 +20,7 @@
<Data>
<DataPoint
name=
"TestDataPoint"
writable=
"true"
>
<DataType>
<
e
xtend
s
domain=
"datatypes-test"
class
=
"temperatureType"
/>
<
E
xtend
domain=
"datatypes-test"
entity
=
"temperatureType"
/>
</DataType>
</DataPoint>
</Data>
...
...
SDT/schema4.0/test/deviceClass-test.xml
View file @
65fd4ce7
...
...
@@ -13,7 +13,7 @@
</Properties>
<ModuleClasses>
<ModuleClass
name=
"aModuleClass"
>
<
e
xtend
s
domain=
"hgi.dal.core"
class
=
"BooleanState"
></extends
>
<
E
xtend
domain=
"hgi.dal.core"
entity
=
"BooleanState"
/
>
</ModuleClass>
</ModuleClasses>
</DeviceClass>
...
...
SDT/schema4.0/test/example2.SDT.xml
View file @
65fd4ce7
...
...
@@ -12,19 +12,19 @@
<DeviceClass
id=
"airConditioner"
>
<ModuleClasses>
<ModuleClass
name=
"operationStatus"
>
<
e
xtend
s
domain=
"example1.SDT"
class
=
"operationStatus"
/>
<
E
xtend
domain=
"example1.SDT"
entity
=
"operationStatus"
/>
</ModuleClass>
<ModuleClass
name=
"installationLocation"
>
<
e
xtend
s
domain=
"example1.SDT"
class
=
"installationLocation"
/>
<
E
xtend
domain=
"example1.SDT"
entity
=
"installationLocation"
/>
</ModuleClass>
<ModuleClass
name=
"measuredCumulativePowerConsumption"
>
<
e
xtend
s
domain=
"example1.SDT"
class
=
"measuredCumulativePowerConsumption"
/>
<
E
xtend
domain=
"example1.SDT"
entity
=
"measuredCumulativePowerConsumption"
/>
</ModuleClass>
<ModuleClass
name=
"measuredCumulativePowerConsumption"
>
<
e
xtend
s
domain=
"example1.SDT"
class
=
"measuredCumulativePowerConsumption"
/>
<
E
xtend
domain=
"example1.SDT"
entity
=
"measuredCumulativePowerConsumption"
/>
</ModuleClass>
<ModuleClass
name=
"onTimerSetting"
>
<
e
xtend
s
domain=
"example1.SDT"
class
=
"onTimerSetting"
/>
<
E
xtend
domain=
"example1.SDT"
entity
=
"onTimerSetting"
/>
</ModuleClass>
</ModuleClasses>
</DeviceClass>
...
...
SDT/schema4.0/test/example3.SDT.xml
View file @
65fd4ce7
...
...
@@ -12,22 +12,22 @@
<DeviceClass
id=
"waschingMachine"
>
<ModuleClasses>
<ModuleClass
name=
"operationStatus"
>
<
e
xtend
s
domain=
"example1.SDT"
class
=
"operationStatus"
/>
<
E
xtend
domain=
"example1.SDT"
entity
=
"operationStatus"
/>
</ModuleClass>
<ModuleClass
name=
"installationLocation"
>
<
e
xtend
s
domain=
"example1.SDT"
class
=
"installationLocation"
/>
<
E
xtend
domain=
"example1.SDT"
entity
=
"installationLocation"
/>
</ModuleClass>
<ModuleClass
name=
"measuredCumulativePowerConsumption"
>
<
e
xtend
s
domain=
"example1.SDT"
class
=
"measuredCumulativePowerConsumption"
/>
<
E
xtend
domain=
"example1.SDT"
entity
=
"measuredCumulativePowerConsumption"
/>
</ModuleClass>
<ModuleClass
name=
"measuredCumulativePowerConsumption"
>
<
e
xtend
s
domain=
"example1.SDT"
class
=
"measuredCumulativePowerConsumption"
/>
<
E
xtend
domain=
"example1.SDT"
entity
=
"measuredCumulativePowerConsumption"
/>
</ModuleClass>
<ModuleClass
name=
"onTimerSetting"
>
<
e
xtend
s
domain=
"example1.SDT"
class
=
"onTimerSetting"
/>
<
E
xtend
domain=
"example1.SDT"
entity
=
"onTimerSetting"
/>
</ModuleClass>
<ModuleClass
name=
"statusDoor"
>
<
e
xtend
s
domain=
"example1.SDT"
class
=
"statusDoor"
/>
<
E
xtend
domain=
"example1.SDT"
entity
=
"statusDoor"
/>
</ModuleClass>
</ModuleClasses>
</DeviceClass>
...
...
SDT/schema4.0/test/extends-test.xml
View file @
65fd4ce7
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Test the extends element -->
<Domain
id=
"extend
s
-test"
xmlns=
"http://homegatewayinitiative.org/xml/dal/4.0"
xmlns:xi=
"http://www.w3.org/2001/XInclude"
>
<Domain
id=
"extend-test"
xmlns=
"http://homegatewayinitiative.org/xml/dal/4.0"
xmlns:xi=
"http://www.w3.org/2001/XInclude"
>
<ModuleClasses>
<ModuleClass
name=
"TestExtendsParent"
>
<Data>
...
...
@@ -18,11 +18,9 @@
</Data>
</ModuleClass>
<ModuleClass
name=
"TestExtendsChild"
>
<extends
domain=
"extends-test"
class=
"TestExtendsParent"
>
<excludes>
<exclude
name=
"TestExtendsDataPoint2"
type=
"datapoint"
/>
</excludes>
</extends>
<Extend
domain=
"extend-test"
entity=
"TestExtendsParent"
>
<Exclude
name=
"TestExtendsDataPoint2"
type=
"datapoint"
/>
</Extend>
<Data>
<DataPoint
name=
"TestExtendsDataPoint3"
writable=
"true"
>
<DataType>
...
...
SDT/schema4.0/test/mseeb.xml
View file @
65fd4ce7
...
...
@@ -159,7 +159,7 @@
The proprietry interface for turning all switches of the extension block on and off.
The action "BooleanState:get" returns "true" when any of the sub-devices is in the state "on", otherwise it returns "false".
</Doc>
<
e
xtend
s
domain=
"hgi.dal.core"
class
=
"BooleanState"
/>
<
E
xtend
domain=
"hgi.dal.core"
entity
=
"BooleanState"
/>
<Properties>
<Property
name=
"version"
value=
"1.0.0"
>
<Doc>
Version for this ModuleClass
</Doc>
...
...
@@ -265,7 +265,7 @@
</Properties>
<ModuleClasses>
<ModuleClass
name=
"power"
>
<
e
xtend
s
domain=
"hgi.dal.core"
class
=
"BooleanState"
/>
<
E
xtend
domain=
"hgi.dal.core"
entity
=
"BooleanState"
/>
</ModuleClass>
</ModuleClasses>
</SubDevice>
...
...
@@ -292,7 +292,7 @@
</Properties>
<ModuleClasses>
<ModuleClass
name=
"power"
>
<
e
xtend
s
domain=
"hgi.dal.core"
class
=
"BooleanState"
/>
<
E
xtend
domain=
"hgi.dal.core"
entity
=
"BooleanState"
/>
</ModuleClass>
</ModuleClasses>
</SubDevice>
...
...
SDT/schema4.0/test/semanticURI-test.xml
View file @
65fd4ce7
...
...
@@ -20,7 +20,7 @@
<Data>
<DataPoint
name=
"TestDataPoint"
writable=
"true"
semanticURI=
"http://example.com/TestDataPoint.rdf"
>
<DataType>
<
e
xtend
s
domain=
"datatypes-test"
class
=
"temperatureType"
/>
<
E
xtend
domain=
"datatypes-test"
entity
=
"temperatureType"
/>
</DataType>
</DataPoint>
</Data>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment