Open dloureiro opened 12 years ago
content of FWorkflow.xsd file :
<schema
xmlns='http://www.w3.org/2000/10/XMLSchema'
targetNamespace='http://www.w3.org/namespace/'
xmlns:t='http://www.w3.org/namespace/'>
<element name='workflow'>
<complexType>
<sequence>
<element ref='t:include' minOccurs='0' maxOccurs='unbounded'/>
<element ref='t:interface'/>
<element ref='t:processors'/>
<element ref='t:links'/>
</sequence>
<attribute name='class' type='string' use='optional'/>
<attribute name='name' type='string' use='optional'/>
</complexType>
</element>
<element name='include'>
<complexType>
<attribute name='file' type='string' use='required'/>
</complexType>
</element>
<element name='interface'>
<complexType>
<choice minOccurs='0' maxOccurs='unbounded'>
<element ref='t:source'/>
<element ref='t:sink'/>
<element ref='t:constant'/>
</choice>
</complexType>
</element>
<element name='source'>
<complexType>
<attribute name='name' type='string' use='required'/>
<attribute name='type' type='string' use='required'/>
</complexType>
</element>
<element name='sink'>
<complexType>
<attribute name='name' type='string' use='required'/>
<attribute name='type' type='string' use='required'/>
</complexType>
</element>
<element name='constant'>
<complexType>
<attribute name='name' type='string' use='required'/>
<attribute name='type' type='string' use='required'/>
<attribute name='value' type='string' use='required'/>
<attribute name='cardinality' type='string' use='optional'/>
</complexType>
</element>
<element name='processors'>
<complexType>
<choice minOccurs='0' maxOccurs='unbounded'>
<element ref='t:processor'/>
<element ref='t:condition'/>
<element ref='t:merge'/>
<element ref='t:filter'/>
<element ref='t:loop'/>
<element ref='t:subWorkflow'/>
</choice>
</complexType>
</element>
<element name='processor'>
<complexType>
<sequence>
<element ref='t:param' minOccurs='0' maxOccurs='unbounded'/>
<element ref='t:in' maxOccurs='unbounded'/>
<element ref='t:inOut' minOccurs='0' maxOccurs='unbounded'/>
<element ref='t:out' minOccurs='0' maxOccurs='unbounded'/>
<element ref='t:iterationstrategy' minOccurs='0' maxOccurs='1'/>
<choice minOccurs='0' maxOccurs='unbounded'>
<element ref='t:diet'/>
<element ref='t:beanshell'/>
<element ref='t:gasw'/>
</choice>
</sequence>
<attribute name='name' type='string' use='required'/>
</complexType>
</element>
<element name='param'>
<complexType>
<attribute name='name' type='string' use='required'/>
<attribute name='type' type='string' use='required'/>
</complexType>
</element>
<element name='in'>
<complexType>
<attribute name='name' type='string' use='required'/>
<attribute name='type' type='string' use='required'/>
<attribute name='depth' type='string' use='default' value='0'/>
<attribute name='interface' type='string' use='optional'/>
</complexType>
</element>
<element name='inOut'>
<complexType>
<attribute name='name' type='string' use='required'/>
<attribute name='type' type='string' use='required'/>
<attribute name='depth' type='string' use='default' value='0'/>
<attribute name='card' type='string' use='optional'/>
<attribute name='interface' type='string' use='optional'/>
</complexType>
</element>
<element name='out'>
<complexType>
<attribute name='name' type='string' use='required'/>
<attribute name='type' type='string' use='required'/>
<attribute name='depth' type='string' use='default' value='0'/>
<attribute name='card' type='string' use='optional'/>
<attribute name='interface' type='string' use='optional'/>
</complexType>
</element>
<element name='iterationstrategy'>
<complexType>
<choice>
<element ref='t:cross'/>
<element ref='t:dot'/>
<element ref='t:flatcross'/>
<element ref='t:match'/>
</choice>
</complexType>
</element>
<element name='cross'>
<complexType>
<choice minOccurs='0' maxOccurs='unbounded'>
<element ref='t:cross'/>
<element ref='t:dot'/>
<element ref='t:flatcross'/>
<element ref='t:match'/>
<element ref='t:port'/>
</choice>
</complexType>
</element>
<element name='dot'>
<complexType>
<choice minOccurs='0' maxOccurs='unbounded'>
<element ref='t:cross'/>
<element ref='t:dot'/>
<element ref='t:flatcross'/>
<element ref='t:match'/>
<element ref='t:port'/>
</choice>
</complexType>
</element>
<element name='flatcross'>
<complexType>
<choice minOccurs='0' maxOccurs='unbounded'>
<element ref='t:cross'/>
<element ref='t:dot'/>
<element ref='t:flatcross'/>
<element ref='t:match'/>
<element ref='t:port'/>
</choice>
</complexType>
</element>
<element name='match'>
<complexType>
<choice minOccurs='0' maxOccurs='unbounded'>
<element ref='t:cross'/>
<element ref='t:dot'/>
<element ref='t:flatcross'/>
<element ref='t:match'/>
<element ref='t:port'/>
</choice>
</complexType>
</element>
<element name='port'>
<complexType>
<attribute name='name' type='string' use='required'/>
</complexType>
</element>
<element name='diet'>
<complexType>
<attribute name='path' type='string' use='required'/>
<attribute name='max-instances' type='string' use='optional'/>
<attribute name='estimation' type='string' use='optional'/>
</complexType>
</element>
<element name='beanshell'>
<complexType mixed='true'>
</complexType>
</element>
<element name='gasw'>
<complexType>
<attribute name='descriptor' type='string' use='optional'/>
</complexType>
</element>
<element name='condition'>
<complexType>
<sequence>
<element ref='t:in' maxOccurs='unbounded'/>
<element ref='t:outThen' minOccurs='0' maxOccurs='unbounded'/>
<element ref='t:outElse' minOccurs='0' maxOccurs='unbounded'/>
<element ref='t:if'/>
<element ref='t:then'/>
<element ref='t:else' minOccurs='0' maxOccurs='1'/>
<element ref='t:iterationstrategy' minOccurs='0' maxOccurs='1'/>
</sequence>
<attribute name='name' type='string' use='required'/>
</complexType>
</element>
<element name='outThen'>
<complexType>
<attribute name='name' type='string' use='required'/>
<attribute name='type' type='string' use='required'/>
<attribute name='depth' type='string' use='default' value='0'/>
</complexType>
</element>
<element name='outElse'>
<complexType>
<attribute name='name' type='string' use='required'/>
<attribute name='type' type='string' use='required'/>
<attribute name='depth' type='string' use='default' value='0'/>
</complexType>
</element>
<element name='if'>
<complexType mixed='true'>
</complexType>
</element>
<element name='then'>
<complexType mixed='true'>
</complexType>
</element>
<element name='else'>
<complexType mixed='true'>
</complexType>
</element>
<element name='merge'>
<complexType>
<sequence>
<element ref='t:in'/>
<element ref='t:in'/>
<element ref='t:out'/>
</sequence>
<attribute name='name' type='string' use='required'/>
</complexType>
</element>
<element name='filter'>
<complexType>
<sequence>
<element ref='t:in'/>
<element ref='t:out'/>
</sequence>
<attribute name='name' type='string' use='required'/>
</complexType>
</element>
<element name='loop'>
<complexType>
<sequence>
<element ref='t:in' maxOccurs='unbounded'/>
<element ref='t:out' maxOccurs='unbounded'/>
<element ref='t:inLoop' maxOccurs='unbounded'/>
<element ref='t:outLoop' maxOccurs='unbounded'/>
<element ref='t:while'/>
<element ref='t:do'/>
<element ref='t:iterationstrategy' minOccurs='0' maxOccurs='1'/>
</sequence>
<attribute name='name' type='string' use='required'/>
</complexType>
</element>
<element name='inLoop'>
<complexType>
<attribute name='name' type='string' use='required'/>
<attribute name='type' type='string' use='required'/>
<attribute name='init' type='string' use='required'/>
<attribute name='depth' type='string' use='default' value='0'/>
</complexType>
</element>
<element name='outLoop'>
<complexType>
<attribute name='name' type='string' use='required'/>
<attribute name='type' type='string' use='required'/>
<attribute name='final' type='string' use='required'/>
<attribute name='depth' type='string' use='default' value='0'/>
</complexType>
</element>
<element name='while'>
<complexType mixed='true'>
</complexType>
</element>
<element name='do'>
<complexType mixed='true'>
</complexType>
</element>
<element name='subWorkflow'>
<complexType>
<sequence>
<element ref='t:in' maxOccurs='unbounded'/>
<element ref='t:out' minOccurs='0' maxOccurs='unbounded'/>
<element ref='t:iterationstrategy' minOccurs='0' maxOccurs='1'/>
</sequence>
<attribute name='name' type='string' use='required'/>
<attribute name='class' type='string' use='required'/>
</complexType>
</element>
<element name='links'>
<complexType>
<sequence>
<element ref='t:link' minOccurs='0' maxOccurs='unbounded'/>
</sequence>
</complexType>
</element>
<element name='link'>
<complexType>
<attribute name='from' type='string' use='required'/>
<attribute name='to' type='string' use='required'/>
</complexType>
</element>
</schema>
this bug is related to references(i.e "ref" attributes) which are not managed now. Planing to add this feature quickly.
Thanks for the answer!
Hello,
when trying to use cxbindings, for the xsd file (generated with dtd2xsd.pl from w3c based on the FWorkflow.dtd provided with the DIET distribution) FWorkflow.dtd, and the following command line from the binary directory containing cxb :
./cxb -f /tmp/FWorkflow.xsd -g CPPObjects -i ../../share/XSDGrammar.xml -n sysfera -t ../../share/CppObjectsStd.templates.xml -o /tmp/cxbwf
I got the following error :
The application encountered an error at /Users/dloureiro/devel/cxbindings/cxbindings/libcxbindings/src/CXBindingsInterpreter.cpp, on line 270. The error message is:
CXBindings Version revision 1123build: gcc 421 Aug 6 2012 18:40:33
Do you know where the problem could be located?