nmacherey / cxbindings

Xml Data Bindings and Automatic Code Generation From XSD and WSDL for C++
Other
0 stars 0 forks source link

Error cannot find required property : name #1

Open dloureiro opened 12 years ago

dloureiro commented 12 years ago

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?

dloureiro commented 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>
nmacherey commented 12 years ago

this bug is related to references(i.e "ref" attributes) which are not managed now. Planing to add this feature quickly.

dloureiro commented 12 years ago

Thanks for the answer!