|
View:
New views
9 Messages
—
Rating Filter:
Alert me
|
|
|
Wrong class names in generated codeWhen running org.exolab.castor.builder.SourceGeneratorMain,
I get some instances where the class names are wrong in the generated code, for example, I get "plexil.types.DirType" instead of "plexil.types.NodeDefDirType" So I get compilation errors (because DirType does not exist, for example). When I fix it by hand, everything works as intended. However, since this is supposed to be an automated step, manually fixing this is not an option. Is this a known problem? Is there something I am doing wrong? Thanks, Dimitra --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
|
|
Re: Wrong class names in generated codeHi Dimitra,
hard to say. Such things (wrong class names, compilation problems, ...) usually happen if you have naming conflicts in your XML schema, and Castor hence is not capable of resolving those automatically (read without your intervention, e.g. through a binding file). Can you show us an example of some XML schema fragments where the code is being generated wrongly ? Werner Dimitra Giannakopoulou wrote: > When running org.exolab.castor.builder.SourceGeneratorMain, > > I get some instances where the class names are wrong in the generated > code, for example, > > I get "plexil.types.DirType" instead of "plexil.types.NodeDefDirType" > > > So I get compilation errors (because DirType does not exist, for > example). When I fix it by hand, everything works as intended. > However, since this is supposed to be an automated step, manually > fixing this is not an option. > > Is this a known problem? Is there something I am doing wrong? > > Thanks, > > Dimitra > > > > > > > --------------------------------------------------------------------- > 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 |
|
|
Re: Wrong class names in generated codeHi Werner,
indeed, I got the following warnings while I was running Castor but told it to continue anyway. ---- Warning: A class name generation conflict has occured between element '/Name' and element '/ArrayElement/Name'. Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y Warning: A class name generation conflict has occured between element '/DeclareVariable/InitialValue' and element '/DeclareArray/InitialValue'. Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y ---- Could you send me some pointer / information or examples on creating binding files to solve such problems? (I just have no experience with XML - I am just using Castor to translate a schema produced by another team). I will see if I can also send you portions of the schema. Thanks, Dimitra --- On Fri, 6/20/08, Werner Guttmann <werner.guttmann@...> wrote: > From: Werner Guttmann <werner.guttmann@...> > Subject: Re: [castor-user] Wrong class names in generated code > To: user@... > Cc: dim_gianna@... > Date: Friday, June 20, 2008, 3:27 AM > Hi Dimitra, > > hard to say. Such things (wrong class names, compilation > problems, ...) > usually happen if you have naming conflicts in your XML > schema, and > Castor hence is not capable of resolving those > automatically (read > without your intervention, e.g. through a binding file). > > Can you show us an example of some XML schema fragments > where the code > is being generated wrongly ? > > Werner > > Dimitra Giannakopoulou wrote: > > When running > org.exolab.castor.builder.SourceGeneratorMain, > > > > I get some instances where the class names are wrong > in the generated > > code, for example, > > > > I get "plexil.types.DirType" instead of > "plexil.types.NodeDefDirType" > > > > > > So I get compilation errors (because DirType does not > exist, for > > example). When I fix it by hand, everything works as > intended. > > However, since this is supposed to be an automated > step, manually > > fixing this is not an option. > > > > Is this a known problem? Is there something I am doing > wrong? > > > > Thanks, > > > > Dimitra > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > 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 |
|
|
Re: Wrong class names in generated codeHi 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 |
|
|
Re: Wrong class names in generated codeDimitra,
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> > & |