Drawings SDK Developer Guide > Using Drawings Revision Control > Working with the XML Scheme for DRC > Working with the oda:array Tag
Working with the oda:array Tag

The <oda:array> tag means "for/while" in programming. It has two attributes:

  • name="<name>" — Specifies the name of the element by which the value will be retrieved from the cache. The value denotes the number of iterations per cycle. The "*" symbol can be used instead of the name. In such cases, you must specify the condition of the cycle break using the " breakValue = "value" " attribute. For example:
    
    <xs:element name="len" type="xs:int" oda:isArrayLength="" />
    <oda:array name="len">
      <xs:element name="BulgeAt" type="xs:double"/>
    </oda:array>
      
  • oda:breakValue="value | condition value" — Cycles that do not have a specified number of iterations. Entrance to the cycle will be carried out in the required order. The exit from the cycle will be made according to the internal condition. To use this cycle, you must fulfill the following conditions:
    • the attribute name in the <array> tag contains "*".
    • the <array> tag has the "oda:breakValue" attribute.
    • loop contains an element of an integer type with the "oda:isBreak = "" " attribute.
    "oda:breakValue" compares the value or uses the "greater / less than" condition.
    • oda:breakValue="value" — Equal to. The value from "oda:breakValue" is compared with the value of the element which is marked by the "oda:isBreak="" " attribute. If the values are equal, the program exits from the <array> tag. For example:
      
      <oda:array name="*" oda:breakValue="0">
        <xs:element name="someBreakElement" type="xs:int" oda:isBreak=""/>
        <xs:element name="str" type="xs:string"/>
      </oda:array>
      	  
    • oda:breakValue=">value" — Greater than. If the value of the element that is marked by "oda:isBreakValue" is greater than the value, the loop is terminated. For example:
      
      <oda:array name="*" oda:breakValue=">0">
        <xs:element name="someBreakElement" type="xs:int" oda:isBreak=""/>
        <xs:element name="str" type="xs:string"/>
      </oda:array>
      	  
    • oda:breakValue="<value" — Less than. If the value of the element that is marked by "oda:isBreakValue" is less than the value, the loop is terminated. For example:
      
      <oda:array name="*" oda:breakValue="<0">
        <xs:element name="someBreakElement" type="xs:int" oda:isBreak=""/>
        <xs:element name="str" type="xs:string"/>
      </oda:array>
      	  
  • oda:decreaseOn="numeric value" — Decrease the value taken from the "name" attribute (or from the cache by key) by the number specified in "oda:decreaseOn".
  • oda:increaseOn="numeric value" — Increases the value taken from the "name" attribute (or from the cache by key) by the number specified in "oda:increaseIn". For example:
    
    <xs:element name="len" type="xs:int" oda:isArrayLength="" />
    <oda:array name="len" oda:decreaseOn="1">
      <xs:element name="x" type="xs:double"/>
      <xs:element name="y" type="xs:double"/>
      <xs:element name="z" type="xs:double"/>
    </oda:array>
        

See Also

Working with the XML Scheme for Revision Control

Copyright © 2002 – 2020. Open Design Alliance. All rights reserved.