Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Developers can define different kinds on constraints on model attributes. The general grammar of constraints are defined in the TQL Model grammar There are two types of references

  • Simple Reference
  • Smart Reference

Simple Reference

Simple reference is defined using name and type modifier. The data associations between two models is automatically done via SID. 

Unique Constraint on Attribute LightNumber
<Reference cardinality="1..1" name="reference name" type="name of model/def"/>

In this example thingCat is a reference attribute of VendorInfo. thingCat References 1 (cardinality is 1) instance of ThingCategory. The value of thingCat must be the SID of the ThingCategory instance.

Unique Constraint Violation Error
<DataModel Name="VendorInfo">
      <Sid Name="vendorId"/>
      <String Name="vendorName"/>
      <String Name="vendorCity"/>
      <Reference cardinality="1..1" name="thingCat" type="ThingCategory"/>
</DataModel>
<DataModel Name="ThingCategory">
      <Sid Name="thingCatID"/>
      <String Name="catList" cardinality="1..n"/>
</DataModel>


<!-- Let's Create few Thing Categories. -->
<Query>
  <DeleteAll>
    <ThingCategory>
      <thingCatID ne=""/>
    </ThingCategory>
  </DeleteAll>
  <Create>
    <ThingCategory>
      <catList>
        Sensors
      </catList>
    </ThingCategory>
  </Create>
  <Create>
    <ThingCategory>
      <catList>
        Actuators
      </catList>
    </ThingCategory>
  </Create>
  <Create>
    <ThingCategory>
      <catList>
        Sensors
      </catList>
      <catList>
        Actuators
      </catList>
      <catList>
        Gateways
      </catList>
    </ThingCategory>
  </Create>
</Query>


<!-- Now create VendorInfo with ThingCategory SID Value -->
<Query>
  <Create>
    <VendorInfo>
      <vendorId>
        vendorA
      </vendorId>
      <vendorName>
        Phidget
      </vendorName>
      <vendorCity>
        Calgary
      </vendorCity>
      <thingCat>
        LOBF4FOGAAAX6AAAAGEWWHEH
      </thingCat>
    </VendorInfo>
  </Create>
</Query>

Smart Reference


  • No labels