Hi, Dimitra Giannakopoulou wrote: > 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? No, not really. Can you give me an example where you think that the automatic conflict resolution should work, but does not ?
> 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? How are you using the XML code generator ? Ant ? Maven ? Command line ? Basically, the SourceGenerator class has a setBinding() method, and that's being used to point the code generator to a binding file. Default is to not use one. > Also, is there any > place with more examples than the link you sent? Yes, there is. But for this you would have to have a look at the sources of this project, and the xmlctf module in particular. There you would find a test suite of ca. 450 tests, with lots of binding file samples. > > 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 > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email

