SDT Build System.md 4.38 KB

SDT Build System

This document describes the SDT build system and how to build the SDT and validate new contributions.

The files referenced in this document point to version 3.0 of the SDT.

Directory Structure and Important Files

Installation

  • Install Java on your computer
  • Download and install Apache ant from http://ant.apache.org
  • Clone the SDT repository from GitHub:

    $ git clone https://github.com/Homegateway/SmartDeviceTemplate.git

How to Use the Build System

After cloning the repository go to the directory SDT/schema and run commands depending on what you want to achieve.

Build the Schema

Running ant without any parameter builds the schema definition from the rng-definition SDT/schema3.0/src/domain.rng and writes it to SDT/schema3.0/src/domain.xsd

$ cd SDT/schema
$ ant

Validate SDT Definitions

You can use the build system to validate new SDT definitions or changes made to existing ones by running the following command:

$ cd SDT/schema
$ ant validate

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 stack trace 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 occurred (here: file mseeb.xml on line 66) and a reason:

[schemavalidate] /Users/someone/Sources/git/SmartDeviceTemplate/SDT/schema/test/mseeb.xml:66:18: cvc-elt.1: Cannot find the declaration of element 'Domain'.
BUILD FAILED


Editing

As mentioned above, the actual schema definition is defined in the file domain.rng and converted to the XML schema definition domain.xsd during the build process.

All changes to the schema must therefore be made in domain.rng, NOT domain.xsd !

You may need to make additional changes in the following files, e.g. when the name space or the version number need to be adjusted.

PLEASE ONLY EDIT THESE FILES IF NECESSARY.