From f5e6b480bfc854616d628e3ae525a2a2df255e40 Mon Sep 17 00:00:00 2001 From: ankraft <an.kraft@googlemail.com> Date: Wed, 30 Jan 2019 17:42:50 +0100 Subject: [PATCH] Added support for DataTypes under Domain. Added test case. --- SDT/schema4.0/etc/domain.rnc | 1 + SDT/schema4.0/src/domain.rng | 7 +++++++ SDT/schema4.0/src/domain.xsd | 8 ++++++++ SDT/schema4.0/test/datatypes-test.xml | 17 +++++++++++++++++ SDT/schema4.0/test/enumtype-test.xml | 2 +- 5 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 SDT/schema4.0/test/datatypes-test.xml diff --git a/SDT/schema4.0/etc/domain.rnc b/SDT/schema4.0/etc/domain.rnc index d30de59..4efe881 100644 --- a/SDT/schema4.0/etc/domain.rnc +++ b/SDT/schema4.0/etc/domain.rnc @@ -14,6 +14,7 @@ Domain = attribute id { xsd:ID }, DocDef, element Imports { Domain+ }?, + element DataTypes { DataTypeDef+ }?, ModuleClasses?, element DeviceClasses { element DeviceClass { diff --git a/SDT/schema4.0/src/domain.rng b/SDT/schema4.0/src/domain.rng index 188fa93..fd4813f 100644 --- a/SDT/schema4.0/src/domain.rng +++ b/SDT/schema4.0/src/domain.rng @@ -36,6 +36,13 @@ </oneOrMore> </element> </optional> + <optional> + <element name="DataTypes"> + <oneOrMore> + <ref name="DataTypeDef"/> + </oneOrMore> + </element> + </optional> <optional> <ref name="ModuleClasses"/> </optional> diff --git a/SDT/schema4.0/src/domain.xsd b/SDT/schema4.0/src/domain.xsd index 72a7717..8222d4b 100644 --- a/SDT/schema4.0/src/domain.xsd +++ b/SDT/schema4.0/src/domain.xsd @@ -20,6 +20,7 @@ <xs:sequence> <xs:group ref="DocDef"/> <xs:element minOccurs="0" ref="Imports"/> + <xs:element minOccurs="0" ref="DataTypes"/> <xs:element minOccurs="0" ref="ModuleClasses"/> <xs:element minOccurs="0" ref="DeviceClasses"/> </xs:sequence> @@ -34,6 +35,13 @@ </xs:sequence> </xs:complexType> </xs:element> + <xs:element name="DataTypes"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="DataType"/> + </xs:sequence> + </xs:complexType> + </xs:element> <xs:element name="DeviceClasses"> <xs:complexType> <xs:sequence> diff --git a/SDT/schema4.0/test/datatypes-test.xml b/SDT/schema4.0/test/datatypes-test.xml new file mode 100644 index 0000000..782b26f --- /dev/null +++ b/SDT/schema4.0/test/datatypes-test.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Test the data types references --> + +<Domain id="datatypes-test" xmlns="http://homegatewayinitiative.org/xml/dal/4.0" xmlns:xi="http://www.w3.org/2001/XInclude"> + <DataTypes> + <DataType name="temperatureType" unitOfMeasure="C"> + <SimpleType type="float"/> + </DataType> + <DataType name="anEnumType"> + <EnumType> + <EnumValue name="red" type="integer" value="1"/> + <EnumValue name="green" value="2"/> + <EnumValue name="blue" value="3"/> + </EnumType> + </DataType> + </DataTypes> +</Domain> \ No newline at end of file diff --git a/SDT/schema4.0/test/enumtype-test.xml b/SDT/schema4.0/test/enumtype-test.xml index 2b7a418..2d92b51 100644 --- a/SDT/schema4.0/test/enumtype-test.xml +++ b/SDT/schema4.0/test/enumtype-test.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- Test the void BasicType --> +<!-- Test the EnumType --> <Domain id="enumtype-test" xmlns="http://homegatewayinitiative.org/xml/dal/4.0" xmlns:xi="http://www.w3.org/2001/XInclude"> <ModuleClasses> -- GitLab