Dimitra,

have a look at

http://castor.org/srcgen-binding.html

which should have all information you need to define custom bindings for
those artifacts of your XML schema 'being part' of a naming collision.

Regards
Werner


Dimitra Giannakopoulou wrote:
> Hi again Werner,
> 
> as I said in my previous message, I get the following warnings:
> 
> Warning: A class name generation conflict has occured between element '/Name' 
> and element '/ArrayElement/Name'. 
> 
> Warning: A class name generation conflict has occured between element 
> '/DeclareVariable/InitialValue' and element '/DeclareArray/InitialValue'. 
> 
> 
> I am attaching the schema at the end of this message - but if what confuses 
> Castor is bad XML, I could ask my colleagues to change the schema. Otherwise, 
> I could try to resolve this issue by providing a Binding file, I guess.
> 
> Thank you so much for the help!  
> 
> <?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>
> 
> 
> 
>       
> 
> ---------------------------------------------------------------------
> 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