Hi Werner, I studied the information that you mention below. I had two questions:
1) the types of collisions that I get are the types of collisions that are handled by the automatic conflict detector of Castor. I updated the properties file as suggested: org.exolab.castor.builder.automaticConflictResolution=true but the problem does not get solved. Any idea why? 2) If I am to create a bindings file to deal with these problems, how do I tell Castor to look at this bindings file? Also, is there any place with more examples than the link you sent? Thanks, Dimitra --- On Tue, 6/24/08, Werner Guttmann <[EMAIL PROTECTED]> wrote: > From: Werner Guttmann <[EMAIL PROTECTED]> > Subject: Re: [castor-user] Wrong class names in generated code > To: [email protected] > Date: Tuesday, June 24, 2008, 12:32 AM > 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 --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email

