Hi Werner,

Thanks for the help. That solved the issue but the binding file led to
more errors. The new file that is being generated with the binding
doesn't seem to contain some of the methods. Is there a way to fix
that?

Also, I have another problem regarding class name. The class name
generated is NodeRefDirType where the name should have been DirType.
This does not throw a warning for class name generation conflict. But
the generated files cannot be compiled because of this mismatch in
name.

Below is the schema.

Thanks!

Sankalita

<?xml version="1.0" encoding="UTF-8"?>
<!--
     Schema for PLEXIL language supported by UE.  This is distinct from the
     "blessed" schema found in plexil/schema/plexil.xsd, which is the latest
     official PLEXIL specification.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xml:lang="en">
  <xsd:element name="PlexilPlan">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="Node"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:simpleType name="TypeValues">
    <xsd:restriction base="xsd:NMTOKEN">
      <xsd:enumeration value="Integer"/>
      <xsd:enumeration value="Real"/>
      <xsd:enumeration value="Boolean"/>
      <xsd:enumeration value="String"/>
      <xsd:enumeration value="Array"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NCNameOrEmpty">
    <xsd:union memberTypes="xsd:NCName">
      <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:enumeration value=""/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:union>
  </xsd:simpleType>
  <xsd:element name="Node">
    <xsd:complexType>
      <xsd:all>
        <xsd:element name="Comment" type="xsd:string" minOccurs="0"/>
        <xsd:element ref="NodeId"/>
        <xsd:element ref="StartCondition" minOccurs="0"/>
        <xsd:element ref="RepeatCondition" minOccurs="0"/>
        <xsd:element ref="PreCondition" minOccurs="0"/>
        <xsd:element ref="PostCondition" minOccurs="0"/>
        <xsd:element ref="InvariantCondition" minOccurs="0"/>
        <xsd:element ref="EndCondition" minOccurs="0"/>
        <xsd:element ref="SkipCondition" minOccurs="0"/>
        <xsd:element name="Priority" type="xsd:nonNegativeInteger"
minOccurs="0"/>
        <xsd:element name="Permissions" type="xsd:string" minOccurs="0"/>
        <xsd:element ref="Interface" minOccurs="0"/>
        <xsd:element ref="VariableDeclarations" minOccurs="0"/>
        <xsd:element ref="NodeBody" minOccurs="0"/>
      </xsd:all>
      <xsd:attribute name="NodeType" use="required">
        <xsd:simpleType>
          <xsd:restriction base="xsd:NMTOKEN">
            <xsd:enumeration value="NodeList"/>
            <xsd:enumeration value="Command"/>
            <xsd:enumeration value="Assignment"/>
            <xsd:enumeration value="FunctionCall"/>
            <xsd:enumeration value="Update"/>
            <xsd:enumeration value="Request"/>
            <xsd:enumeration value="Empty"/>
            <xsd:enumeration value="LibraryNodeCall"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="NodeId" type="xsd:NCName"/>
  <xsd:attribute name="dir">
    <xsd:simpleType>
      <xsd:restriction base="xsd:NMTOKEN">
        <xsd:enumeration value="parent"/>
        <xsd:enumeration value="sibling"/>
        <xsd:enumeration value="child"/>
        <xsd:enumeration value="self"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:attribute>
  <xsd:element name="NodeRef">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="NCNameOrEmpty">
          <xsd:attribute ref="dir"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="NodeBody">
    <xsd:complexType>
      <xsd:choice>
        <xsd:element ref="NodeList"/>
        <xsd:element ref="Command"/>
        <xsd:element ref="Assignment"/>
        <xsd:element ref="FunctionCall"/>
        <xsd:element ref="Update"/>
        <xsd:element ref="Request"/>
        <xsd:element ref="LibraryNodeCall"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="NodeList">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="Node" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="StartCondition">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="RepeatCondition">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="PreCondition">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="PostCondition">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="InvariantCondition">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="EndCondition">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="SkipCondition">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="Interface">
    <xsd:complexType>
      <xsd:all>
        <xsd:element ref="In" minOccurs="0"/>
        <xsd:element ref="InOut" minOccurs="0"/>
      </xsd:all>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="In">
    <xsd:complexType>
      <xsd:group ref="DeclaredVariable" maxOccurs="unbounded"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="InOut">
    <xsd:complexType>
      <xsd:group ref="DeclaredVariable" maxOccurs="unbounded"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:group name="DeclaredVariable">
    <xsd:choice>
      <xsd:element ref="IntegerVariable"/>
      <xsd:element ref="RealVariable"/>
      <xsd:element ref="BooleanVariable"/>
      <xsd:element ref="StringVariable"/>
      <xsd:element name="ArrayVariable" type="xsd:NCName"/>
      <xsd:element ref="ArrayElement"/>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="Value">
    <xsd:choice>
      <xsd:element ref="IntegerValue"/>
      <xsd:element ref="RealValue"/>
      <xsd:element ref="BooleanValue"/>
      <xsd:element ref="StringValue"/>
    </xsd:choice>
  </xsd:group>
  <xsd:element name="IntegerVariable" type="xsd:NCName"/>
  <xsd:element name="RealVariable" type="xsd:NCName"/>
  <xsd:element name="BooleanVariable" type="xsd:NCName"/>
  <xsd:element name="StringVariable" type="xsd:NCName"/>
  <xsd:element name="DeclareVariable">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Name" type="xsd:NCName" />
        <xsd:element name="Type" type="TypeValues"/>
        <xsd:element name="InitialValue" minOccurs="0">
          <xsd:complexType>
            <xsd:group ref="Value"/>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="DeclareArray">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Name" type="xsd:NCName" />
        <xsd:element name="Type" type="TypeValues"/>
        <xsd:element name="MaxSize" type="xsd:nonNegativeInteger"/>
        <xsd:element name="InitialValue" minOccurs="0">
          <xsd:complexType>
            <xsd:choice>
              <xsd:element ref="IntegerValue" maxOccurs="unbounded"/>
              <xsd:element ref="RealValue" maxOccurs="unbounded"/>
              <xsd:element ref="BooleanValue" maxOccurs="unbounded"/>
              <xsd:element ref="StringValue" maxOccurs="unbounded"/>
            </xsd:choice>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="VariableDeclarations">
    <xsd:complexType>
      <xsd:choice maxOccurs="unbounded">
        <xsd:element ref="DeclareInteger"/>
        <xsd:element ref="DeclareReal"/>
        <xsd:element ref="DeclareBoolean"/>
        <xsd:element ref="DeclareString"/>
        <xsd:element ref="DeclareVariable"/>
        <xsd:element ref="DeclareArray"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="DeclareInteger">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="IntegerVariable"/>
        <xsd:element ref="IntegerValue" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="DeclareReal">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="RealVariable"/>
        <xsd:element ref="RealValue" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="DeclareBoolean">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="BooleanVariable"/>
        <xsd:element ref="BooleanValue" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="DeclareString">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="StringVariable"/>
        <xsd:element ref="StringValue" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="Name">
<!-- of a command or lookup -->
    <xsd:complexType>
      <xsd:group ref="StringExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="Command">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:group ref="DeclaredVariable" minOccurs="0"/>
        <xsd:choice>
          <xsd:element ref="Name"/>
          <xsd:element name="CommandName" type="xsd:string"/>
<!-- for backw compatibility -->
        </xsd:choice>
        <xsd:element ref="Arguments" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="Arguments">
    <xsd:complexType>
      <xsd:choice maxOccurs="unbounded">
<!-- could put expression here ?? -->
        <xsd:element ref="IntegerValue"/>
        <xsd:element ref="RealValue"/>
        <xsd:element ref="BooleanValue"/>
        <xsd:element ref="StringValue"/>
        <xsd:group ref="DeclaredVariable"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="FunctionCall">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:group ref="DeclaredVariable" minOccurs="0"/>
        <xsd:choice>
          <xsd:element ref="Name"/>
          <xsd:element name="FunctionName" type="xsd:string"/>
<!-- for backw compatibility -->
        </xsd:choice>
        <xsd:element ref="Arguments" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="Update">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="Pair" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="Pair">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Name" type="xsd:NCName"/>
        <xsd:choice>
          <xsd:group ref="Value"/>
          <xsd:group ref="DeclaredVariable"/>
          <xsd:element ref="LookupNow"/>
        </xsd:choice>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="Request">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="NodeId" minOccurs="0"/>
<!-- the context -->
        <xsd:element ref="Pair" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="LibraryNodeCall">
<!-- TODO: maybe call this InlineNode -->
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="NodeId"/>
        <xsd:element name="RenameNodeId" type="xsd:NCName" minOccurs="0"/>
        <xsd:element ref="Alias" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="Alias">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="NodeParameter" type="xsd:NCName"/>
        <xsd:choice>
          <xsd:group ref="Value"/>
          <xsd:group ref="DeclaredVariable"/>
        </xsd:choice>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="IntegerValue">
    <xsd:simpleType>
      <xsd:union memberTypes="xsd:integer">
        <xsd:simpleType>
          <xsd:restriction base="xsd:NMTOKEN">
            <xsd:enumeration value="UNKNOWN"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:union>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="RealValue">
    <xsd:simpleType>
      <xsd:union memberTypes="xsd:double">
        <xsd:simpleType>
          <xsd:restriction base="xsd:NMTOKEN">
            <xsd:enumeration value="UNKNOWN"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:union>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="BooleanValue">
    <xsd:simpleType>
      <xsd:union memberTypes="xsd:boolean">
        <xsd:simpleType>
          <xsd:restriction base="xsd:NMTOKEN">
            <xsd:enumeration value="UNKNOWN"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:union>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="StringValue">
    <xsd:simpleType>
      <xsd:union memberTypes="xsd:string">
        <xsd:simpleType>
          <xsd:restriction base="xsd:NMTOKEN">
            <xsd:enumeration value="UNKNOWN"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:union>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="BooleanRHS">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="NumericRHS">
    <xsd:complexType>
      <xsd:group ref="NumericExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="StringRHS">
    <xsd:complexType>
      <xsd:group ref="StringExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="LookupRHS">
    <xsd:complexType>
      <xsd:group ref="Lookup"/>
    </xsd:complexType>
  </xsd:element>
<!-- right now we allow assigning to the whole array; do we want to
assign to individual elements in the array?-->
  <xsd:element name="Assignment">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:group ref="DeclaredVariable"/>
        <xsd:choice>
          <xsd:element ref="BooleanRHS"/>
          <xsd:element ref="NumericRHS"/>
          <xsd:element ref="StringRHS"/>
          <xsd:element ref="LookupRHS"/>
<!-- allows lookups to return multiple values of different types-->
        </xsd:choice>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
<!-- assign multiple vars at the same time: should be only for lookups ???-->
  <xsd:group name="BooleanExpression">
    <xsd:choice>
      <xsd:element ref="OR"/>
      <xsd:element ref="XOR"/>
      <xsd:element ref="AND"/>
      <xsd:element ref="NOT"/>
      <xsd:element ref="IsKnown"/>
      <xsd:element ref="GT"/>
      <xsd:element ref="GE"/>
      <xsd:element ref="LT"/>
      <xsd:element ref="LE"/>
      <xsd:element ref="EQBoolean"/>
      <xsd:element ref="EQNumeric"/>
      <xsd:element ref="EQInternal"/>
      <xsd:element ref="EQString"/>
      <xsd:element ref="NEBoolean"/>
      <xsd:element ref="NENumeric"/>
      <xsd:element ref="NEInternal"/>
      <xsd:element ref="NEString"/>
      <xsd:element ref="BooleanVariable"/>
      <xsd:element ref="BooleanValue"/>
      <xsd:group ref="Lookup"/>
      <xsd:element ref="ArrayElement"/>
    </xsd:choice>
  </xsd:group>
  <xsd:element name="IsKnown">
    <xsd:complexType>
      <xsd:choice>
        <xsd:group ref="DeclaredVariable"/>
        <xsd:group ref="Lookup"/>
        <xsd:element ref="NodeStateVariable"/>
        <xsd:element ref="NodeOutcomeVariable"/>
        <xsd:element ref="NodeTimepointValue"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="OR">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="XOR">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="AND">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="NOT">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:group ref="BooleanExpression"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="GT">
    <xsd:complexType>
      <xsd:group ref="NumericExpression" minOccurs="2" maxOccurs="2"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="GE">
    <xsd:complexType>
      <xsd:group ref="NumericExpression" minOccurs="2" maxOccurs="2"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="LT">
    <xsd:complexType>
      <xsd:group ref="NumericExpression" minOccurs="2" maxOccurs="2"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="LE">
    <xsd:complexType>
      <xsd:group ref="NumericExpression" minOccurs="2" maxOccurs="2"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="EQBoolean">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression" minOccurs="2" maxOccurs="2"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="EQNumeric">
    <xsd:complexType>
      <xsd:group ref="NumericExpression" minOccurs="2" maxOccurs="2"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="EQInternal">
    <xsd:complexType>
      <xsd:choice>
        <xsd:group ref="NodeState" minOccurs="2" maxOccurs="2"/>
        <xsd:group ref="NodeOutcome" minOccurs="2" maxOccurs="2"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="EQString">
    <xsd:complexType>
      <xsd:group ref="StringExpression" minOccurs="2" maxOccurs="2"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="NEBoolean">
    <xsd:complexType>
      <xsd:group ref="BooleanExpression" minOccurs="2" maxOccurs="2"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="NENumeric">
    <xsd:complexType>
      <xsd:group ref="NumericExpression" minOccurs="2" maxOccurs="2"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="NEInternal">
    <xsd:complexType>
      <xsd:choice>
        <xsd:group ref="NodeState" minOccurs="2" maxOccurs="2"/>
        <xsd:group ref="NodeOutcome" minOccurs="2" maxOccurs="2"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="NEString">
    <xsd:complexType>
      <xsd:group ref="StringExpression" minOccurs="2" maxOccurs="2"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:group name="NodeState">
    <xsd:choice>
      <xsd:element ref="NodeStateVariable"/>
      <xsd:element ref="NodeStateValue"/>
    </xsd:choice>
  </xsd:group>
  <xsd:element name="NodeStateVariable">
    <xsd:complexType>
      <xsd:choice>
        <xsd:element ref="NodeRef"/>
        <xsd:element ref="NodeId"/>
<!-- for backw compatibility -->
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="NodeStateValue">
    <xsd:simpleType>
      <xsd:restriction base="xsd:NMTOKEN">
        <xsd:enumeration value="WAITING"/>
        <xsd:enumeration value="EXECUTING"/>
        <xsd:enumeration value="FINISHING"/>
        <xsd:enumeration value="FAILING"/>
        <xsd:enumeration value="ITERATION_ENDED"/>
        <xsd:enumeration value="FINISHED"/>
        <xsd:enumeration value="INACTIVE"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:group name="NodeOutcome">
    <xsd:choice>
      <xsd:element ref="NodeOutcomeVariable"/>
      <xsd:element ref="NodeOutcomeValue"/>
    </xsd:choice>
  </xsd:group>
  <xsd:element name="NodeOutcomeVariable">
    <xsd:complexType>
      <xsd:choice>
        <xsd:element ref="NodeRef"/>
        <xsd:element ref="NodeId"/>
<!-- for backw compatibility -->
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="NodeOutcomeValue">
    <xsd:simpleType>
      <xsd:restriction base="xsd:NMTOKEN">
        <xsd:enumeration value="SUCCESS"/>
        <xsd:enumeration value="FAILURE"/>
        <xsd:enumeration value="SKIPPED"/>
        <xsd:enumeration value="INFINITE_LOOP"/>
        <xsd:enumeration value="UNKNOWN"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:element name="NodeTimepointValue">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:choice>
          <xsd:element ref="NodeRef"/>
          <xsd:element ref="NodeId"/>
<!-- for backw compatibility -->
        </xsd:choice>
        <xsd:element ref="NodeStateValue"/>
        <xsd:element ref="Timepoint"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="Timepoint">
    <xsd:simpleType>
      <xsd:restriction base="xsd:NMTOKEN">
        <xsd:enumeration value="START"/>
        <xsd:enumeration value="END"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
  <xsd:group name="StringExpression">
    <xsd:choice>
      <xsd:element ref="StringVariable"/>
      <xsd:element ref="StringValue"/>
      <xsd:element ref="Concat"/>
      <xsd:group ref="Lookup"/>
      <xsd:element ref="ArrayElement"/>
    </xsd:choice>
  </xsd:group>
  <xsd:element name="Concat">
<!-- should it be in core Plexil? -->
    <xsd:complexType>
      <xsd:group ref="StringExpression" minOccurs="2" maxOccurs="unbounded"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:group name="NumericExpression">
    <xsd:choice>
      <xsd:element ref="ADD"/>
      <xsd:element ref="SUB"/>
      <xsd:element ref="MUL"/>
      <xsd:element ref="DIV"/>
      <xsd:element ref="SQRT"/>
      <xsd:element ref="ABS"/>
      <xsd:element ref="IntegerVariable"/>
      <xsd:element ref="RealVariable"/>
      <xsd:element ref="IntegerValue"/>
      <xsd:element ref="RealValue"/>
      <xsd:group ref="Lookup"/>
<!-- only for lookups that return ONE value -->
      <xsd:element ref="NodeTimepointValue"/>
<!-- read operations for arrays-->
      <xsd:element name="ArraySize" type="xsd:NCName"/>
      <xsd:element name="ArrayMaxSize" type="xsd:NCName"/>
      <xsd:element ref="ArrayElement"/>
    </xsd:choice>
  </xsd:group>
  <xsd:element name="ArrayElement">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Name" >
          <xsd:complexType>
            <xsd:group ref="StringExpression"/>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="Index">
          <xsd:complexType>
            <xsd:group ref="NumericExpression"/>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="ADD">
    <xsd:complexType>
      <xsd:group ref="NumericExpression" minOccurs="2" maxOccurs="unbounded"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="SUB">
    <xsd:complexType>
      <xsd:group ref="NumericExpression" minOccurs="2" maxOccurs="2"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="MUL">
    <xsd:complexType>
      <xsd:group ref="NumericExpression" minOccurs="2" maxOccurs="unbounded"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="DIV">
    <xsd:complexType>
      <xsd:group ref="NumericExpression" minOccurs="2" maxOccurs="2"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="SQRT">
    <xsd:complexType>
      <xsd:group ref="NumericExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="ABS">
    <xsd:complexType>
      <xsd:group ref="NumericExpression"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:group name="Lookup">
    <xsd:choice>
      <xsd:element ref="LookupWithFrequency"/>
      <xsd:element ref="LookupOnChange"/>
      <xsd:element ref="LookupNow"/>
    </xsd:choice>
  </xsd:group>
  <xsd:element name="LookupWithFrequency">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:choice>
          <xsd:element ref="Name"/>
<!-- for backw compatibility -->
          <xsd:element name="StateName" type="xsd:string"/>
        </xsd:choice>
        <xsd:element ref="Frequency"/>
        <xsd:element ref="Arguments" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="Frequency">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="Low"/>
        <xsd:element ref="High" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="Low">
    <xsd:complexType>
      <xsd:choice>
        <xsd:element ref="RealValue"/>
        <xsd:element ref="RealVariable"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="High">
    <xsd:complexType>
      <xsd:choice>
        <xsd:element ref="RealValue"/>
        <xsd:element ref="RealVariable"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="LookupOnChange">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:choice>
          <xsd:element ref="Name"/>
          <xsd:element name="StateName" type="xsd:string"/>
<!-- for backw compatibility -->
        </xsd:choice>
        <xsd:element ref="Tolerance" minOccurs="0"/>
        <xsd:element ref="Arguments" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="Tolerance">
    <xsd:complexType>
      <xsd:choice>
        <xsd:element ref="RealValue"/>
        <xsd:element ref="RealVariable"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="LookupNow">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:choice>
          <xsd:element ref="Name"/>
          <xsd:element name="StateName" type="xsd:string"/>
<!-- for backw compatibility -->
        </xsd:choice>
        <xsd:element ref="Arguments" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>


On Tue, Jul 8, 2008 at 12:29 AM, Werner Guttmann
<[EMAIL PROTECTED]> wrote:
> Good morning Sankalita,
>
> you have an erroneous ';' in the first line of your <binding> element.
> Simply remove that one, and you should be fine. Any XML editor should
> highlight such problems by definition.
>
> Werner
>
> Sankalita wrote:
>> Hi,
>>
>> I've been trying to create a binding file to resolve class name
>> generator conflicts for castor. I'm ending up with the following
>> error:
>>
>> Element type "binding" must be followed by either attribute
>> specifications, ">" or "/>".{File:
>> file:///C:/Work/RSE/Eclipse_workspace/Plexil2JPF/binding.xml; line: 1;
>> column: 63}
>> org.exolab.castor.xml.MarshalException: Element type "binding" must be
>> followed by either attribute specifications, ">" or "/>".{File:
>> file:///C:/Work/RSE/Eclipse_workspace/Plexil2JPF/binding.xml; line: 1;
>> column: 63}
>>
>> I'm new to castor and binding files. Am I missing something very basic?
>>
>> Thanks,
>>
>>
>> Here's the binding file content:
>> <binding xmlns="http://www.castor.org/SourceGenerator/Binding";;
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";;
>> defaultBinding="element">
>>
>>
>>    <elementBinding name="/Name">
>>       <java-class name="Name"/>
>>    </elementBinding>
>>
>>    <elementBinding name="/ArrayElement/Name">
>>       <java-class name="ArrayElementName"/>
>>    </elementBinding>
>>
>>    <elementBinding name="/DeclareVariable/InitialValue">
>>       <java-class name="DeclareVariableInitialValue"/>
>>    </elementBinding>
>>
>>    <elementBinding name="/DeclareArray/InitialValue">
>>       <java-class name="DeclareArrayInitialValue"/>
>>    </elementBinding>
>>
>> </binding>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>     http://xircles.codehaus.org/manage_email
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>
>

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to