From 982d002d54eb0c346032c4c1ae0fbdc26b893096 Mon Sep 17 00:00:00 2001 From: ankraft <an.kraft@googlemail.com> Date: Fri, 24 May 2019 10:23:51 -0700 Subject: [PATCH] Changed Product to ProductClass. Changed test case accordingly --- SDT/schema4.0/etc/domain.rnc | 13 +++++-------- SDT/schema4.0/src/domain.rng | 16 +++++++++------- SDT/schema4.0/src/domain.xsd | 10 +++++----- SDT/schema4.0/test/product-test.xml | 21 ++++++++++++++++----- 4 files changed, 35 insertions(+), 25 deletions(-) diff --git a/SDT/schema4.0/etc/domain.rnc b/SDT/schema4.0/etc/domain.rnc index ca1ff61..ef0aa0e 100644 --- a/SDT/schema4.0/etc/domain.rnc +++ b/SDT/schema4.0/etc/domain.rnc @@ -18,7 +18,7 @@ Domain = element DataTypes { DataTypeDef+ }?, ModuleClassesDef?, DeviceClassesDef?, - ProductsDef? + ProductClassesDef? } PropertiesDef = element Properties { @@ -128,19 +128,16 @@ ModuleClassesDef = Events? }+ } -ProductsDef = - element Products { - element Product { +ProductClassesDef = + element ProductClasses { + element ProductClass { attribute id { xsd:Name }, attribute semanticURI { xsd:anyURI }?, DocDef, PropertiesDef?, ModuleClassesDef?, SubDevicesRef?, - element DeviceClass { - # TODO: Make optional? - ExtendDef - }, + element DeviceClass { ExtendDef }?, ExtendDef? }+ } diff --git a/SDT/schema4.0/src/domain.rng b/SDT/schema4.0/src/domain.rng index b614d10..678c45d 100644 --- a/SDT/schema4.0/src/domain.rng +++ b/SDT/schema4.0/src/domain.rng @@ -55,7 +55,7 @@ <ref name="DeviceClassesDef" /> </optional> <optional> - <ref name="ProductsDef" /> + <ref name="ProductClassesDef" /> </optional> </element> </define> @@ -366,10 +366,10 @@ </define> - <define name="ProductsDef"> - <element name="Products"> + <define name="ProductClassesDef"> + <element name="ProductClasses"> <oneOrMore> - <element name="Product"> + <element name="ProductClass"> <attribute name="id"> <data type="Name"/> </attribute> @@ -388,9 +388,11 @@ <optional> <ref name="SubDevicesRef" /> </optional> - <element name="DeviceClass"> <!-- TODO: Make optional? --> - <ref name="ExtendDef" /> - </element> + <optional> + <element name="DeviceClass"> + <ref name="ExtendDef" /> + </element> + </optional> <optional> <ref name="ExtendDef" /> </optional> diff --git a/SDT/schema4.0/src/domain.xsd b/SDT/schema4.0/src/domain.xsd index 28b66b2..2033f26 100644 --- a/SDT/schema4.0/src/domain.xsd +++ b/SDT/schema4.0/src/domain.xsd @@ -24,7 +24,7 @@ <xs:element minOccurs="0" ref="DataTypes"/> <xs:element minOccurs="0" ref="ModuleClasses"/> <xs:element minOccurs="0" ref="DeviceClasses"/> - <xs:element minOccurs="0" ref="Products"/> + <xs:element minOccurs="0" ref="ProductClasses"/> </xs:sequence> <xs:attribute ref="xml:base"/> <xs:attribute name="id" use="required" type="xs:Name"/> @@ -275,14 +275,14 @@ </xs:complexContent> </xs:complexType> </xs:element> - <xs:element name="Products"> + <xs:element name="ProductClasses"> <xs:complexType> <xs:sequence> - <xs:element maxOccurs="unbounded" ref="Product"/> + <xs:element maxOccurs="unbounded" ref="ProductClass"/> </xs:sequence> </xs:complexType> </xs:element> - <xs:element name="Product"> + <xs:element name="ProductClass"> <xs:complexType> <xs:complexContent> <xs:extension base="DocDef"> @@ -290,7 +290,7 @@ <xs:element minOccurs="0" ref="Properties"/> <xs:element minOccurs="0" ref="ModuleClasses"/> <xs:element minOccurs="0" ref="SubDevices"/> - <xs:element name="DeviceClass"> + <xs:element minOccurs="0" name="DeviceClass"> <xs:complexType> <xs:sequence> <xs:element ref="Extend"/> diff --git a/SDT/schema4.0/test/product-test.xml b/SDT/schema4.0/test/product-test.xml index 1ac16dd..719eee3 100644 --- a/SDT/schema4.0/test/product-test.xml +++ b/SDT/schema4.0/test/product-test.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<Domain xmlns="http://www.onem2m.org/xml/sdt/4.0" xmlns:xi="http://www.w3.org/2001/XInclude" id="deviceClass-test" > - <Products> - <Product id="TestProduct" semanticURI="http://example.com/TestProduct.rdf"> +<Domain xmlns="http://www.onem2m.org/xml/sdt/4.0" xmlns:xi="http://www.w3.org/2001/XInclude" id="productClass-test" > + <ProductClasses> + <ProductClass id="TestProduct" semanticURI="http://example.com/TestProduct.rdf"> <Doc>This is a test product</Doc> <Properties> <Property name="aProperty"> @@ -25,10 +25,21 @@ <DeviceClass> <Extend domain="deviceClass.test" entity="Test" /> </DeviceClass> - </Product> + </ProductClass> <!-- TODO: test <extends> element, but only when DeviceClas is optional <Product id="AnotherTestProduct"> </Product> --> - </Products> + + <!-- Derived ProductClass --> + + <ProductClass id="DerivedProduct" semanticURI="http://example.com/DerivedProduct.rdf"> + <ModuleClasses> + <ModuleClass name="anotherModuleClass"> + <Extend domain="hgi.dal.core" entity="BooleanState" /> + </ModuleClass> + </ModuleClasses> + <Extend domain="productClass.test" entity="TestProduct" /> + </ProductClass> + </ProductClasses> </Domain> \ No newline at end of file -- GitLab