From ac15812e8b5658c9ca09960a0ec2a0d1091e2955 Mon Sep 17 00:00:00 2001
From: Andreas Kraft <akr@mheg.org>
Date: Wed, 6 May 2015 23:19:36 +0200
Subject: [PATCH] Added Event. Small correction to build system doc

---
 SDT/schema2.0/docs/SDT Build System.md |   4 +-
 SDT/schema2.0/docs/SDT_Components.md   | 122 ++++++++++++++++++-------
 SDT/schema2.0/docs/images/Event.png    | Bin 0 -> 2993 bytes
 3 files changed, 93 insertions(+), 33 deletions(-)
 create mode 100644 SDT/schema2.0/docs/images/Event.png

diff --git a/SDT/schema2.0/docs/SDT Build System.md b/SDT/schema2.0/docs/SDT Build System.md
index 4a483fd..817ec3e 100644
--- a/SDT/schema2.0/docs/SDT Build System.md	
+++ b/SDT/schema2.0/docs/SDT Build System.md	
@@ -36,13 +36,13 @@ You can use the build system to validate new SDT definitions or changes made to
 	$ cd SDT/schema
 	$ ant validate
 
-The last lines of the many screens full of output you receive should look something like this:
+The output after a successful validation should look like this:
 
 >[schemavalidate] 2 file(s) have been successfully validated.  
 >BUILD SUCCESSFUL  
 >Total time: 1 second
 
-Otherwise you most likely receive a stacktrace. Search the output for the line *BUILD FAILED*. Above this line you will find some helpful hints for the filename and line number on which the error occured (here: file *mseeb.xml* on line 66) and a reason:	
+Otherwise you most likely receive a stacktrace or some other error messages. Search the output for the line *BUILD FAILED*. Above this line you will find some helpful hints for the filename and line number on which the error occured (here: file *mseeb.xml* on line 66) and a reason:	
 
 >[schemavalidate] /Users/someone/Sources/git/RWD050/SDT/schema/test/mseeb.xml:66:18: cvc-elt.1: Cannot find the declaration of element 'Domain'.    
 >BUILD FAILED
diff --git a/SDT/schema2.0/docs/SDT_Components.md b/SDT/schema2.0/docs/SDT_Components.md
index 3ca05b4..f6e3f97 100644
--- a/SDT/schema2.0/docs/SDT_Components.md
+++ b/SDT/schema2.0/docs/SDT_Components.md
@@ -1,6 +1,6 @@
 # SDT Components
 
-In this document an overview about the SDT 2.0 ødefinitions and component hierarchy is given.
+In this document an overview about the SDT 2.0 definitions and component hierarchy is given.
 
 ## Contents
 
@@ -10,7 +10,6 @@ In this document an overview about the SDT 2.0 ødefinitions and component hiera
 [ModuleClass](#ModuleClass)  
 &nbsp;&nbsp;&nbsp;[Action](#Action)  
 &nbsp;&nbsp;&nbsp;[Data](#Data)  
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DataPoint](#DataPoint)  
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DataType](#DataType)  
 &nbsp;&nbsp;&nbsp;[Event](#Event) 
 
@@ -219,8 +218,6 @@ The *Arg* has the following attributes and elements:
 	- **type** : The type of the *Arg*. It must comply to one of the defined *DataTypes*. Attribute. Required.
 	- **Doc** : Documentation for the *Arg*. Element. Optional.
 
-
-
 #### Example
 The following are two examples for actions implementing a getter and a setter for boolean values.
 
@@ -237,61 +234,80 @@ The following are two examples for actions implementing a getter and a setter fo
 
 ---
 
+<a name="Data"/></a>
 ### Data
-The 'Data' component represents a list of 'DataPoints'
+The *Data* component represents a list of *DataPoints*.
 
 ![](images/Data.png)
 
+Though *DataPoints* only refer to single data points of a physical device it is possible to describe hierarchies by model the path to the data point in the hierarchy by a path-like structure like to the pathname of a UNIX file system. Here, the root node of the hierarchy is a slash (/ TODO hex value) and the nodes along the path are also separated by slashes. The actual datapoint is the last leaf at the path. 
+
+In BNF:
+
+	name := leaf | '/' path .
+	path : = node '/' path | leaf.
+	node := String . 
+	leaf := String .
+	String := [character string excluding the character '/'] .
+
+
 #### Attributes
 None.
 
 #### Elements
-- **DataPoint** : Zero or more occurances of **DataPoints**. Optional.  
+- **DataPoint** : Zero or more occurances of *DataPoints. Optional.  
+A *DataPoint* has the following attributes and elements:
+	- **name** : The name (and possible path in a hierarchical data model) of the *DataPoint*. Attribute. Required.
+	- **type** : The type of the *DataPoint*. It must comply to one of the defined *DataTypes*. Attribute. Required.
+	- **writable** : Boolean value that indicates whether this *DataPoint* is writable by an application. Attribute. Optional. Default: false.
+	- **readable** : Boolean value that indicates whether this *DataPoint* is readable by an application. Attribute. Optional. Default: false.
+	- **eventable** : Boolean value that indicates whether an internal or external change of this *DataPoint* raises an event. Attribute. Optional. Default: false.
+	- **Doc** : Documentation for the *DataPoint*. Element. Optional.
+
 
 #### Example
 	<Data>
-		<!-- List of DataPoints goes here -->
+		<DataPoint  name="attributeName" type="string" writable="false">
+			<Doc>Some documentation for the DataPoint</Doc>
+		</DataPoint>
 	</Data>
 
 ---
 
-#### DataPoint
-
-![](images/xx.png)
-
-#### Attributes
-#### Elements
-#### Example
-
----
 
 <a name="DataType"/></a>
 ### DataType
-The currently allowed *DataTypes* for SDT *Actions*, *Args* and *DataTypes* are:
-
-- **boolean** :
-- **byte** :
-- **integer** :
-- **float** :
-- **string** :
-- **enum** :
-- **date** :
-- **time** :
-- **datetime** :
-- **blob** :
+The following *DataTypes* can be used in the SDT's *Actions*, *Args* and *DataTypes* elements and attributes. If not stated otherwise datatypes should comply to the equivalent datatypes defined in [XML Schema Part 2: Datatypes Second Edition](http://www.w3.org/TR/xmlschema-2/#boolean):
+
+- **boolean** : A boolean value as defined by [http://www.w3.org/TR/xmlschema-2/#boolean](http://www.w3.org/TR/xmlschema-2/#boolean) .
+- **byte** : An integer datatype with the range of [0 - 255] as defined by [http://www.w3.org/TR/xmlschema-2/#unsignedByte](http://www.w3.org/TR/xmlschema-2/#unsignedByte) .
+- **integer** : An integer value as defined by [http://www.w3.org/TR/xmlschema-2/#integer](http://www.w3.org/TR/xmlschema-2/#integer) .
+- **float** : An IEEE single-precision 32-bit floating point type as defined by [http://www.w3.org/TR/xmlschema-2/#float](http://www.w3.org/TR/xmlschema-2/#float) .
+- **string** : The string datatype represents character strings as defined by [http://www.w3.org/TR/xmlschema-2/#string](http://www.w3.org/TR/xmlschema-2/#string) .
+- **enum** : A complete and orderd list of items in a collection. Items in an enumeration are separated by commas (, 0x2c) and must be of one of the datatypes defined here. Commas (, 0x2c) and backslashes (\ 0x5c) in enumaration items must be escaped by backslash.
+- **date** : A date value as defined by [http://www.w3.org/TR/xmlschema-2/#date](http://www.w3.org/TR/xmlschema-2/#date) .
+- **time** : A time value as defined by [http://www.w3.org/TR/xmlschema-2/#time](http://www.w3.org/TR/xmlschema-2/#time) .
+- **datetime** : A time value as defined by [http://www.w3.org/TR/xmlschema-2/#dateTime](http://www.w3.org/TR/xmlschema-2/#dateTime) .
+- **blob** : A blob value represents a binary object. The internal encoding is transparent and not defined here. The binary object must be encoded conforming to [http://www.w3.org/TR/xmlschema-2/#base64Binary](http://www.w3.org/TR/xmlschema-2/#base64Binary) .
+- **uri** : A URI that represents a Uniform Resource Identifier Reference (URI) as defined by as defined by [RFC 2396](http://www.ietf.org/rfc/rfc2396.txt) and amended by [RFC 2732](http://www.ietf.org/rfc/rfc2732.txt) .
 
 ---
 
-
+<a name="Event"/></a>
 ### Event
+An *Event* is a component that defines properties for events that are raised as reactions to changes in *DataPoints* of a *device's* data model. These state changes can happen either through a device-internal change or by external means, e.g. a user operates a switch or the temperature in a room rises beyond a certain threshold.
 
-![](images/xx.png)
+![](images/Event.png)
 
 #### Attributes
+- **name** : The name of the *Event*. Required.
+
 #### Elements
-#### Example
+- **Data** : A list of *Data* components. Optional.
 
+#### Example
 
+TODO continue
 
 
 
@@ -301,6 +317,50 @@ The currently allowed *DataTypes* for SDT *Actions*, *Args* and *DataTypes* are:
 # DOC TBD
 Explain. Describe content elements
 
+	DocText := [ text | emphasizedText | boldText | monotypeText ] * . 
+
+
+	<define name="DocText">
+		<zeroOrMore>
+			<choice>
+				<text/>
+				<element name="em">
+					<text/>
+				</element>
+				<element name="b">
+					<text/>
+				</element>
+				<element name="tt">
+					<text/>
+				</element>
+			</choice>
+		</zeroOrMore>
+	</define>
+
+
+	<define name="Doc">
+		<optional>
+			<element name="Doc">
+				<choice>
+					<ref name="DocText"/>
+					<zeroOrMore>
+						<choice>
+							<element name="p">
+								<ref name="DocText"/>
+							</element>
+							<element name="img">
+								<attribute name="src"/>
+								<element name="caption">
+									<text/>
+								</element>
+							</element>
+						</choice>
+					</zeroOrMore>
+				</choice>
+			</element>
+		</optional>
+	</define>
+
 
 
 
diff --git a/SDT/schema2.0/docs/images/Event.png b/SDT/schema2.0/docs/images/Event.png
new file mode 100644
index 0000000000000000000000000000000000000000..d8cebcfac88916349d0ab0cf3d5de0590b30d4e8
GIT binary patch
literal 2993
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

literal 0
HcmV?d00001

-- 
GitLab